1 REM --------------------------------- GRADE 12 COMPUTER SCIENCE PROJECT 2 REM SPIDERS BY IAN PHILLIPS 3 REM --------------------------------- 4 REM : 5 GOSUB6000 6 REM --------------------------------- 7 REM REDEFINING CHARACTERS --------------------------------- 8 REM : 10 POKE53272,(PEEK(53272)AND240)+12:POKE52,48:POKE56,48:CLR 20 POKE56334,PEEK(56334)AND254:POKE1,PEEK(1)AND251:FORI=0TO511 30 POKEI+12288,PEEK(I+53248):NEXT:POKE1,PEEK(1)OR4:POKE56334,PEEK(56334)OR1 40 : FORI=13128TO13135:READA:POKEI,A:NEXT 50 : FORI=13040TO13047:READA:POKEI,A:NEXT 60 : FORI=13304TO13311:READA:POKEI,A:NEXT 70 : FORI=12536TO12543:READA:POKEI,A:NEXT 71 : FORI=13104TO13111:READA:POKEI,A:NEXT 72 : FORI=13008TO13015:READA:POKEI,A:NEXT 73 : FORI=13048TO13055:READA:POKEI,A:NEXT 74 : FORI=12936TO12943:READA:POKEI,A:NEXT 78 : 80 DATA 153,219,126,60,231,60,102,219,24,189,66,126,255,231,231,195,24,126,255 81 DATA 0,255,255,255,255,60,102,231,231,102,60,24,60,255,255,255,255,255,255 82 DATA 255,255,0,0,0,120,120,0,0,0,126,199,254,220,140,134,195,126,28,62,255 83 DATA 255,126,62,28,8 85 PRINT"[145] " 86 PRINT"[145] PRESS RETURN TO PLAY " 87 GETG$:IFG$<>CHR$(13)THEN85 88 REM -------------------------------- 89 REM SET UP GAME, COUNTERS ETC... -------------------------------- 90 REM : 91 C=5:POKE53281,0:POKE53280,11:FORL=54272TO54296:POKEL,0:NEXT:POKE54296,15 92 POKE54271,128:POKE54284,64:POKE54291,128:POKE54278,128:POKE54285,248 93 TV=8:TW=8:B=0:CF=0:PRINT"[147]":POKE54292,64:SC=0 100 REM ------------------------------- 101 REM GAME BOARD SET UP ------------------------------- 102 REM : 105 PRINT"[129] [166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166] 106 [153]" SPC((null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)SPC((null)(null)(null)(null)SPC((null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)SPC( 107 PRINT" [166][218][166][166][166][166][166][166][218][166][166][166][166][166][166][218][166][218][166][166][218][166][218][166][166][166][166][166][166][218][166][166][166][166][166][166][218][166] 108 [153]" SPC((null)SPC((null)(null)(null)(null)SPC((null)(null)(null)SPC(SPC((null)(null)(null)SPC((null)SPC(SPC((null)SPC((null)(null)(null)SPC(SPC((null)(null)(null)SPC((null)(null)(null)(null)SPC((null)SPC( 109 PRINT" [166][218][218][218][166][166][218][166][218][166][218][166][166][218][166][218][166][218][166][166][218][166][218][166][218][166][166][218][166][218][166][218][166][166][218][218][218][166] 110 [153]" SPC((null)SPC((null)SPC(SPC((null)(null)(null)(null)(null)(null)(null)(null)SPC((null)SPC((null)SPC(SPC((null)SPC((null)SPC((null)(null)(null)(null)(null)(null)(null)(null)SPC(SPC((null)SPC((null)SPC( 111 PRINT" [166][218][166][218][166][166][218][166][218][166][166][166][166][166][166][218][166][218][166][166][218][166][218][166][166][166][166][166][166][218][166][218][166][166][218][166][218][166] 112 [153]" SPC((null)SPC((null)(null)(null)(null)SPC((null)SPC((null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)SPC((null)SPC((null)(null)(null)(null)SPC((null)SPC( 113 PRINT" [166][218][166][166][218][166][166][166][218][166][218][166][166][218][166][218][166][218][166][166][218][166][218][166][218][166][166][218][166][218][166][166][166][218][166][166][218][166] 114 [153]" SPC((null)(null)(null)(null)(null)(null)(null)(null)SPC((null)SPC(SPC((null)SPC((null)SPC((null)SPC(SPC((null)SPC((null)SPC((null)SPC(SPC((null)SPC((null)(null)(null)(null)(null)(null)(null)(null)SPC( 115 PRINT" [166][218][166][166][166][166][166][166][218][166][218][166][166][218][166][218][166][218][166][166][218][166][218][166][218][166][166][218][166][218][166][166][166][166][166][166][218][166][166]"; 116 PRINT"[166][166][218][166][218][218][218][218][166][218][166][218][218][218][218][166][218][166][218][218][218][218][166][218][166][218][218][218][218][166][218][166][218][218][218][218][166][218][218][218]"; 117 PRINT"[218][218][218][166][218][166][166][218][218][218][218][218][166][166][218][218][218][166][218][166][166][218][166][218][218][218][166][166][218][218][218][218][218][166][166][218][166][218][166][166]"; 118 PRINT"[166][166][218][166][218][166][166][218][166][218][166][218][218][218][218][166][218][218][218][166][166][218][218][218][166][218][218][218][218][166][218][166][218][166][166][218][166][218][166] 119 [153]" SPC((null)SPC((null)SPC(SPC((null)SPC((null)SPC(SPC(SPC(SPC(SPC(SPC((null)SPC((null)(null)(null)(null)SPC((null)SPC(SPC(SPC(SPC(SPC(SPC((null)SPC((null)SPC(SPC((null)SPC((null)SPC( 120 PRINT" [166][218][218][218][166][166][218][218][218][166][218][218][218][218][166][218][166][166][166][166][166][166][218][166][218][218][218][218][166][218][218][218][166][166][218][218][218][166] 121 [153]" SPC((null)SPC((null)SPC(SPC((null)SPC((null)SPC((null)SPC(SPC((null)SPC((null)SPC((null)(null)(null)(null)SPC((null)SPC((null)SPC(SPC((null)SPC((null)SPC((null)SPC(SPC((null)SPC((null)SPC( 122 PRINT" [166][218][166][218][166][166][218][166][218][166][218][166][166][218][166][218][166][218][166][166][218][166][218][166][218][166][166][218][166][218][166][218][166][166][218][166][218][166] 123 [153]" SPC((null)SPC((null)SPC(SPC((null)SPC((null)(null)(null)SPC(SPC((null)(null)(null)SPC((null)SPC(SPC((null)SPC((null)(null)(null)SPC(SPC((null)(null)(null)SPC((null)SPC(SPC((null)SPC((null)SPC( 124 PRINT" [166][218][166][218][218][218][218][166][218][166][218][166][166][218][166][218][166][218][218][218][218][166][218][166][218][166][166][218][166][218][166][218][218][218][218][166][218][166] 125 [153]" SPC((null)SPC(SPC(SPC(SPC((null)SPC((null)SPC((null)SPC(SPC((null)(null)(null)(null)(null)SPC(SPC((null)(null)(null)(null)(null)SPC(SPC((null)SPC((null)SPC((null)SPC(SPC(SPC(SPC((null)SPC( 126 PRINT" [166][218][218][218][218][218][218][218][218][218][218][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][218][218][218][218][218][218][218][218][218][218][166] 127 [153]" SPC(SPC(SPC(SPC(SPC(SPC(SPC(SPC(SPC(SPC(SPC(SPC(SPC(SPC(SPC(SPC(SPC(SPC(SPC(SPC(SPC(SPC(SPC(SPC(SPC(SPC(SPC(SPC(SPC(SPC(SPC(SPC(SPC(SPC(SPC(SPC(SPC(SPC( 128 : 130 REM **** PLACE GAME CHARACTERS **** : 135 IFC>30THENC=30 140 : FORL=1TO(2*C) 150 X=INT(1000*RND(1))+1024:IFPEEK(X)<>90THEN150 160 POKEX,127:POKEX+54272,7:NEXT:FORL=1TOC 170 X=INT(1000*RND(1))+1024:IFPEEK(X)<>90THEN170 180 POKEX,31:POKEX+54272,4:NEXT:FORL=1TOC 190 FLY=INT(1000*RND(1))+1024:IFPEEK(FLY)=90THENPOKEFLY,94:POKEFLY+54272,1 195 IFPEEK(FLY)<>94THENGOTO190 200 SPI=INT(1000*RND(1))+1024:IFPEEK(SPI)=90THENPOKESPI,105:POKESPI+54272,1 205 HO=SPI:IFPEEK(SPI)<>105THENGOTO200 210 MC=INT(1000*RND(1))+1024:IFPEEK(MC)<>90THEN210 220 POKEMC,127:POKEMC+54272,7 240 : 250 REM ******* SET TIMER ************* : 260 ME=TI 290 : 500 REM ------------------------------- 501 REM MOVEMENT OF SPIDER ------------------------------- 502 REM : 505 IFCF=1THENFLY=SPI 506 POKEHO+54272,1:POKEHO,8:POKE54272+FLY,1 510 GETG$:POKE56322,0:J=PEEK(56320):T=JAND16:J=15-(JAND15):POKE56322,255 511 IFCM=3THENGOSUB1000 512 IFCF<>0THENFF=0:GOTO514 513 IFFF=40THENGOSUB1000 514 FF=FF+1:CM=CM+1:IFCF=1THENSC=SC-1 515 IFG$=" "THEN7000 516 PRINT"SCORE:"SC"[157] [166][166][166][166][166][166][166]" 520 IFJ=1THENMOVE=-40:GOTO530 521 IFJ=2THENMOVE=+40:GOTO530 522 IFJ=4THENMOVE=-1:GOTO530 523 IFJ=8THENMOVE=+1:GOTO530 524 IFT=16THENPOKEHO+54272,0:POKEFLY+54272,0:GOTO505 525 GOTO580 530 IFPEEK((SPI+MOVE))=8THEN5000 531 IFPEEK((SPI+MOVE))<>90THEN600 540 POKESPI,90:POKESPI+54272,0:SPI=SPI+MOVE:POKESPI,105:POKESPI+54272,1:SC=SC+1 550 GOTO510 560 : 580 IFPEEK(SPI+MOVE)=127THEN582 581 IFPEEK(SPI+MOVE)<>31THEN510 582 : FORL=1TO100STEP10:POKESPI+MOVE,109:POKESPI+MOVE,123:SC=SC+5:POKE54273,L 583 POKE54272,L+10:POKE54276,129:NEXT:POKE54276,0:POKESPI,90:POKESPI+54272,0 584 SPI=SPI+MOVE:POKESPI,105:POKESPI+54272,1:GOTO510 590 : 600 REM ------------------------------- 601 REM CHECK OBSTRUCTIONS ------------------------------- 602 REM : 610 IFPEEK(SPI+MOVE)<>127THEN630 615 : FORL=50TO250STEP5:POKESPI,95:POKE54273,L:POKE54272,L+5:POKE54276,129 620 POKESPI+54272,1:POKESPI,81:NEXT:POKE54276,0 625 GOTO7000 629 : 630 IFPEEK(SPI+MOVE)<>31THEN650 635 : FORL=1TO3:POKE54273,255:POKE54272,254:POKE54276,17:POKE54280,12 640 POKE54279,10:POKE54283,33:POKESPI+54272,L:NEXT:POKE54276,0:POKE54283,0 645 GOTO7000 649 : 650 IFPEEK(SPI+MOVE)<>94THEN699 655 CF=1:FORN=10TO100STEP10:POKE54273,N:POKE54272,N-1:POKE54276,17:NEXT 656 SC=SC+1000 660 POKESPI,90:POKESPI+54272,0:SPI=SPI+MOVE:POKESPI,105:POKE54276,0:GOTO510 698 : 699 GOTO510 1000 REM ------------------------------ 1001 REM RELOCATE FLY AND SPRAY CANS ------------------------------ 1002 REM : 1010 IFCM<>3THEN1400 1011 POKEMC,90:POKEMC+54272,TV 1012 MC=INT(1000*RND(1))+1024:IFPEEK(MC)<>90THEN1012 1013 TV=PEEK(MC+54272):POKEMC,127:POKEMC+54272,7:CM=0 1400 IFCF=1THEN4000 1410 : 1500 IFFF<>40THEN4000 1510 POKEFLY,90:POKEFLY+54272,TW 1512 FLY=INT(1000*RND(1))+1024:IFPEEK(FLY)<>90THEN1512 1513 TW=PEEK(FLY+54272):POKEFLY,94:POKEFLY+54272,1:FF=0 4000 RETURN 5000 REM ------------------------------ 5001 REM SPIDER BACK AT HOME BACE ------------------------------ 5002 REM : 5003 REM **** IS FLY WITH SPIDER ? **** : 5010 IFCF=0THEN540 5011 ME=TI-ME:IFME<10000THENB=B+5 5015 SC=SC+1000 5016 : FORN=100TO10STEP-10:POKE54273,N:POKE54272,N-1:POKE54276,17 5020 POKE53280,1:POKE53280,251:POKE53281,1:POKE53281,240:NEXT:C=C+5:CF=0 5030 POKE54276,0:GOTO100 5060 : 6000 REM ------------------------------ 6001 REM INSTRUCTIONS ------------------------------ 6002 REM : 6010 POKE53281,1:POKE53280,1 6020 PRINT"[147][144][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166]"; 6030 FORL=1TO20:PRINT"[166] [166]";:NEXT 6040 PRINT"[166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166]" 6050 PRINT"" 6060 PRINT" SPIDERS - INSTRUCTIONS 6062 [153]"START AT THE 'H' AND CATCH THE FLY((null))." 6063 [153]"WATCH OUT FOR RAID (SIN) & FOR BUGS (_)." 6064 [153]"ELIMINATE THEM WITH FIRE BUTTON." 6065 [153]"USE CONTROL PORT #2 FOR YOUR JOYSTICK." 6066 [153]"SPACE BAR ENDS GAME AUTOMATICALLY." 6067 [153]"ANY NUMBER OF ROUNDS CAN BE PLAYED." 6068 [153]"A NEW ROUND STARTS WHEN FLY IS BROUGHT" 6069 [153]"HOME-'H'. GAME ENDS IF SPRAYED OR " 6070 [153]"CAUGHT BY BUG. THE FASTER THE BETTER!" 6075 [153]" RE-DEFINING CHARACTERS" 6080 : 6999 [142] 7000 [143] ------------------------------ 7001 [143] END OF GAME ------------------------------ 7002 [143] : 7010 [153]"LOAD" 7400 : [129]L[178]1[164]B:SC[178]SC[170]217:[153]"SCORE:"SC:[129]G[178]1[164]50:[130]G,L 7425 [139]SC[177]HS[167]HS[178]SC:HS[178]HS[171]217 7426 SC[178]SC[171]217:[153]"SCORE:"SC"CMD " 7450 [153]"HIGH SCORE:"HS 7500 [153]"PLAY AGAIN? (Y/N)" 7510 [161]G$:[139]G$[178]"Y"[167]90 7520 [139]G$[179][177]"N"[167]7510 7530 [153]"LOADSTOP":[151]53280,1:[151]53281,1:[137]63000:[128] [175] HOOK BACK [164] PAY[147] 8000 [143] ------------------------------ 8001 [143] DICTIONARY ------------------------------ 8002 : 8010 [143] C = NUMBER OF OBSTRUCTIONS 8011 [143] FLY = FLY'S LOCATION 8012 [143] SPI = SPIDERS'S LOCATION 8013 [143] HO = SPIDERS'S HOME 8014 [143] CF = INDICATES WEATHER OR NOT 8015 [143] THE SPIDER HAS THE FLY 8016 [143] MC = LOCATION OF MOVING CAN 8017 [143] CM = COUNTER FOR MOVING CAN 8018 [143] FF = COUNTER FOR MOVING FLY 8019 [143] SC = SCORE 8020 [143] HS = HIGH SCORE 8021 [143] X = RANDOM NUMBERS 8022 [143] J = JOYSTICK CONTROL 8023 [143] T = JOYSTICK CONTROL 8024 [143] ME = TIMER 8025 [143] B = BONUS SCORE (FOR SPEED) 8026 [143] ------------------------------ 63000 [140]:[151]53272,21:[151]56,160 63005 [153]"LOADLOAD"[199](34)"PAYLOAD"[199](34)",8":[153]"RUN" 63010 [151]631,13:[151]632,13:[151]198,2:[128]