Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 100 'basic controls
- 110 'Editor Mode
- 120 'r = restore field (only works if field has been previously saved in memory by going into play/test mode)
- 130 'c = clear field
- 140 'p = play/test field
- 150 'esc = return to basic
- 160 ' , = chose tile -1
- 170 ' . = chose tile +1
- 172 'l=save from saved file (field.bin set filename)
- 173 ' red walls as passable (invisible in final version)
- 174 ' blue walls are non passable (green in final version)
- 180 '
- 190 'Play Mode
- 200 'push cursor key to start moving the direction the cursor key is pushed (also works with joystick)
- 210 'esc = return to editor mode
- 220 '
- 230 SCREEN1,0,0:WIDTH32:KEYOFF
- 240 DEFINT A-Z
- 250 RESTORE 260
- 260 DATA CD,72,00,21,F,04,22,E9,F3,AF,32,EB
- 270 DATA F3,CD,62,00,CD,41,0,3E,01,32,B0,FC
- 280 DATA 32,AF,FC,21,0,0,CD,77,C0,CD,62,C0
- 290 DATA 21,0,8,CD,77,C0,CD,62,C0,21,00,10
- 300 DATA CD,77,C0,CD,62,C0,AF,CD,C3,0,CD,69
- 310 DATA 00,CD,44,00,3E,F0,01,00,8,21,00,20
- 320 DATA CD,56,00,3E,F0,01,00,8,21,00,28,CD
- 330 DATA 56,00,3E,F0,01,00,08,21,00,30,CD,56
- 340 DATA 00,C9,2A,20,F9,01,98,00,16,8,7E,5F
- 350 DATA F,B3,ED,79,23,10,F7,15,20,F4,C9,AF
- 360 DATA CB,04,17,CB,04,17,CB,3C,CB,3C,D3,99
- 370 DATA 3E,8E,D3,99,7D,D3,99,7C,F6,40,D3,99
- 380 DATA C9,#
- 390 FOR I=&HC000 TO &HC090:READA$:POKEI,VAL("&H"+A$):NEXTI
- 400 DEFUSR=&HC000:U=USR(0)
- 410 'a
- 420 REM a
- 430 DATA &b01111110,&h40
- 440 DATA &b11111111,&h50
- 450 DATA &b11011101,&he0
- 460 DATA &b11111111,&hf0
- 470 DATA &b11011101,&hf0
- 480 DATA &b11100011,&hf0
- 490 DATA &b11111111,&h50
- 500 DATA &b01111110,&h40
- 510 REM b
- 520 DATA &b01111110,&hc0
- 530 DATA &b11111111,&h20
- 540 DATA &b11011111,&h3e
- 550 DATA &b11011111,&h3f
- 560 DATA &b11011111,&h3f
- 570 DATA &b11111111,&h3e
- 580 DATA &b11111111,&h2e
- 590 DATA &b01111110,&h80
- 600 REM c
- 610 DATA &b11111011,&hB0
- 620 DATA &b11111011,&h20
- 630 DATA &b11111011,&h30
- 640 DATA &b00000000,&h00
- 650 DATA &b11011111,&hB0
- 660 DATA &b11011111,&h20
- 670 DATA &b11011111,&h30
- 680 DATA &b00000000,&h00
- 690 REM d
- 700 DATA &b00100100,&h00
- 710 DATA &b01011010,&ha0
- 720 DATA &b01100110,&hb0
- 730 DATA &b00111100,&hb0
- 740 DATA &b10111101,&h90
- 750 DATA &b11011011,&h80
- 760 DATA &b01100110,&h60
- 770 DATA &b00111100,&h20
- 780 REM e
- 790 DATA &b01111110,&hc0
- 800 DATA &b11111111,&h23
- 810 DATA &b11100011,&h3e
- 820 DATA &b11011111,&h3f
- 830 DATA &b11111111,&h32
- 840 DATA &b11111111,&h32
- 850 DATA &b11111111,&h2e
- 860 DATA &b01111110,&hc0
- 870 REM f
- 880 DATA &b01111110,&he0
- 890 DATA &b11100111,&he6
- 900 DATA &b11100111,&hf8
- 910 DATA &b11100111,&hf9
- 920 DATA &b10000001,&hf9
- 930 DATA &b11000011,&hf8
- 940 DATA &b11100111,&he6
- 950 DATA &b01111110,&he0
- 960 REM g
- 970 DATA &b01111110,&he0
- 980 DATA &b11100111,&he6
- 990 DATA &b11000011,&hf8
- 1000 DATA &b10000001,&hf9
- 1010 DATA &b11100111,&hf9
- 1020 DATA &b11100111,&hf8
- 1030 DATA &b11100111,&he6
- 1040 DATA &b01111110,&he0
- 1050 REM h
- 1060 DATA &b01111110,&he0
- 1070 DATA &b11110111,&he6
- 1080 DATA &b11110011,&hf8
- 1090 DATA &b10000001,&hf9
- 1100 DATA &b10000001,&hf9
- 1110 DATA &b11110011,&hf8
- 1120 DATA &b11110111,&he6
- 1130 DATA &b01111110,&he0
- 1140 REM I
- 1150 DATA &b01111110,&he0
- 1160 DATA &b11101111,&he6
- 1170 DATA &b11001111,&hf8
- 1180 DATA &b10000001,&hf9
- 1190 DATA &b10000001,&hf9
- 1200 DATA &b11001111,&hf8
- 1210 DATA &b11101111,&he6
- 1220 DATA &b01111110,&he0
- 1230 REM j
- 1240 DATA &b11111011,&h70
- 1250 DATA &b11111011,&h40
- 1260 DATA &b11111011,&h50
- 1270 DATA &b00000000,&h00
- 1280 DATA &b11011111,&h70
- 1290 DATA &b11011111,&h40
- 1300 DATA &b11011111,&h50
- 1310 DATA &b00000000,&h00
- 1320 REM k
- 1330 DATA &b11111011,&h60
- 1340 DATA &b11111011,&h80
- 1350 DATA &b11111011,&h90
- 1360 DATA &b00000000,&h00
- 1370 DATA &b11011111,&h60
- 1380 DATA &b11011111,&h80
- 1390 DATA &b11011111,&h90
- 1400 DATA &b00000000,&h00
- 1410 REM l
- 1420 DATA &b00111100,&ha0
- 1430 DATA &b01100110,&hb0
- 1440 DATA &b01100110,&ha0
- 1450 DATA &b01100110,&hb0
- 1460 DATA &b01100110,&ha0
- 1470 DATA &b01111110,&hb0
- 1480 DATA &b01100110,&ha0
- 1490 DATA &b00111100,&ha0
- 1500 '
- 1510 RESTORE 410
- 1520 FORI=0TO95:READA,B:FORK=0TO2:VPOKE776+I+2048*K,A:VPOKE776+8192+I+2048*K,B:NEXTK,I
- 1530 FOR I=0 TO 31:LOCATE I,0:PRINT"c":LOCATE I,21: PRINT"c":NEXTI
- 1540 FOR I=0 TO 21:LOCATE 0,I:PRINT"c":LOCATE31,I: PRINT"c":NEXTI
- 1550 LOCATE0,22:PRINT"abcdefghijkl"
- 1560 DATA &b01010101
- 1570 DATA &b10000000
- 1580 DATA &b00000001
- 1590 DATA &b10000000
- 1600 DATA &b00000001
- 1610 DATA &b10000000
- 1620 DATA &b00000001
- 1630 DATA &b10101010
- 1640 RESTORE 1560
- 1650 A$="":FOR I=0TO7:READA:A$=A$+CHR$(A):NEXT:SPRITE$(0)=A$
- 1660 X=1:Y=1:C=0:S=10
- 1670 PUT SPRITE0,(X*8,Y*8-1),S,0
- 1680 PUT SPRITE1,(C*8,22*8-1),S,0
- 1690 A$=INKEY$
- 1700 IF A$=CHR$(27) THEN SCREEN0:END
- 1710 IF A$=CHR$(30) THEN Y=Y-1
- 1720 IF A$=CHR$(31) THEN Y=Y+1
- 1730 IF A$=CHR$(29) THEN X=X-1
- 1740 IF A$=CHR$(28) THEN X=X+1
- 1750 IF A$=CHR$(32) THEN LOCATE X,Y:PRINTCHR$(ASC("a")+C):'put tile
- 1760 IF A$=CHR$(44) THEN C=C-1
- 1770 IF A$=CHR$(46) THEN C=C+1
- 1780 IF A$="r" THEN GOSUB 2370:X=1:Y=1:' restore field
- 1781 IF A$="s" THEN GOSUB 1920:GOSUB 9000:X=1:Y=1:' save field
- 1782 IF A$="l" THEN GOSUB 9100:GOSUB 2350:' load field
- 1790 IF A$="c" THEN CLS:GOTO 1530:'clear field
- 1800 IF A$="p" OR A$="P"THEN GOSUB 1920:GOSUB 1990:'test play
- 1810 IF A$=CHR$(127) THEN LOCATE X,Y:PRINT" ":'delete tile
- 1820 IF X=0 THEN X=30
- 1830 IF X=31THEN X=1
- 1840 IF Y=0THEN Y=20
- 1850 IF Y=21THEN Y=1
- 1860 IF C=12THEN C=0
- 1870 IF C=-1THEN C=11
- 1880 IFS=10THENS=8ELSES=10
- 1890 IFA$<>""THEN LOCATE15,22:PRINT"X:";:PRINTX;:PRINT" Y:";:PRINTY
- 1900 GOTO 1670
- 1910 'Store field in memory
- 1920 FORX=0TO31:FORY=0TO21
- 1930 A=VPEEK (&H1800+X+Y*32)
- 1940 POKE (&HA000+X+Y*32),A
- 1950 LOCATE 15,22:PRINT X;:PRINT " ";:PRINT Y;:PRINT" ";:PRINT A
- 1960 IF A=97 THEN PX=X:PY=Y
- 1970 NEXT:NEXT
- 1980 X=PX:Y=PY:T=150:RETURN
- 1990 'basic game engine
- 2000 E=D
- 2010 FORI=0TOT
- 2020 M=STICK(0)ORSTICK(1):IF (M=1 OR M=3 OR M=5 OR M=7) THEN D=M
- 2030 NEXT
- 2040 IFE=0 THEN 2000
- 2050 VPOKE (&H1800+X+Y*32),ASC("e")
- 2060 IF D=0 THEN D=E:VPOKE (&H1800+X+Y*32),ASC("2")
- 2070 'prevent player from reversing into "itself"
- 2080 IF D=1 AND E=5 THEN D=5
- 2090 IF D=5 AND E=1 THEN D=1
- 2100 IF D=3 AND E=7 THEN D=7
- 2110 IF D=7 AND E=3 THEN D=3
- 2120 'stick controls
- 2130 IFD=1 THEN Y=Y-1
- 2140 IFD=3 THEN X=X+1
- 2150 IFD=5 THEN Y=Y+1
- 2160 IFD=7 THEN X=X-1
- 2170 A= VPEEK(&H1800+X+Y*32)
- 2180 IF A=ASC("d") THEN F=F+1:PLAY"l64o4co6c":W=W+100:'OTO1290
- 2190 IF A=ASC("c") THEN GOSUB 2430
- 2200 IF A=ASC("b") THEN GOSUB 2430
- 2210 IF A=ASC("e") THEN GOSUB 2430
- 2220 IF A=ASC("f")AND D=1 THEN GOSUB 2430
- 2230 IF A=ASC("g")AND D=5 THEN GOSUB 2430
- 2240 IF A=ASC("h")AND D=7 THEN GOSUB 2430
- 2250 IF A=ASC("i")AND D=3 THEN GOSUB 2430
- 2260 IF A=ASC("j") THEN GOSUB 2430
- 2270 IF A=ASC("l") THEN GOSUB 2480
- 2280 VPOKE &H1800+X+Y*32,ASC("a")
- 2290 W=W+1
- 2300 'IF C=F THEN GOTO 3360
- 2310 A$=INKEY$
- 2320 IF A$=CHR$(27)THEN GOSUB 2370:GOTO 1660
- 2330 'LOCATE 0,0:PRINT USING "SCORE:######";W
- 2340 GOTO 2000
- 2350 'restore field from memory
- 2360 E=0:D=0
- 2370 LOCATE10,10:PRINT"REBUILDING"
- 2380 FORX=0TO31:FORY=0TO21
- 2390 A=PEEK (&HA000+X+Y*32)
- 2400 VPOKE (&H1800+X+Y*32),A
- 2410 NEXT:NEXT
- 2420 RETURN
- 2430 LOCATE 10,10:PRINT "DEAD"
- 2440 IF INKEY$<>CHR$(32)THEN2440
- 2450 GOSUB 2350
- 2460 X=PX:Y=PY:E=0:RETURN
- 2470 'switch tiles
- 2480 FORA=1TO30:FORB=1TO20
- 2490 Q=&H1800+A+B*32
- 2500 F=VPEEK(Q)
- 2510 IF F=ASC("j") THENVPOKE Q,ASC("k")
- 2520 IF F=ASC("k") THENVPOKE Q,ASC("j")
- 2530 NEXT:NEXT
- 2540 RETURN
- 9000 BSAVE"field.bin",&HA000,&HA740
- 9001 RETURN
- 9100 BLOAD"field.bin",&HA000
- 9101 RETURN
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement