home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / commodore-users-of-norman / CUON_02_(08-1984).d64 / minefield (.txt) < prev    next >
Commodore BASIC  |  2019-04-13  |  5KB  |  168 lines

  1. 10 REM:** COMPUTE JUN 83 **
  2. 20 REM:** MINEFIELD **
  3. 45 POKE53280,0:POKE53281,0
  4. 50 GOSUB1130
  5. 60 REM**INITIALIZE VARIABLES**
  6. 70 DIMBT(37),B3(37),BP(37),BS(37),XM(4),YM(4),BC(25)
  7. 80 DEFFNY(X)=INT((X-1024)/40)
  8. 90 DEFFNX(X)=(X-40*FNY(X))-1024
  9. 100 DEFFNS(X)=1024+PX+40*PY
  10. 110 DEFFNP(X)=1307+INT(34*RND(1))+40*INT(15*RND(1))
  11. 120 DEFFNN(X)=PEEK(FNS(X))
  12. 130 FORJ=1TO4:READXM(J),YM(J):NEXT
  13. 140 DATA0,-1,0,1,-1,0,1,0
  14. 150 SC=0:BT=1680:NB=4:NW=0:D=54272
  15. 160 PRINT"[147]";:POKE53272,21
  16. 170 PRINT"MINE****[221] SCORE: 0"
  17. 180 PRINT"********[221]HI SCORE:";HS
  18. 190 PRINT"***FIELD[221]WAVE: 1"
  19. 200 PRINT"        [221]";:IFNL<>1THENFORJ=1TONL-1:PRINT"[218]";:NEXT
  20. 210 FORJ=1024TO1183:IFPEEK(J)=32THENPOKEJ,160:POKEJ+D,1
  21. 220 NEXT
  22. 230 XP$="[213][221][201][157][157][157][157][213][213][221][201][201][157][157][157][157][157][157][213][213][213][221][201][201][201][157][157][157][157][157][157][157][192][192][192]*[192][192][192][157][157][157][157][157][157][157][202][202][202][221][203][203][203]"
  23. 235 XP$=XP$+"[157][157][157][157][157][157][202][202][221][203][203][157][157][157][157][202][221][203]"
  24. 240 S$=""
  25. 250 Q$=""
  26. 260 XR$="   [157][157][157][157]     [157][157][157][157][157][157]       [157][157][157][157][157][157][157]   *   [157][157][157][157][157][157][157]       "
  27. 265 XR$=XR$+"[157][157][157][157][157][157]     [157][157][157][157]   "
  28. 270 REM:**SET UP NEXT WAVE**
  29. 280 BG=0:NW=NW+1:IFNW>11THEN310
  30. 290 NB=NB+1.5:IFNW=1THEN330
  31. 300 IFNW<6THENBT=BT-180
  32. 310 PRINT"";TAB(15);NW
  33. 320 POKEFNS(1),32:FORJ=1TONB:POKEBP(J),32:NEXT
  34. 325 FORJ=1TO25:POKEBC(J),32:NEXT
  35. 330 BN=INT(NB):FORJ=1TONB:BS(J)=1:NEXT
  36. 340 FORJ=1TONB
  37. 350 BT(J)=(.4+INT(61*RND(1))/100)*BT
  38. 360 B3(J)=BT(J)+.5*BT(J):B4(J)=B3(J)+.25*BT(J)
  39. 370 NEXT
  40. 380 PX=19:PY=15:POKEFNS(1),90:POKEFNS(1)+D,1
  41. 390 FORJ=1TONB
  42. 400 BP(J)=FNP(1):IFPEEK(BP(J))<>32THEN400
  43. 410 POKEBP(J),87:POKEBP(J)+D,8:NEXT:NN=0
  44. 415 FORJ=1TO25
  45. 416 BC(J)=FNP(1):IFPEEK(BC(J))<>32THEN416
  46. 417 IFPEEK(BC(J)+1)=87THEN416
  47. 419 POKEBC(J),86:POKEBC(J)+D,5:NEXT
  48. 420 GETR$:IFR$<>""THEN420
  49. 430 DR=0:TX=TI
  50. 440 REM:**GET COMMANDS**
  51. 450 R=(15-(PEEK(56321)AND15))*2
  52. 460 IFR<>0THENDR=LOG(R)/LOG(2)
  53. 470 IFR=0THEN490
  54. 480 REM:**MOVE TRUCK**
  55. 490 IFDR=0THEN600
  56. 500 POKEFNS(1),32:PX=PX+XM(DR):PY=PY+YM(DR)
  57. 510 IFPX<0THENPX=39
  58. 520 IFPX>39THENPX=0
  59. 530 IFPY<4THENPY=24
  60. 540 IFPY>24THENPY=4
  61. 550 X=FNN(1)
  62. 560 IFX=32THENPOKEFNS(1),90:POKEFNS(1)+D,1:GOTO600
  63. 570 IFX=42ORX=86THEN960
  64. 580 GOTO890
  65. 590 REM:**UPDATE BOMBS**
  66. 600 NN=NN+1:IFNN>INT(NB)THENNN=1
  67. 610 IFBS(NN)=0THEN600
  68. 620 TG=TI-TX
  69. 630 IFTG>B4(NN)THENN1=NN:GOTO720
  70. 640 IFBS(NN)>2THEN690
  71. 650 IFTG>BT(NN)THENBS(NN)=2
  72. 660 IFTG>B3(NN)THENBS(NN)=3
  73. 670 IFBS(NN)=1THEN450
  74. 680 IFBS(NN)=2THENPOKEBP(NN),215:POKEBP(NN)+D,1:GOTO450
  75. 690 IFBS(NN)=3THENPOKEBP(NN),87:POKEBP(NN)+D,1:BS(NN)=4:GOTO450
  76. 700 IFBS(NN)=4THENPOKEBP(NN),215:POKEBP(NN)+D,1:BS(NN)=3:GOTO450
  77. 710 REM:**BOMB EXPLODES**
  78. 720 TQ=TI:PD=0
  79. 725 X$="[146]"+LEFT$(S$,FNY(BP(N1))-2)+LEFT$(Q$,FNX(BP(N1))-1)
  80. 730 BS(N1)=0:N2=0:PRINTX$;XP$;
  81. 740 FORJ=1TONB:X=PEEK(BP(J)):IFBS(J)=0THEN760
  82. 750 IFX<>87ANDX<>215ANDX<>218THENN2=J
  83. 760 NEXT:IFFNN(1)<>90ANDFNN(1)<>218THENPD=1
  84. 770 PRINTX$;XR$;:GR=129:GOSUB2000
  85. 780 FORJ=1TONB:IFPEEK(BP(J))=32ANDBS(J)<>0THENPOKEBP(J),87-128*(BS(J)>1)
  86. 790 NEXT:BN=BN-1
  87. 800 IFPD=1THEN960
  88. 810 IFBN=0THEN840
  89. 820 IFN2=0THENTX=TX+(TI-TQ):GOTO450
  90. 830 N1=N2:GOTO725
  91. 840 PRINT"";TAB(20);
  92. 850 FORJ=1TO20:PRINT"COMPLETED[157][157][157][157][157][157][157][157][157]";:FORK=1TO100:NEXT
  93. 860 PRINT"         [157][157][157][157][157][157][157][157][157]";:FORK=1TO100:NEXT:NEXT
  94. 870 SC=SC-10*(INT(NB)-BG):IFSC<0THENSC=0
  95. 880 PRINT"[157][157][157][157][145][145][145]          [157][157][157][157][157][157][157][157][157][157]";SC:GOTO280
  96. 885 REM:**BOMB GATHERED**
  97. 890 BG=BG+1:TQ=TI:POKEFNS(1),218
  98. 895 FORJ=1TONB:IFPEEK(BP(J))=218THENAJ=BS(J):BS(J)=0
  99. 900 NEXT
  100. 910 IFAJ=4THENAJ=3
  101. 920 SC=SC+10*AJ:PRINT"";TAB(16);SC
  102. 930 GR=33:GOSUB2000:BN=BN-1:IFBN=0THEN840
  103. 940 TX=TX+(TI-TQ):GOTO450
  104. 950 REM:**PLAYER DESTROYED**
  105. 960 GR=129:GOSUB2000
  106. 961 TQ=TI:FORJ=1TO20:POKEFNS(1),42:FORK=1TO25:NEXT:POKEFNS(1),170
  107. 970 FORK=1TO25:NEXT:NEXT:POKEFNS(1),32:NL=NL-1
  108. 980 POKE1153+NL,160:DR=0:PX=19:PY=15
  109. 990 IFNL=0THEN1045
  110. 1000 IFBN=0THEN840
  111. 1010 GETR$:IFR$<>""THEN1010
  112. 1020 FORJ=1TONB:IFPEEK(BP(J))=32ANDBS(J)<>0THENPOKEBP(J),87-128*(BS(J)>1)
  113. 1030 NEXT
  114. 1040 POKEFNS(1),90:TX=TX+(TI-TQ):GOTO450
  115. 1045 IFSC>HSTHENHS=SC:PRINT"";TAB(19);HS
  116. 1050 FORJ=1TO1500:NEXT:PRINT"";TAB(20);"GAME OVER[157][157][157][157][157][157][157][157][157]PLAY AGAIN?";
  117. 1060 PRINT"(Y/N)[157][157][157][157]";
  118. 1080 PRINT"Y/[146]N[157][157][157]";
  119. 1081 FORJ=1TO99:NEXT
  120. 1082 PRINT"[146]Y/N[157][157][157]";
  121. 1083 FORJ=1TO99:NEXT
  122. 1084 GETR$:IFR$="Y"THEN1110
  123. 1090 IFR$<>"N"THEN1080
  124. 1100 PRINT"[147]LATER ON!":END
  125. 1110 GOSUB1130:GOTO150
  126. 1120 REM:**INSTRUCTIONS**
  127. 1130 PRINT"[147][205][160][201][160][206][160][197][160][198][160][201][160][197][160][204][160][196]":POKE53272,23
  128. 1140 PRINT"[196]O YOU NEED INSTRUCTIONS ([217]/[206])"
  129. 1150 GETR$:IFR$="N"THEN1410
  130. 1160 IFR$<>"Y"THEN1150
  131. 1180 PRINT"[147][212]HE OBJECT OF THIS GAME IS TO PICK UP
  132. 1190 [153]"AS MANY BOMBS AS YOU CAN BEFORE THEY
  133. 1200 PRINT"EXPLODE. [212]O PICK UP A BOMB, JUST RUN
  134. 1210 [153]"OVER IT WITH YOUR TRUCK.
  135. 1220 PRINT"[194]OMBS WILL EXPLODE AFTER A SHORT TIME.
  136. 1230 [153]"RIGHT$F A BOMB TURNS REVERSE-FIELD, BE CARE-
  137. 1240 PRINT"FUL WITH IT. [201]F IT STARTS TO BLINK, IT
  138. 1250 [153]"WILL VERY SHORTLY EXPLODE-WATCH OUT!!
  139. 1260 PRINT"[194]OMBS WILL CHAIN-REACT; ONE BOMB CAUGHT
  140. 1270 [153]"IN ANOTHER'S EXPLOSION WILL ALSO BLOW
  141. 1280 PRINT"UP. [201]F YOU ARE CAUGHT IN A BOMB'S "
  142. 1290 PRINT"EXPLOSION, YOU WILL BE BLOWN UP.
  143. 1300 [153]"ATNLSO, DO NOT RUN INTO BOMB CRATERS (*)
  144. 1310 PRINT"OR MINES ([216]) OR YOU'LL BE TOTALLED.
  145. 1320 [153]"(null)HE CONTROLS ARE: 1 TO GO UP
  146. 1330 PRINT"                  CTRL TO GO LEFT
  147. 1340 [153]"                  2 TO GO RIGHT
  148. 1350 PRINT"                  _ TO GO DOWN
  149. 1355 [153]"OR YOU CAN USE A JOYSTICK IN PORT 1.
  150. 1360 PRINT"[217]OUR TRUCK CANNOT STOP ONCE YOU BEGIN
  151. 1370 [153]"MOVING. RIGHT$T CAN WRAP-AROUND BOTH THE
  152. 1380 PRINT"TOP AND SIDES OF THE SCREEN.
  153. 1390 [153]"(null)RESS (null)VAL(null)(null)(null)(null) TO CONTINUE";
  154. 1400 [161]R$:[139]R$[179][177][199](13)[167]1400
  155. 1410 [153]"LOAD(null)ELECT SKILL SETTING (0-3)
  156. 1420 GETR$:IFR$<"0"ORR$>"3"THEN1420
  157. 1430 NL=4-VAL(R$):RETURN
  158. 1900 END
  159. 2000 REM:**SOUND OF EXPLOSION**
  160. 2010 QW=54272
  161. 2020 FORS=QWTOQW+24:POKES,0:NEXT
  162. 2025 POKEQW+24,47
  163. 2030 POKEQW+5,64+7:POKEQW+6,240
  164. 2050 POKEQW+4,GR:POKEQW+1,36:POKEQW,85
  165. 2060 FORT=1TO250:NEXT
  166. 2070 FORT=15TO0STEP-1:POKEQW+24,INT(T):NEXT
  167. 2080 RETURN
  168.