home *** CD-ROM | disk | FTP | other *** search
/ Generous Efforts of Many / gemcd.zip / GEM.CD.B.po / GAMES:BASIC.3 / CHASE.V1.2.bas next >
BASIC Source File  |  2010-05-14  |  11KB  |  257 lines

  1. 5  TEXT : HOME 
  2. 10  VTAB (10): PRINT  TAB( 13)"MONSTER  CHASE": PRINT : PRINT  TAB( 14)"BY T. NELSON": PRINT  TAB( 15)"(JAN.1980)"
  3. 12  PRINT : PRINT  SPC( 8)"REVISED BY DOUG TRUEMAN": PRINT  SPC( 15)"(MAR 1987)
  4. 15  GOSUB 10000
  5. 16  HOME 
  6. 20  PRINT  TAB( 13)"MONSTER CHASE            ": PRINT :
  7. 30  PRINT "IN THIS SIMULATION YOU'RE TRAPPED IN A  CAGE WITH A HUNGRY GREEN MONSTER WHO HASA LIFE SPAN OF ONLY A FEW TURNS (YOU OR
  8. 40  PRINT "THE COMPUTER MAY SELECT THE NUMBER)": PRINT : PRINT "YOUR MOVEMENT AND THAT OF THE MONSTER   TAKES PLACE ON A 5X5 GRID. SOMEWHERE ON
  9. 45  PRINT "EACH GRID THERE IS A PIT FILLED WITH    QUICKSAND. IF ANYONE FALLS INTO IT THEY SINK---AND LOSE!": PRINT 
  10. 48  PRINT "THE BARS OF THE CAGE ARE ELECTIFIED SO  IF YOU TRY AND GO THROUGH THEM YOU WILL BE KILLED AND LOSE!": PRINT 
  11. 50  PRINT "YOU MAY MOVE NORTH, EAST, SOUTH, OR WESTBY ENTERING N,E,S OR W. IF YOU ENTER ANYOTHER LETTER, YOU WILL STAY IN THE SAME PLACE.
  12. 60  GOSUB 10000
  13. 67  HOME 
  14. 70  PRINT "THE MONSTER IS PROGRAMMED TO MOVE       TOWARDS YOU (HE CAN MOVE DIAGONALLY TOO)
  15. 75  PRINT "YOU DECIDE THE GAMES DIFFICULTLY.": PRINT : PRINT "1. YOU'VE A STUPID MONSTER & VISBLE PIT.";
  16. 80  PRINT "2. YOU'VE A SMART MONSTER & VISIBLE PIT.";
  17. 82  PRINT "3. YOU'VE A STUPID MONSTER/INVISBLE PIT.";
  18. 84  PRINT "4. YOU'VE A SMART MONSTER/INVISBLE PIT."
  19. 86  PRINT : PRINT "WHICH LEVEL OF DIFFICULTY? (1-4) ";: GET CHOICE$: PRINT CHOICE$: GOSUB 10010:C = CH: IF FLAG GOTO 67
  20. 88  PRINT : PRINT "DO YOU WANT TO DETERMINE THE NUMBER OF  TURNS? (Y/N) ";: GET I$: PRINT I$: IF I$ = "Y"  OR I$ = "y"  THEN  INPUT "HOW MANY? ";N$:N =  VAL(N$)
  21. 90  IF N < = 0  THEN N =  INT(10 * RND(1)) +5
  22. 92  PRINT : PRINT "YOUR ONLY HOPE FOR SURVIVAL IS TO OUTWITTHE MONSTER FOR "N" TURNS OR LURE IT": PRINT "INTO THE PIT. GOOD LUCK!
  23. 95  GOSUB 10000
  24. 96  HOME 
  25. 200  GR : REM  DISPLAY GRID FOR CAGE
  26. 210 X = 4:Y = 2
  27. 220  COLOR= 15: REM  WHITE
  28. 230  FOR I = 0 TO 35
  29. 240  HLIN X,X +30 AT Y +I
  30. 250  NEXT I
  31. 260  REM  GROUT BETWEEN FLOOR TILES (YELLOW)
  32. 270  COLOR= 13
  33. 275  HLIN X,X +30 AT Y: HLIN X,X +30 AT Y +35
  34. 280  HLIN X,X +30 AT Y +7: HLIN X,X +30 AT Y +14: HLIN X,X +30 AT Y +21: HLIN X,X +30 AT Y +28
  35. 285  VLIN Y +1,Y +34 AT X +6: VLIN Y +1,Y +34 AT X +12: VLIN Y +1,Y +34 AT X +18: VLIN Y +1,Y +34 AT X +24
  36. 290  VLIN Y +1,Y +34 AT X: VLIN Y +1,Y +34 AT X +30
  37. 300  REM  BARS AROUND CAGE
  38. 305  COLOR= 10: REM  GREY
  39. 310  PLOT X -1,Y -1: PLOT X +3,Y -1: PLOT X +7,Y -1: PLOT X +11,Y -1: PLOT X +15,Y -1: PLOT X +19,Y -1: PLOT X +23,Y -1: PLOT X +27,Y -1: PLOT X +31,Y -1
  40. 320  PLOT X -1,Y +36: PLOT X +3,Y +36: PLOT X +7,Y +36: PLOT X +11,Y +36: PLOT X +15,Y +36: PLOT X +19,Y +36: PLOT X +23,Y +36: PLOT X +23,Y +36: PLOT X +27,Y +36: PLOT X +31,Y +36
  41. 330  PLOT X -1,Y +3: PLOT X -1,Y +7: PLOT X -1,Y +11: PLOT X -1,Y +15: PLOT X -1,Y +19: PLOT X -1,Y +23: PLOT X -1,Y +27: PLOT X -1,Y +31
  42. 340  PLOT X +31,Y +3: PLOT X +31,Y +7: PLOT X +31,Y +11: PLOT X +31,Y +15: PLOT X +31,Y +19: PLOT X +31,Y +23: PLOT X +31,Y +27: PLOT X +31,Y +31
  43. 341  COLOR= 15: PLOT X +11,Y +11
  44. 350  REM  DETERMINE LOCATION OF PIT
  45. 355 X = 4:Y = 3
  46. 360 PZ =  INT(23 * RND(1)) +1
  47. 370  IF PZ <1  THEN PZ = 1
  48. 380  IF PZ >23  THEN PZ = 23
  49. 389  IF PZ = 1  THEN PY = 1
  50. 390  IF PZ = 1  THEN PX = 7
  51. 391  IF PZ = 2  THEN PY = 1
  52. 392  IF PZ = 2  THEN PX = 13
  53. 393  IF PZ = 3  THEN PY = 1
  54. 394  IF PZ = 3  THEN PX = 19
  55. 395  IF PZ = 4  THEN PY = 1
  56. 396  IF PZ = 4  THEN PX = 25
  57. 397  IF PZ = 5  THEN PY = 8
  58. 398  IF PZ = 5  THEN PX = 1
  59. 399  IF PZ = 6  THEN PY = 8
  60. 400  IF PZ = 6  THEN PX = 7
  61. 401  IF PZ = 7  THEN PY = 8
  62. 402  IF PZ = 7  THEN PX = 13
  63. 403  IF PZ = 8  THEN PY = 8
  64. 404  IF PZ = 8  THEN PX = 19
  65. 405  IF PZ = 9  THEN PY = 8
  66. 406  IF PZ = 9  THEN PX = 25
  67. 407  IF PZ = 10  THEN PY = 15
  68. 408  IF PZ = 10  THEN PX = 1
  69. 409  IF PZ = 11  THEN PY = 15
  70. 410  IF PZ = 11  THEN PX = 7
  71. 411  IF PZ = 12  THEN PY = 15
  72. 412  IF PZ = 12  THEN PX = 13
  73. 413  IF PZ = 13  THEN PY = 15
  74. 414  IF PZ = 13  THEN PX = 19
  75. 415  IF PZ = 14  THEN PY = 15
  76. 416  IF PZ = 14  THEN PX = 25
  77. 417  IF PZ = 15  THEN PY = 22
  78. 418  IF PZ = 15  THEN PX = 1
  79. 419  IF PZ = 16  THEN PY = 22
  80. 420  IF PZ = 16  THEN PX = 7
  81. 421  IF PZ = 17  THEN PY = 22
  82. 422  IF PZ = 17  THEN PX = 13
  83. 423  IF PZ = 18  THEN PY = 22
  84. 424  IF PZ = 18  THEN PX = 19
  85. 425  IF PZ = 19  THEN PY = 22
  86. 426  IF PZ = 19  THEN PX = 25
  87. 427  IF PZ = 20  THEN PY = 29
  88. 428  IF PZ = 20  THEN PX = 1
  89. 429  IF PZ = 21  THEN PY = 29
  90. 430  IF PZ = 21  THEN PX = 7
  91. 431  IF PZ = 22  THEN PY = 29
  92. 432  IF PZ = 22  THEN PX = 13
  93. 433  IF PZ = 23  THEN PY = 29
  94. 434  IF PZ = 23  THEN PX = 19
  95. 438  IF C = 3  THEN 455
  96. 439  IF C = 4  THEN 455
  97. 440  IF C <1  THEN C = 1: IF C >4  THEN C = 4
  98. 441  REM  DRAW PIT
  99. 442 X = 4:Y = 2
  100. 443 XP = X +PX:YP = Y +PY
  101. 445  COLOR= 0: REM  BLACK
  102. 450  FOR I = 0 TO 5: HLIN XP,XP +4 AT YP +I: NEXT I
  103. 455 X = 4:Y = 2: REM  SET CONDITIONS
  104. 456 XP = X +PX:YP = Y +PY:MX = 1:MY = 1
  105. 457 HX = 25:HY = 29
  106. 458 XM = X +MX:YM = Y +MY
  107. 459 XH = X +HX:YH = Y +HY
  108. 460  REM  PLACE MONSTER
  109. 470  GOSUB 2000
  110. 480  REM  PLACE HUMAN
  111. 490  GOSUB 2500
  112. 500  REM  BEGIN HUMAN MOVEMENT LOOP
  113. 505  FOR T = 1 TO N
  114. 509  PRINT "MOVE NUMBER ";T;" OUT OF ";N
  115. 510  PRINT "HUMAN'S TURN- WHICH DIRECTION (N,S,E,W, OR'X')? ";: GET H$: PRINT H$
  116. 515  GOSUB 2800
  117. 520  IF H$ = "N"  THEN YH = YH -7: GOTO 570
  118. 530  IF H$ = "E"  THEN XH = XH +6
  119. 540  IF H$ = "S"  THEN YH = YH +7
  120. 550  IF H$ = "W"  THEN XH = XH -6
  121. 570  GOSUB 2500: REM  REPLOT HUMAN
  122. 572  IF XH = 0  OR YH = 0  OR XH >29  OR YH >31  THEN  PRINT "YOU CAN'T GET OUT OF THE CAGE. YOU HAVE BEEN ELECTRICUTED!
  123. 573  IF XH = 0  OR YH = 0  OR XH >29  OR YH >31  THEN 980
  124. 574  IF XH = XM  AND YH = YM  THEN  GOSUB 2100
  125. 575  IF XH = XM  AND YH = YM  THEN  PRINT "YOU RAN RIGHT INTO HIS MOUTH! CHOMP"
  126. 576  IF XH = XM  AND YH = YM  THEN  GOSUB 2100
  127. 577  IF XH = XM  AND YH = YM  THEN 980
  128. 580  IF XH = XP  AND YH = YP  THEN  HOME : PRINT "YOU FELL IN THE QUICKSAND-- YOU LOSE!": FOR V1 = 1 TO 100: NEXT 
  129. 583  IF XH = XP  AND YH = YP  THEN  GOSUB 2900
  130. 585  IF XH = XP  AND YH = YP  THEN 980
  131. 600  REM  MONSTER'S MOVE
  132. 610  GOSUB 2700: REM  REMOVE MONSTER
  133. 620  IF C = 1  THEN 700
  134. 630  IF C = 3  THEN 700
  135. 640  IF XM = XH +6  AND YM = YH  THEN XM = XH: GOTO 860
  136. 650  IF XM = XH -6  AND YM = YH  THEN XM = XH: GOTO 860
  137. 660  IF YM = YH +7  AND XM = XH  THEN YM = YH: GOTO 860
  138. 670  IF YM = YH -7  AND XM = XH  THEN YM = YH: GOTO 860
  139. 700  REM  DETERMINE MONSTER'S MOVE
  140. 710  IF XM = XH  AND YM <YH  THEN D = 1
  141. 720  IF XM >XH  AND YM <YH  THEN D = 2
  142. 730  IF XM >XH  AND YM = YH  THEN D = 3
  143. 740  IF XM >XH  AND YM >YH  THEN D = 4
  144. 750  IF XM = XH  AND YM >YH  THEN D = 5
  145. 760  IF XM <XH  AND YM >YH  THEN D = 6
  146. 770  IF XM <XH  AND YM = YH  THEN D = 7
  147. 780  IF XM <XH  AND YM <YH  THEN D = 8
  148. 790 D = D + INT(3 * RND(1) -1)
  149. 800  IF D = 0  THEN D = 8
  150. 810  IF D = 9  THEN D = 1
  151. 820  IF D >1  AND D <5  THEN XM = XM -6
  152. 830  IF D >5  THEN XM = XM +6
  153. 840  IF D >3  AND D <7  THEN YM = YM -7
  154. 850  IF D <3  OR D = 8  THEN YM = YM +7
  155. 860  IF XM <5  THEN XM = 5
  156. 870  IF XM >29  THEN XM = 29
  157. 880  IF YM <3  THEN YM = 3
  158. 890  IF YM >31  THEN YM = 31
  159. 900  GOSUB 2000: REM  REPOSITON HUMAN
  160. 910  HOME 
  161. 920  IF XM = XH  AND YM = YH  THEN  GOSUB 2100
  162. 930  IF XM = XH  AND YM = YH  THEN  PRINT "YOU'VE BEEN EATEN!"
  163. 940  IF XM = XH  AND YM = YH  THEN 980
  164. 949  HOME 
  165. 950  IF XM = XP  AND YM = YP  THEN  GOSUB 2900
  166. 952  HOME : IF XM = XP  AND YM = YP  THEN  PRINT "THE MONSTER FELL IN QUICKSAND!": FOR PAUSE = 1 TO 75: NEXT PAUSE
  167. 953  IF XM = XP  AND YM = YP  AND C = 3  THEN  PRINT  TAB( 3)"YOU WERE SAVED BY LUCK & QUICKSAND.": PRINT "NOTHING TO TAKE PRIDE IN.": GOTO 988
  168. 954  IF XM = XP  AND YM = YP  THEN 988
  169. 960  NEXT T
  170. 970  HOME : PRINT "YOU SURVIVED!!!!"
  171. 975  GOSUB 3500
  172. 979  HOME 
  173. 980  PRINT "YOU LASTED ";T -1;" OUT OF ";N;" POSSIBLE TURNS.": GOSUB 10000
  174. 981  IF T -1 = N  THEN  PRINT  TAB( 5)"A PERFECT SCORE!"
  175. 982  IF T = N -1  THEN  PRINT "YOU ALMOST MADE IT!"
  176. 983  IF XM < >XP  AND XM < >XH  AND T -1 <N -3  THEN  PRINT "YOU DIDN'T DO TOO WELL!"
  177. 984  IF XM = XH  AND YM = YH  THEN  PRINT "YOU WOUND UP BEING EATEN!"
  178. 988 : REM  FILER FOR MISSING LINE
  179. 990  PRINT : PRINT : PRINT "DO YOU WANT TO PLAY AGAIN? (Y/N) ";
  180. 992  GET I$: IF I$ = "Y"  OR I$ = "y"  THEN  PRINT I$: TEXT : HOME :: GOTO 67
  181. 995  IF I$ < >"N"  AND I$ < >"n"  THEN 992
  182. 1000  PRINT "WELL, OK, WE'LL QUIT FOR NOW.": PRINT "DO LET'S PLAY AGAIN SOON.": TEXT : HOME : PRINT  CHR$(4)"-STARTUP"
  183. 2000  REM  MONSTER SUBROUTINE
  184. 2005  COLOR= 12: REM  GREEN BODY
  185. 2010  FOR I = 0 TO 4: HLIN XM +1,XM +3 AT YM +I: NEXT I
  186. 2030  PLOT XM,YM +2: PLOT XM +4,YM +2
  187. 2040  PLOT XM +1,YM +5: PLOT XM +3,YM +5
  188. 2050  COLOR= 15: REM  WHITE MOUTH
  189. 2060  PLOT XM +2,YM +1
  190. 2070  RETURN 
  191. 2100  REM  VICTORIOUS MONSTER SUBROUTINE
  192. 2110  COLOR= 12
  193. 2120  FOR I = 0 TO 1: HLIN XM +1,XM +3 AT YM +I: NEXT I
  194. 2130  FOR I = 2 TO 4: HLIN XM +1,XM +2 AT YM +I: NEXT I
  195. 2140  PLOT XM,YM +2: PLOT XM +1,YM +5: PLOT XM +3,YM +5
  196. 2150  COLOR= 1: REM  RED MOUTH
  197. 2160  PLOT XM +2,YM +1
  198. 2170  COLOR= 10: REM  GREY SHIELD
  199. 2180  FOR I = 2 TO 4: HLIN XM +3,XM +4 AT YM +I: NEXT I
  200. 2190  COLOR= 15: PLOT XM,YM +3: REM  REMOVE HUMAN'S HAND
  201. 2200  RETURN 
  202. 2500  REM  HUMAN SUBROUTINE
  203. 2510  COLOR= 9: REM  ORANGE FLESH
  204. 2520  FOR I = 0 TO 1: HLIN XH +1,XH +3 AT YH +I: NEXT I
  205. 2530  PLOT XH +2,YH +2
  206. 2540  PLOT XH,YH +3: PLOT XH +1,YH +5: PLOT XH +3,YH +5
  207. 2560  COLOR= 1: REM  RED SUIT
  208. 2570  HLIN XH +1,XH +2 AT YH +3
  209. 2580  PLOT XH +2,YH +4
  210. 2590  COLOR= 10: REM  GREY SHIELD
  211. 2600  FOR I = 2 TO 4: HLIN XH +3,XH +4 AT YH +I: NEXT I
  212. 2610  RETURN 
  213. 2700  REM  CLEANUP MONSTER SUBROUTINE
  214. 2705  COLOR= 15: REM  WHITE
  215. 2710  FOR I = 0 TO 5: HLIN XM,XM +4 AT YM +I: NEXT I
  216. 2720  RETURN 
  217. 2800  REM  CLEANUP SUBROUTINE FOR HUMAN
  218. 2810  COLOR= 15: REM  WHITE
  219. 2820  FOR I = 0 TO 5: HLIN XH,XH +4 AT YH +I: NEXT I
  220. 2830  RETURN 
  221. 2900  REM  QUICKSAND SUBROUTINE
  222. 2910 XP = PX +X:YP = PY +Y
  223. 2920  COLOR= 0: REM  BLACK
  224. 2930  HLIN XP,XP +4 AT YP +5
  225. 2935  FOR PAUSE = 1 TO 100: NEXT PAUSE
  226. 2940  HLIN XP,XP +4 AT YP +4
  227. 2945  FOR PAUSE = 1 TO 100: NEXT PAUSE
  228. 2950  HLIN XP,XP +4 AT YP +3
  229. 2955  FOR PAUSE = 1 TO 100: NEXT PAUSE
  230. 2960  HLIN XP,XP +4 AT YP +2
  231. 2965  FOR PAUSE = 1 TO 100: NEXT PAUSE
  232. 2970  HLIN XP,XP +4 AT YP +1
  233. 2975  FOR PAUSE = 1 TO 100: NEXT PAUSE
  234. 2980  HLIN XP,XP +4 AT YP
  235. 3000  RETURN 
  236. 3500  REM  DYING MONSTER SUBROUTINE
  237. 3510  COLOR= 15: REM  WHITE
  238. 3520  PLOT XM +1,YM: GOSUB 4000
  239. 3530  PLOT XM +2,YM: GOSUB 4000
  240. 3540  PLOT XM +3,YM: GOSUB 4000
  241. 3550  HLIN XM +1,XM +3 AT YM +1: GOSUB 4000
  242. 3560  HLIN XM,XM +4 AT YM +2: GOSUB 4000
  243. 3570  HLIN XM +1,XM +3 AT YM +3: GOSUB 4000
  244. 3580  PLOT XM +1,YM +4: PLOT XM +3,YM +4
  245. 3590  COLOR= 12: PLOT XM +2,YM +5
  246. 4000  FOR PAUSE = 1 TO 100: NEXT PAUSE: RETURN 
  247. 4010  RETURN 
  248. 10000  POKE  -16368,0: VTAB 23: HTAB 7: PRINT "PRESS ANY KEY TO CONTINUE.";: GET PT$: PRINT PT$: RETURN 
  249. 10010 FLAG = 0:CHOICE =  VAL(CHOICE$): IF CHOICE <1  OR CHOICE >4  THEN  PRINT : PRINT "PLEASE ENTER A NUMBER FROM 1 TO 4." CHR$(7):FLAG = 1
  250. 10020  RETURN 
  251. 20000  REM *** REVISED BY
  252. 20010  REM *** DOUG TRUEMAN
  253. 20020  REM *** IMPROVED INPUT ROUTINES
  254. 20030  REM *** IMPROVED DISPLAY
  255. 30040  REM *** TRUE RANDOM
  256. 30050  REM *** IMPROVED EXIT
  257. 30060  REM *** CONVERTED TO PRODOS