|
Życie Wieczne
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Piotr-246
Gość
|
Wysłany: Nie 11:05, 12 Wrz 2021 Temat postu: |
|
|
REM Mikrogra, Piotr Lubas
DECLARE SUB cegly ()
DECLARE SUB wstaw (x!, y!, parametr!)
DIM SHARED g1(0 TO 64) AS LONG
DIM SHARED g2(0 TO 64) AS LONG
DIM SHARED g3(0 TO 64) AS LONG
DIM SHARED g4(0 TO 64) AS LONG
DIM SHARED g5(0 TO 64) AS LONG
DIM SHARED g6(0 TO 64) AS LONG
DIM SHARED g7(0 TO 64) AS LONG
DIM SHARED g8(0 TO 64) AS LONG
DIM SHARED bi$(0 TO 15)
SCREEN 13
REM Tablice labiryntu
REM 0 - brak przejsc
REM 1 - pojedyncze na srodku
REM 2 - prawo lub gora
REM 3 - lewo lub dol
REM 4 - obydwa
REM
REM tablice przejsc
REM ........gornych.....dolnych.....prawych......lewych
lab$(0) = "0000000000__4444444444__1111111110__0111111111"
lab$(1) = "4444444444__4444444444__1111111110__0111111111"
lab$(2) = "4444444444__4444444044__1121111110__0112111111"
lab$(3) = "4444444044__4444444444__1111111110__0111111111"
lab$(4) = "4444444444__4444144444__1111111110__0111111111"
lab$(5) = "4444144444__4444444444__1111111110__0111111111"
lab$(6) = "4444444444__4444444444__1111111110__0111111111"
lab$(7) = "4444444444__4444444444__1110111110__0111011111"
lab$(8) = "4444444444__4444444444__1111111110__0111111111"
lab$(9) = "4444444444__0000000000__1111111110__0111111111"
REM 0- brak przegrod
REM 1- gorna lub prawa (bez srodka)
REM 2- dolna lub lewa (bez srodka)
REM 3 - obydwie
REM tylko poziome: 4-wszystkie, 5-srodek i lewa, 6 srodek i prawa,7 tylko srodek
REM tablice przegrod ........oraz tablica pol...
REM ........poziomych...pionowych..pozostalych....niezdef
prz$(0) = "0100701000__0020200020__1010012010__0111111111"
prz$(1) = "6001010106__0100020102__1401018130__0111111111"
prz$(2) = "4070270241__0210100004__1000030100__0112111111"
prz$(3) = "0120014004__0000012030__0010010D10__0111111111"
prz$(4) = "6401071421__0012100301__1010200310__0111111111"
prz$(5) = "7200102040__0000002010__1103020700__0111111111"
prz$(6) = "4203070101__0102010200__1041004B10__0111111111"
prz$(7) = "7017007110__0100200121__001A100010__0111011111"
prz$(8) = "4100600121__0020120200__1000313000__0111111111"
prz$(9) = "2070402024__0103010020__1014000120__0111111111"
REM pobranie grafiki
cegly
REM dane startowe
xr = 5: yr = 5
x = 9: y = 9: xs = 9: ys = 9
q$ = CHR$(219)
REM ***********************************************
REM rysowanie planszy
rysuj:
CLS
COLOR 15
FOR kr = 0 TO 19: PRINT "........................................": NEXT kr
gora$ = MID$(lab$(yr), xr + 1, 1)
dol$ = MID$(lab$(yr), xr + 1 + 12, 1)
prawo$ = MID$(lab$(yr), xr + 1 + 24, 1)
lewo$ = MID$(lab$(yr), xr + 1 + 36, 1)
REM parametr kolorowania
parax = 0: paray = 0
IF xr / 2 = INT(xr / 2) THEN parax = 1
IF yr / 2 = INT(yr / 2) THEN paray = 1
p = parax * 4 + paray * 8
REM CLS
LOCATE 1, 1
REM wiersz 1
p = p + 1
wstaw 1, 1, p + 0
IF gora$ = "0" THEN wstaw 2, 1, p + 1: wstaw 3, 1, p + 2: wstaw 4, 1, p + 3
IF gora$ = "1" THEN wstaw 2, 1, p + 4: wstaw 3, 1, 0: wstaw 4, 1, p + 5
IF gora$ = "2" THEN wstaw 2, 1, p + 6: wstaw 3, 1, p + 7: wstaw 4, 1, 0
IF gora$ = "3" THEN wstaw 2, 1, 0: wstaw 3, 1, p + 8: wstaw 4, 1, p + 9
IF gora$ = "4" THEN wstaw 2, 1, 0: wstaw 3, 1, p + 10: wstaw 4, 1, 0
wstaw 5, 1, p + 11
PRINT
REM wiersz 2
p = p + 2
IF lewo$ = "0" THEN wstaw 1, 2, p + 0
IF lewo$ = "1" THEN wstaw 1, 2, p + 1
IF lewo$ = "2" THEN wstaw 1, 2, 0
IF lewo$ = "3" THEN wstaw 1, 2, p + 2
IF lewo$ = "4" THEN wstaw 1, 2, 0
REM PRINT "...";
IF prawo$ = "0" THEN wstaw 5, 2, p + 3
IF prawo$ = "1" THEN wstaw 5, 2, p + 4
IF prawo$ = "2" THEN wstaw 5, 2, 0
IF prawo$ = "3" THEN wstaw 5, 2, p + 5
IF prawo$ = "4" THEN wstaw 5, 2, 0
PRINT
REM wiersz 3
p = p + 3
IF lewo$ = "0" THEN wstaw 1, 3, p + 0
IF lewo$ = "1" THEN wstaw 1, 3, 0
IF lewo$ = "2" THEN wstaw 1, 3, p + 1
IF lewo$ = "3" THEN wstaw 1, 3, p + 2
IF lewo$ = "4" THEN wstaw 1, 3, p + 3
REM PRINT "...";
IF prawo$ = "0" THEN wstaw 5, 3, p + 4
IF prawo$ = "1" THEN wstaw 5, 3, 0
IF prawo$ = "2" THEN wstaw 5, 3, p + 5
IF prawo$ = "3" THEN wstaw 5, 3, p + 6
IF prawo$ = "4" THEN wstaw 5, 3, p + 7
PRINT
REM wiersz 4
p = p + 4
IF lewo$ = "0" THEN wstaw 1, 4, p + 0
IF lewo$ = "1" THEN wstaw 1, 4, p + 1
IF lewo$ = "2" THEN wstaw 1, 4, p + 2
IF lewo$ = "3" THEN wstaw 1, 4, 0
IF lewo$ = "4" THEN wstaw 1, 4, 0
REM PRINT "...";
IF prawo$ = "0" THEN wstaw 5, 4, p + 3
IF prawo$ = "1" THEN wstaw 5, 4, p + 4
IF prawo$ = "2" THEN wstaw 5, 4, p + 5
IF prawo$ = "3" THEN wstaw 5, 4, 0
IF prawo$ = "4" THEN wstaw 5, 4, 0
PRINT
REM wiersz 5
p = p + 5
wstaw 1, 5, p + 0
IF dol$ = "0" THEN wstaw 2, 5, p + 1: wstaw 3, 5, p + 2: wstaw 4, 5, p + 3
IF dol$ = "1" THEN wstaw 2, 5, p + 4: wstaw 3, 5, 0: wstaw 4, 5, p + 5
IF dol$ = "2" THEN wstaw 2, 5, p + 6: wstaw 3, 5, p + 7: wstaw 4, 5, 0
IF dol$ = "3" THEN wstaw 2, 5, 0: wstaw 3, 5, p + 8: wstaw 4, 5, p + 9
IF dol$ = "4" THEN wstaw 2, 5, 0: wstaw 3, 5, p + 10: wstaw 4, 5, 0
wstaw 5, 5, p + 11
PRINT
REM rysowanie przegrod
p = p + 6
poz$ = MID$(prz$(yr), xr + 1, 1)
pio$ = MID$(prz$(yr), xr + 1 + 12, 1)
IF poz$ = "0" THEN wstaw 2, 3, 0: wstaw 3, 3, 0: wstaw 4, 3, 0
IF poz$ = "1" THEN wstaw 2, 3, 0: wstaw 3, 3, 0: wstaw 4, 3, p + 0
IF poz$ = "2" THEN wstaw 2, 3, p + 1: wstaw 3, 3, 0: wstaw 4, 3, 0
IF poz$ = "3" THEN wstaw 2, 3, p + 2: wstaw 3, 3, 0: wstaw 4, 3, p + 3
IF poz$ = "4" THEN wstaw 2, 3, p + 4: wstaw 3, 3, p + 5: wstaw 4, 4, p + 6
IF poz$ = "5" THEN wstaw 2, 3, p + 7: wstaw 3, 3, p + 8: wstaw 4, 3, 0
IF poz$ = "6" THEN wstaw 2, 3, 0: wstaw 3, 3, p + 9: wstaw 4, 3, p + 10
IF poz$ = "7" THEN wstaw 2, 3, 0: wstaw 3, 3, p + 11: wstaw 4, 3, 0
IF pio$ = "0" THEN wstaw 3, 2, 0: wstaw 3, 4, 0
IF pio$ = "1" THEN wstaw 3, 2, p + 12: wstaw 3, 4, 0
IF pio$ = "2" THEN wstaw 3, 2, 0: wstaw 3, 4, p + 13
IF pio$ = "3" THEN wstaw 3, 2, p + 14: wstaw 3, 4, p + 15
REM pola pozostale
p = p + 7
res$ = "&H" + MID$(prz$(yr), xr + 1 + 24, 1)
reszta = VAL(res$)
IF (reszta AND 1) = 1 THEN wstaw 2, 2, p + 0
IF (reszta AND 2) = 2 THEN wstaw 4, 2, p + 1
IF (reszta AND 4) = 4 THEN wstaw 2, 4, p + 2
IF (reszta AND 8) = 8 THEN wstaw 4, 4, p + 3
IF (reszta AND 1) = 0 THEN wstaw 2, 2, 0
IF (reszta AND 2) = 0 THEN wstaw 4, 2, 0
IF (reszta AND 4) = 0 THEN wstaw 2, 4, 0
IF (reszta AND 8) = 0 THEN wstaw 4, 4, 0
LOCATE 23, 1: PRINT "room"; xr; "/"; yr; " "
GOTO wstawgracza
petla:
k$ = INKEY$
IF k$ = "" THEN GOTO petla
IF k$ = CHR$(0) + "K" THEN x = x - 1
IF k$ = CHR$(0) + "M" THEN x = x + 1
IF k$ = CHR$(0) + "H" THEN y = y - 1
IF k$ = CHR$(0) + "P" THEN y = y + 1
IF k$ = CHR$(27) THEN END
REM sprawdzenie przejscia do innej planszy
IF x > 40 THEN x = 1: xs = 1: xr = xr + 1: GOTO rysuj
IF x < 1 THEN x = 40: xs = 40: xr = xr - 1: GOTO rysuj
IF y > 20 THEN y = 1: ys = 1: yr = yr + 1: GOTO rysuj
IF y < 1 THEN y = 20: ys = 20: yr = yr - 1: GOTO rysuj
REM sprawdzenie przeszkody
pobierz = SCREEN(y, x)
IF pobierz <> ASC(".") AND pobierz <> 3 THEN x = xs: y = ys: GOTO petla
wstawgracza:
COLOR 15
LOCATE ys, xs: PRINT ".";
LOCATE y, x: PRINT CHR$(2);
xs = x: ys = y
GOTO petla
SUB cegly
REM dane elementow
bi$(0) = "0000000000000000" + "1111111111111111" + "1111111111111111" + "1111111111111111"
bi$(1) = "0111111101111111" + "1000000000000001" + "1000001001000001" + "1111111111111111"
bi$(2) = "0111111101111111" + "1000000000000001" + "1000010000100001" + "1111111111111111"
bi$(3) = "0111111101111111" + "1000000000000001" + "1000100000010001" + "1111111111111111"
bi$(4) = "0111111101111111" + "1000000000000001" + "1001000000001001" + "1111111101011101"
bi$(5) = "0111111101111111" + "1000000000000001" + "1010000000000101" + "1101010101010101"
bi$(6) = "0111111101111111" + "1000000000000001" + "1100000000000011" + "1101010101010101"
bi$(7) = "0111111101111111" + "1000000000000001" + "1000000000000001" + "1100010100010101"
bi$(8) = "0000000000000000" + "1000000000000001" + "1000000000000001" + "1000010000010101"
bi$(9) = "1111011111110111" + "1000000000000001" + "1100000000000011" + "1000010000010001"
bi$(10) = "1111011111110111" + "1000000000000001" + "1010000000000101" + "1000000000010001"
bi$(11) = "1111011111110111" + "1000000000000001" + "1001000000001001" + "1000000000000001"
bi$(12) = "1111011111110111" + "1000000000000001" + "1000100000010001" + "1000000000000001"
bi$(13) = "1111011111110111" + "1000000000000001" + "1000010000100001" + "1000000000000001"
bi$(14) = "1111011111110111" + "1000000000000001" + "1000001001000001" + "1000000000000001"
bi$(15) = "1111011111110111" + "1111111111111111" + "1111111111111111" + "1111111111111111"
FOR yb = 0 TO 15
FOR xb = 0 TO 63
znak$ = MID$(bi$(yb), xb + 1, 1)
znak = VAL(znak$)
COLOR 15 * znak: PSET (xb, yb)
NEXT xb
NEXT yb
GET (0, 0)-(15, 15), g1
GET (16, 0)-(31, 15), g2
GET (32, 0)-(47, 15), g3
GET (48, 0)-(63, 15), g4
CLS
REM dane elementow
bi$(0) = "1111111111111111" + "1111111111111111" + "0111111111111110" + "0111111100000000"
bi$(1) = "1000000000000001" + "0000000000000000" + "1000000000000001" + "0111111101111111"
bi$(2) = "1011111111111101" + "1111111111111111" + "1000000000001101" + "0111111101111111"
bi$(3) = "1010000000000101" + "0000000000000000" + "1000000000000101" + "0111111101111111"
bi$(4) = "1010111111110101" + "1111111111111111" + "1000000000000001" + "0000000001111111"
bi$(5) = "1010100000010101" + "0000000000000000" + "1000000000000001" + "0111111101111111"
bi$(6) = "1010101111010101" + "1111111111111111" + "1000000000000001" + "0111111101111111"
bi$(7) = "1010101001010101" + "0000000000000000" + "1000000000000001" + "0111111101111111"
bi$(8) = "1010101001010101" + "1111111111111111" + "1000000000000001" + "0111111100000000"
bi$(9) = "1010101111010101" + "0000000000000000" + "1000000000000001" + "0111111101111111"
bi$(10) = "1010100000010101" + "1111111111111111" + "1000000000000001" + "0111111101111111"
bi$(11) = "1010111111110101" + "0000000000000000" + "1000000000000001" + "0111111101111111"
bi$(12) = "1010000000000101" + "1111111111111111" + "1010000000000001" + "0000000001111111"
bi$(13) = "1011111111111101" + "0000000000000000" + "1011000000000001" + "0111111101111111"
bi$(14) = "1000000000000001" + "1111111111111111" + "1000000000000001" + "0111111101111111"
bi$(15) = "1111111111111111" + "0000000000000000" + "0111111111111110" + "0111111101111111"
FOR yb = 0 TO 15
FOR xb = 0 TO 63
znak$ = MID$(bi$(yb), xb + 1, 1)
znak = VAL(znak$)
COLOR 15 * znak: PSET (xb, yb)
NEXT xb
NEXT yb
GET (0, 0)-(15, 15), g5
GET (16, 0)-(31, 15), g6
GET (32, 0)-(47, 15), g7
GET (48, 0)-(63, 15), g8
CLS
END SUB
SUB wstaw (xe, ye, parametr)
COLOR 15: REM color parametr
ye = ye - 1: xe = xe - 1
xe = xe * 64
ye = ye * 32
FOR yy = 0 TO 1
yf = ye + yy * 16
FOR xx = 0 TO 3
xf = xe + xx * 16
IF parametr = 0 THEN GOTO koncz
IF parametr / 8 = INT(parametr / 8) THEN PUT (xf, yf), g1, PSET: GOTO koncz
IF parametr / 7 = INT(parametr / 7) THEN PUT (xf, yf), g2, PSET: GOTO koncz
IF parametr / 6 = INT(parametr / 6) THEN PUT (xf, yf), g3, PSET: GOTO koncz
IF parametr / 5 = INT(parametr / 5) THEN PUT (xf, yf), g4, PSET: GOTO koncz
IF parametr / 4 = INT(parametr / 4) THEN PUT (xf, yf), g5, PSET: GOTO koncz
IF parametr / 3 = INT(parametr / 3) THEN PUT (xf, yf), g6, PSET: GOTO koncz
IF parametr / 2 = INT(parametr / 2) THEN PUT (xf, yf), g7, PSET: GOTO koncz
IF parametr / 1 = INT(parametr / 1) THEN PUT (xf, yf), g8, PSET: GOTO koncz
koncz:
IF parametr <> 0 THEN parametr = parametr + 2
NEXT xx
NEXT yy
END SUB
|
|
Powrót do góry |
|
|
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Piotr-246
Gość
|
Wysłany: Nie 17:35, 12 Wrz 2021 Temat postu: |
|
|
REM Mikrogra, Piotr Lubas
DECLARE SUB cegly ()
DECLARE SUB wstaw (x!, y!, parametr!)
DIM SHARED g1(0 TO 64) AS LONG
DIM SHARED g2(0 TO 64) AS LONG
DIM SHARED g3(0 TO 64) AS LONG
DIM SHARED g4(0 TO 64) AS LONG
DIM SHARED g5(0 TO 64) AS LONG
DIM SHARED g6(0 TO 64) AS LONG
DIM SHARED g7(0 TO 64) AS LONG
DIM SHARED g8(0 TO 64) AS LONG
DIM SHARED bi$(0 TO 15)
SCREEN 13
REM Tablice labiryntu
REM 0 - brak przejsc
REM 1 - pojedyncze na srodku
REM 2 - prawo lub gora
REM 3 - lewo lub dol
REM 4 - obydwa
REM
REM tablice przejsc
REM ........gornych.....dolnych.....prawych......lewych
lab$(0) = "0000000000__4444444444__1111111110__0111111111"
lab$(1) = "4444444444__4444444444__1111111110__0111111111"
lab$(2) = "4444444444__4444444044__1121111110__0112111111"
lab$(3) = "4444444044__4444444444__1111111110__0111111111"
lab$(4) = "4444444444__4444144444__1111111110__0111111111"
lab$(5) = "4444144444__4444444444__1111111110__0111111111"
lab$(6) = "4444444444__4444444444__1111111110__0111111111"
lab$(7) = "4444444444__4444444444__1110111110__0111011111"
lab$(8) = "4444444444__4444444444__1111111110__0111111111"
lab$(9) = "4444444444__0000000000__1111111110__0111111111"
REM 0- brak przegrod
REM 1- gorna lub prawa (bez srodka)
REM 2- dolna lub lewa (bez srodka)
REM 3 - obydwie
REM tylko poziome: 4-wszystkie, 5-srodek i lewa, 6 srodek i prawa,7 tylko srodek
REM tablice przegrod ........oraz tablica pol...
REM ........poziomych...pionowych..pozostalych....niezdef
prz$(0) = "0100701000__0020200020__1010012010__0111111111"
prz$(1) = "6001010106__0100020102__1401018130__0111111111"
prz$(2) = "4070270241__0210100004__1000030100__0112111111"
prz$(3) = "0120014004__0000012030__0010010D10__0111111111"
prz$(4) = "6401071421__0012100301__1010200310__0111111111"
prz$(5) = "7200102040__0000002010__1103020700__0111111111"
prz$(6) = "4203070101__0102010200__1041004B10__0111111111"
prz$(7) = "7017007110__0100200121__001A100010__0111011111"
prz$(8) = "4100600121__0020120200__1000313000__0111111111"
prz$(9) = "2070402024__0103010020__1014000120__0111111111"
REM pobranie grafiki
cegly
REM dane startowe
xr = 5: yr = 5
x = 9: y = 9: xs = 9: ys = 9
q$ = CHR$(219)
REM ***********************************************
REM rysowanie planszy
rysuj:
REM CLS
COLOR 8
REM FOR kr = 0 TO 19: PRINT "........................................": NEXT kr
COLOR 15
gora$ = MID$(lab$(yr), xr + 1, 1)
dol$ = MID$(lab$(yr), xr + 1 + 12, 1)
prawo$ = MID$(lab$(yr), xr + 1 + 24, 1)
lewo$ = MID$(lab$(yr), xr + 1 + 36, 1)
REM parametr kolorowania
parax = 0: paray = 0
IF xr / 2 = INT(xr / 2) THEN parax = 1
IF yr / 2 = INT(yr / 2) THEN paray = 1
p = parax * 4 + paray * 8
REM CLS
LOCATE 1, 1
REM wiersz 1
p = p + 1
wstaw 1, 1, p + 0
IF gora$ = "0" THEN wstaw 2, 1, p + 1: wstaw 3, 1, p + 2: wstaw 4, 1, p + 3
IF gora$ = "1" THEN wstaw 2, 1, p + 4: wstaw 3, 1, 0: wstaw 4, 1, p + 5
IF gora$ = "2" THEN wstaw 2, 1, p + 6: wstaw 3, 1, p + 7: wstaw 4, 1, 0
IF gora$ = "3" THEN wstaw 2, 1, 0: wstaw 3, 1, p + 8: wstaw 4, 1, p + 9
IF gora$ = "4" THEN wstaw 2, 1, 0: wstaw 3, 1, p + 10: wstaw 4, 1, 0
wstaw 5, 1, p + 11
PRINT
REM wiersz 2
p = p + 2
IF lewo$ = "0" THEN wstaw 1, 2, p + 0
IF lewo$ = "1" THEN wstaw 1, 2, p + 1
IF lewo$ = "2" THEN wstaw 1, 2, 0
IF lewo$ = "3" THEN wstaw 1, 2, p + 2
IF lewo$ = "4" THEN wstaw 1, 2, 0
REM PRINT "...";
IF prawo$ = "0" THEN wstaw 5, 2, p + 3
IF prawo$ = "1" THEN wstaw 5, 2, p + 4
IF prawo$ = "2" THEN wstaw 5, 2, 0
IF prawo$ = "3" THEN wstaw 5, 2, p + 5
IF prawo$ = "4" THEN wstaw 5, 2, 0
PRINT
REM wiersz 3
p = p + 3
IF lewo$ = "0" THEN wstaw 1, 3, p + 0
IF lewo$ = "1" THEN wstaw 1, 3, 0
IF lewo$ = "2" THEN wstaw 1, 3, p + 1
IF lewo$ = "3" THEN wstaw 1, 3, p + 2
IF lewo$ = "4" THEN wstaw 1, 3, p + 3
REM PRINT "...";
IF prawo$ = "0" THEN wstaw 5, 3, p + 4
IF prawo$ = "1" THEN wstaw 5, 3, 0
IF prawo$ = "2" THEN wstaw 5, 3, p + 5
IF prawo$ = "3" THEN wstaw 5, 3, p + 6
IF prawo$ = "4" THEN wstaw 5, 3, p + 7
PRINT
REM wiersz 4
p = p + 4
IF lewo$ = "0" THEN wstaw 1, 4, p + 0
IF lewo$ = "1" THEN wstaw 1, 4, p + 1
IF lewo$ = "2" THEN wstaw 1, 4, p + 2
IF lewo$ = "3" THEN wstaw 1, 4, 0
IF lewo$ = "4" THEN wstaw 1, 4, 0
REM PRINT "...";
IF prawo$ = "0" THEN wstaw 5, 4, p + 3
IF prawo$ = "1" THEN wstaw 5, 4, p + 4
IF prawo$ = "2" THEN wstaw 5, 4, p + 5
IF prawo$ = "3" THEN wstaw 5, 4, 0
IF prawo$ = "4" THEN wstaw 5, 4, 0
PRINT
REM wiersz 5
p = p + 5
wstaw 1, 5, p + 0
IF dol$ = "0" THEN wstaw 2, 5, p + 1: wstaw 3, 5, p + 2: wstaw 4, 5, p + 3
IF dol$ = "1" THEN wstaw 2, 5, p + 4: wstaw 3, 5, 0: wstaw 4, 5, p + 5
IF dol$ = "2" THEN wstaw 2, 5, p + 6: wstaw 3, 5, p + 7: wstaw 4, 5, 0
IF dol$ = "3" THEN wstaw 2, 5, 0: wstaw 3, 5, p + 8: wstaw 4, 5, p + 9
IF dol$ = "4" THEN wstaw 2, 5, 0: wstaw 3, 5, p + 10: wstaw 4, 5, 0
wstaw 5, 5, p + 11
PRINT
REM rysowanie przegrod
p = p + 6
poz$ = MID$(prz$(yr), xr + 1, 1)
pio$ = MID$(prz$(yr), xr + 1 + 12, 1)
IF poz$ = "0" THEN wstaw 2, 3, 0: wstaw 3, 3, 0: wstaw 4, 3, 0
IF poz$ = "1" THEN wstaw 2, 3, 0: wstaw 3, 3, 0: wstaw 4, 3, p + 0
IF poz$ = "2" THEN wstaw 2, 3, p + 1: wstaw 3, 3, 0: wstaw 4, 3, 0
IF poz$ = "3" THEN wstaw 2, 3, p + 2: wstaw 3, 3, 0: wstaw 4, 3, p + 3
IF poz$ = "4" THEN wstaw 2, 3, p + 4: wstaw 3, 3, p + 5: wstaw 4, 4, p + 6
IF poz$ = "5" THEN wstaw 2, 3, p + 7: wstaw 3, 3, p + 8: wstaw 4, 3, 0
IF poz$ = "6" THEN wstaw 2, 3, 0: wstaw 3, 3, p + 9: wstaw 4, 3, p + 10
IF poz$ = "7" THEN wstaw 2, 3, 0: wstaw 3, 3, p + 11: wstaw 4, 3, 0
IF pio$ = "0" THEN wstaw 3, 2, 0: wstaw 3, 4, 0
IF pio$ = "1" THEN wstaw 3, 2, p + 12: wstaw 3, 4, 0
IF pio$ = "2" THEN wstaw 3, 2, 0: wstaw 3, 4, p + 13
IF pio$ = "3" THEN wstaw 3, 2, p + 14: wstaw 3, 4, p + 15
REM pola pozostale
p = p + 7
res$ = "&H" + MID$(prz$(yr), xr + 1 + 24, 1)
reszta = VAL(res$)
IF (reszta AND 1) = 1 THEN wstaw 2, 2, p + 0
IF (reszta AND 2) = 2 THEN wstaw 4, 2, p + 1
IF (reszta AND 4) = 4 THEN wstaw 2, 4, p + 2
IF (reszta AND 8) = 8 THEN wstaw 4, 4, p + 3
IF (reszta AND 1) = 0 THEN wstaw 2, 2, 0
IF (reszta AND 2) = 0 THEN wstaw 4, 2, 0
IF (reszta AND 4) = 0 THEN wstaw 2, 4, 0
IF (reszta AND 8) = 0 THEN wstaw 4, 4, 0
LOCATE 23, 1: PRINT "room"; xr; "/"; yr; " "
GOTO wstawgracza
petla:
k$ = INKEY$
IF k$ = "" THEN GOTO petla
IF k$ = CHR$(0) + "K" THEN x = x - 1
IF k$ = CHR$(0) + "M" THEN x = x + 1
IF k$ = CHR$(0) + "H" THEN y = y - 1
IF k$ = CHR$(0) + "P" THEN y = y + 1
IF k$ = CHR$(27) THEN END
REM sprawdzenie przejscia do innej planszy
IF x > 40 THEN x = 1: xs = 1: xr = xr + 1: GOTO rysuj
IF x < 1 THEN x = 40: xs = 40: xr = xr - 1: GOTO rysuj
IF y > 20 THEN y = 1: ys = 1: yr = yr + 1: GOTO rysuj
IF y < 1 THEN y = 20: ys = 20: yr = yr - 1: GOTO rysuj
REM sprawdzenie przeszkody
pobierz = SCREEN(y, x)
IF pobierz <> ASC(".") AND pobierz <> 3 THEN x = xs: y = ys: GOTO petla
wstawgracza:
COLOR 8
LOCATE ys, xs: PRINT ".";
COLOR 15
LOCATE y, x: PRINT CHR$(2);
xs = x: ys = y
GOTO petla
SUB cegly
REM dane elementow 1,2
bi$(0) = "0000000000000000" + "0000000000000000"
bi$(1) = "0111111101111111" + "0011111101111111"
bi$(2) = "0111011101111011" + "0111111101111111"
bi$(3) = "0111111101111111" + "0111101101101111"
bi$(4) = "0111111101111111" + "0111111101111111"
bi$(5) = "0111111100011111" + "0111111101111111"
bi$(6) = "0110111101111101" + "0101111101111111"
bi$(7) = "0111111101111111" + "0111111100111111"
bi$(8) = "0000000000000000" + "0000000000000000"
bi$(9) = "1111011111110111" + "1110011111110111"
bi$(10) = "0111011101110111" + "1111011111110111"
bi$(11) = "1111011111110101" + "1111011101110101"
bi$(12) = "1111011111110111" + "1111011111110111"
bi$(13) = "0111011011110111" + "1111011111110111"
bi$(14) = "1111011111110111" + "1111011111110111"
bi$(15) = "1111011111110101" + "1111011011110111"
FOR yb = 0 TO 15
FOR xb = 0 TO 31
znak$ = MID$(bi$(yb), xb + 1, 1)
znak = VAL(znak$)
COLOR 15 * znak: PSET (xb, yb)
NEXT xb
NEXT yb
GET (0, 0)-(15, 15), g1
GET (16, 0)-(31, 15), g2
CLS
REM dane elementow 3,4
bi$(0) = "0000000000000000" + "0000000000000000"
bi$(1) = "0111111001111111" + "0110111101111111"
bi$(2) = "0101111101011111" + "0110111101110111"
bi$(3) = "0111111101111111" + "0111111101111111"
bi$(4) = "0111111101111101" + "0111101101101111"
bi$(5) = "0000111101111111" + "0111111101111111"
bi$(6) = "0111111101101111" + "0101111101111011"
bi$(7) = "0111111101111111" + "0111111101111111"
bi$(8) = "0000000000000000" + "0000000000000000"
bi$(9) = "1111011111110111" + "1111011111110111"
bi$(10) = "1111010111110111" + "1111011111110111"
bi$(11) = "1111011111110111" + "1011011011110111"
bi$(12) = "1111011111110111" + "1111011111110111"
bi$(13) = "1111011011110101" + "1111011111110111"
bi$(14) = "0111011111110111" + "1111011111110101"
bi$(15) = "1111011111100111" + "1111010111110111"
FOR yb = 0 TO 15
FOR xb = 0 TO 31
znak$ = MID$(bi$(yb), xb + 1, 1)
znak = VAL(znak$)
COLOR 15 * znak: PSET (xb, yb)
NEXT xb
NEXT yb
GET (0, 0)-(15, 15), g3
GET (16, 0)-(31, 15), g4
CLS
REM dane elementow 5,6
bi$(0) = "0000000000000000" + "0000000000000000"
bi$(1) = "0111111101110111" + "0111111101111111"
bi$(2) = "0111111101111111" + "0111101101110111"
bi$(3) = "0101111101111111" + "0101111101111111"
bi$(4) = "0111101101101111" + "0111111101111101"
bi$(5) = "0111111101111111" + "0111111101111111"
bi$(6) = "0110111101111011" + "0111011101101111"
bi$(7) = "0110111101111111" + "0111111101111111"
bi$(8) = "0000000000000000" + "0000000000000000"
bi$(9) = "1011011111110111" + "1111011110110111"
bi$(10) = "1111010111110111" + "1111011111110111"
bi$(11) = "1110011111110111" + "1111011111110111"
bi$(12) = "1111011111110111" + "1111011011110101"
bi$(13) = "1111011111010101" + "1101011111110111"
bi$(14) = "1111011111110111" + "1111011111010111"
bi$(15) = "1101011011110111" + "1111011111010111"
FOR yb = 0 TO 15
FOR xb = 0 TO 31
znak$ = MID$(bi$(yb), xb + 1, 1)
znak = VAL(znak$)
COLOR 15 * znak: PSET (xb, yb)
NEXT xb
NEXT yb
GET (0, 0)-(15, 15), g5
GET (16, 0)-(31, 15), g6
CLS
REM dane elementow 7,8
bi$(0) = "0000000000000000" + "0000000000000000"
bi$(1) = "0111111101101111" + "0111111101111111"
bi$(2) = "0111011101101111" + "0111011101101111"
bi$(3) = "0111111101111111" + "0111111101111111"
bi$(4) = "0111111101111111" + "0111111101111111"
bi$(5) = "0101111101111111" + "0110111101111111"
bi$(6) = "0111111101110111" + "0111111101111111"
bi$(7) = "0111101101111111" + "0111111101110111"
bi$(8) = "0000000000000000" + "0000000000000000"
bi$(9) = "1111011111110111" + "1111011111110111"
bi$(10) = "1111011111110111" + "1111011111110111"
bi$(11) = "1011011110110110" + "1101010111110111"
bi$(12) = "1111011111110111" + "1111011111110111"
bi$(13) = "1111011111110111" + "1111011111110111"
bi$(14) = "1101010111110111" + "1111011101110011"
bi$(15) = "1111011111110111" + "1111011111110111"
FOR yb = 0 TO 15
FOR xb = 0 TO 31
znak$ = MID$(bi$(yb), xb + 1, 1)
znak = VAL(znak$)
COLOR 15 * znak: PSET (xb, yb)
NEXT xb
NEXT yb
GET (0, 0)-(15, 15), g7
GET (16, 0)-(31, 15), g8
CLS
END SUB
SUB wstaw (xe, ye, parametr)
COLOR 15: REM color parametr
xl = (xe - 1) * 8 + 1: yl = (ye - 1) * 4 + 1
ye = ye - 1: xe = xe - 1
xe = xe * 64
ye = ye * 32
COLOR 8
FOR yy = 0 TO 1
yf = ye + yy * 16
FOR xx = 0 TO 3
xf = xe + xx * 16
IF parametr = 0 THEN LOCATE yl + yy * 2, xl + xx * 2: PRINT "..": LOCATE yl + 1 + yy * 2, xl + xx * 2: PRINT "..": GOTO koncz
IF parametr / 8 = INT(parametr / 8) THEN PUT (xf, yf), g1, PSET: GOTO koncz
IF parametr / 7 = INT(parametr / 7) THEN PUT (xf, yf), g2, PSET: GOTO koncz
IF parametr / 6 = INT(parametr / 6) THEN PUT (xf, yf), g3, PSET: GOTO koncz
IF parametr / 5 = INT(parametr / 5) THEN PUT (xf, yf), g4, PSET: GOTO koncz
IF parametr / 4 = INT(parametr / 4) THEN PUT (xf, yf), g5, PSET: GOTO koncz
IF parametr / 3 = INT(parametr / 3) THEN PUT (xf, yf), g6, PSET: GOTO koncz
IF parametr / 2 = INT(parametr / 2) THEN PUT (xf, yf), g7, PSET: GOTO koncz
IF parametr / 1 = INT(parametr / 1) THEN PUT (xf, yf), g8, PSET: GOTO koncz
koncz:
IF parametr <> 0 THEN parametr = parametr + 2
NEXT xx
NEXT yy
END SUB
|
|
Powrót do góry |
|
|
|
|
Możesz pisać nowe tematy Możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach
|
fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2005 phpBB Group
|