10 REM GRID WARRIOR
20 REM BY S.ANDERSON 30 REM START SCREEN 40 MODE 1 50 INK 1,20 60 INK 0,0 70 INK 2,2 80 INK 3,6,24 90 PAPER 0 100 BORDER 2 110 CLS 120 PEN 1 130 LOCATE 15,1:PRINT"GRID WARRIOR" 140 PEN 2 150 LOCATE 15,2:PRINT"------------" 160 PEN 3 170 LOCATE 8,10:PRINT"A=UP,Z=DOWN,O=LEFT,P=RIGHT" 180 LOCATE 15,12:PRINT"OR JOYSTICK" 190 PEN 2 200 LOCATE 7,18:PRINT"PRESS SPACE OR FIRE TO PLAY" 210 IF INKEY(47)=0 THEN 240 220 IF INKEY(76)=0 THEN 240 230 GOTO 210 240 h=0 250 REM RESTORE DATA AND SET UP U.D.C'S 260 RESTORE 270 SYMBOL AFTER 240 280 SYMBOL 240,192,192,254,245,245,254,192,192 290 SYMBOL 241,3,3,127,175,175,127,3,3 300 SYMBOL 242,24,36,60,36,60,60,255,255 310 SYMBOL 243,255,255,60,60,36,60,36,24 320 SYMBOL 244,255,129,129,129,129,129,129,255 330 SYMBOL 245,255,153,189,153,153,189,153,255 340 REM POKE MACHINE CODE IN PLACE 350 FOR f=30000 TO 30009 360 READ byte 370 POKE f,byte 380 NEXT 390 FOR f=32000 TO 32022 400 READ byte 410 POKE f,byte 420 NEXT 430 REM SET UP $ VARIABLES 440 a$=STRING$(40,CHR$(143)) 450 b$=CHR$(143)+STRING$(38,CHR$(244))+CHR$(143) 460 s=0:l=3 470 PEN 1 480 CLS 490 PRINT a$; 500 FOR f=2 TO 20 510 PRINT b$; 520 NEXT 530 PRINT a$; 540 FOR f=1 TO 10 550 LOCATE INT(RND*37)+2,INT(RND*12)+2:PRINT CHR$(143)+CHR$(143) 560 LOCATE INT(RND*36)+2,INT(RND*3)+16:PRINT CHR$(143)+CHR$(143) 570 NEXT 580 PEN 3 590 IF XE=34 AND YE=10 THEN RESTORE 960 600 FOR f=1 TO 6 610 READ xe,ye 620 LOCATE xe,ye:PRINT CHR$(245); 630 NEXT 640 flag=0 650 x=20:y=15 660 count=0 670 la$=CHR$(242) 680 LOCATE 1,22:PEN 1:PRINT"SCORE=":LOCATE 13,22:PRINT"HIGH=":LOCATE 24,22:PRINT"WARRIORS=" 690 REM MAIN LOOP 700 IF INKEY(27)=0 OR INKEY(75)=0 THEN la$=CHR$(240) 710 IF INKEY(34)=0 OR INKEY(74)=0 THEN la$=CHR$(241) 720 IF INKEY(69)=0 OR INKEY(72)=0 THEN la$=CHR$(242) 730 IF INKEY(71)=0 OR INKEY(73)=0 THEN la$=CHR$(243) 740 x2=x:y2=y 750 IF la$=CHR$(240) THEN x=x+1 760 IF la$=CHR$(241) THEN x=x-1 770 IF la$=CHR$(242) THEN y=y-1 780 IF la$=CHR$(243) THEN y=y+1 790 LOCATE x,y 800 CALL 30000 810 IF PEEK(31000)=143 THEN flag=1 813 PEN 2 814 CALL 30000:PEN 1 815 IF PEEK(31000)=143 THEN flag=3 820 IF PEEK(31000)=245 THEN count=count+1:SOUND 2,100,10,6:s=s+10:IF count=6 THEN flag=2 830 PEN 2:PRINT la$ 840 LOCATE x2,y2:PRINT CHR$(143) 850 LOCATE 7,22:PEN 1:PRINT s 860 LOCATE 18,22:PRINT h 865 LOCATE 33,22:PRINT l 870 IF flag=1 THEN 990 875 IF flag=3 THEN 990 880 IF flag=2 THEN 1250 890 SOUND 1,(x*20),2,5 900 IF s>1000 AND zx=0 THEN l=l+1:zx=1:ENT 3,20,-5,5:SOUND 2,150,100,7,0,3 910 GOTO 700 920 REM MACHINE DATA 930 DATA &F5,&CD,&60,&BB,&21,&18,&79,&77,&F1,&C9 940 DATA &F5,&C5,&D5,&E5,&06,&01,&3E,&00,&CD,&4D,&BC,&06,&00,&3E,&00,&CD,&4D,&BC,&E1,&D1,&C1,&F1,&C9 950 REM CRYSTAL DATA 960 DATA 10,3,30,10,25,5,38,14,19,14,11,13 970 DATA 23,5,14,17,2,15,11,4,35,6,34,10 980 REM CRASH 990 INK 2,6,2 1000 LOCATE x,y:PEN 2:PRINT CHR$(238) 1010 ENT 1,200,10,2:SOUND 2,300,400,5,0,1 1020 l=l-1 1030 IF l=0 THEN 1140 1040 PEN 1 1050 FOR F=1 TO 50:CALL 32000:NEXT 1060 CLS 1070 IF L>1 THEN LOCATE 10,13:PRINT L;" WARRIORS LEFT" 1080 IF L=1 THEN LOCATE 10,13:PRINT L;" WARRIOR LEFT" 1090 LOCATE 1,1 1100 FOR F=1 TO 3000:NEXT 1110 INK 2,2 1120 GOTO 490 1130 REM DEATH ROUTINE 1140 CLS 1150 PEN 1 1160 LOCATE 5,10:PRINT"YOU FAILED TO ESCAPE" 1170 LOCATE 10,12:PRINT"YOU SCORED";s 1180 IF s>h THEN LOCATE 10,14:PRINT"NEW HIGHEST":h=s 1190 LOCATE 5,16:PRINT"PRESS SPACE TO PLAY AGAIN" 1200 WHILE INKEY(47)<>0 1210 WEND 1220 INK 2,2 1230 GOTO 260 1240 REM NEXT BOARD 1250 FOR f=500 TO 100 STEP -4:SOUND 3,f,2,5:NEXT 1260 s=s+100 1270 CLS 1280 IF s>2000 THEN 1330 1290 LOCATE 10,13:PEN 1:PRINT"TRANSPORTED TO NEXT BOARD" 1300 FOR F=1 TO 1000:NEXT 1310 GOTO 470 1320 REM ESCAPED 1330 PEN 1 1340 LOCATE 1,13:PRINT STRING$(40,CHR$(244)); 1350 LOCATE 18,5:PRINT" YOU'VE ESCAPED THE POWER GRID" 1360 LOCATE 37,11:PRINT"EXIT" 1370 PEN 2 1380 FOR F=1 TO 39 1390 LOCATE F,13:PRINT CHR$(143)+CHR$(240) 1400 SOUND 1,F*10,2,3:SOUND 2,F*20,2,3:SOUND 3,F*15,2,3 1410 FOR G=1 TO 100:NEXT 1420 NEXT 1430 FOR F=1 TO 2000:NEXT:CLS:PEN 1:GOTO 1170 |