home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib19a.dsk / APRIL.1984 / MONSTER.HUNT.bas < prev    next >
BASIC Source File  |  2023-02-26  |  9KB  |  233 lines

  1. 10  REM  **********************
  2. 20  REM  *    MONSTER.HUNT    *
  3. 30  REM  *   BY  TED MITROU   *
  4. 40  REM  * COPYRIGHT (C) 1984 *
  5. 50  REM  * BY MICROSPARC, INC *
  6. 60  REM  * LINCOLN, MA. 01773 *
  7. 70  REM  **********************
  8. 80  LOMEM: 23000: HOME : VTAB 10: HTAB 14: INVERSE : PRINT "MONSTER HUNT";: NORMAL : VTAB 11: PRINT "BY TED MITROU": VTAB 14: PRINT "** COPYRIGHT 1984 BY MICROSPARC, INC. **": FOR I = 1 TO 1000: NEXT I
  9. 90  GOSUB 1770:D$ =  CHR$(4): PRINT D$"BLOAD SHAPES1,A$5600"
  10. 100  POKE 232,0: POKE 233,86
  11. 110  GOSUB 2030
  12. 120 L = 0:PP = 0:W$ = "":M =  INT( RND(1) *10) +4
  13. 130 F = 1: HOME : TEXT :SS = 10
  14. 140  HOME 
  15. 150  VTAB 10
  16. 160  PRINT "A SPACE MONSTER IS LANDING IN THE FOREST"
  17. 170  PRINT "IF YOU CAN GUESS WHERE HE IS HIDING ": PRINT "WITHIN ";SS;" GUESSES, YOU WIN!!"
  18. 180  PRINT : INVERSE 
  19. 190  PRINT " IF NOT, HE WILL EAT YOU!!!"
  20. 200  NORMAL : PRINT 
  21. 210  PRINT : INPUT "WHAT IS YOUR NAME?";N$
  22. 220  IF  LEFT$(N$,2) =  LEFT$(J$,2)  THEN PP = 1
  23. 230  PRINT 
  24. 240  PRINT : PRINT "HERE COMES THE MONSTER NOW...."
  25. 250  FOR N = 0 TO 1000: NEXT N
  26. 260  HGR : HCOLOR= 3: SCALE= F: ROT= 0
  27. 270  NORMAL 
  28. 280  FOR N = 0 TO 150
  29. 290 X =  RND(1) *270
  30. 300 Y =  RND(1) *150
  31. 310  HPLOT X,Y: HPLOT X +1,Y
  32. 320  NEXT N
  33. 330 X =  INT( RND(1) *260)
  34. 340  FOR Y = 10 TO 140  STEP 2
  35. 350  XDRAW 1 AT X,Y
  36. 360  GOSUB 1820
  37. 370  XDRAW 1 AT X,Y
  38. 380  NEXT Y
  39. 390  SCALE= F
  40. 400  CALL 62450: SCALE= 2: HCOLOR= 1
  41. 410  FOR X = 11 TO 271  STEP 20
  42. 420  FOR Y = 10 TO 150  STEP 30
  43. 430  DRAW 3 AT X,Y
  44. 440  DRAW 4 AT X,Y
  45. 450  NEXT Y
  46. 460  NEXT X
  47. 470  SCALE= 1: HCOLOR= 3
  48. 480  FOR A = 1 TO 25
  49. 490 X =  INT( RND(1) *271)
  50. 500 Y =  INT( RND(1) *150)
  51. 510  XDRAW 1 AT X,Y
  52. 520  GOSUB 1840
  53. 530  FOR N = 1 TO 300: NEXT N
  54. 540  XDRAW 1 AT X,Y
  55. 550  NEXT A
  56. 560  XDRAW 1 AT 140,150
  57. 570  VTAB 21
  58. 580  PRINT "I BET YOU CAN'T FIND ME....."
  59. 590  GOSUB 1930: GOSUB 1930: GOSUB 1930
  60. 600  FOR N = 1 TO 3000: NEXT N
  61. 610  XDRAW 1 AT 140,150
  62. 620  HCOLOR= 3: XDRAW 2 AT 11,7
  63. 630  HOME : VTAB 21
  64. 640  PRINT "YOU ARE THE WHITE SQUARE AT THE TOP LEFT"
  65. 650  VTAB 22: PRINT "TREE...THE CLOSER YOU GET TO THE MONSTER"
  66. 660  VTAB 23: PRINT "THE HIGHER THE SOUND..."
  67. 670  INPUT "HIT RETURN TO CONTINUE ";Q$: HOME 
  68. 680 XX = 11:YY = 10
  69. 690  REM  SELECT HIDING PLACE
  70. 700 X = 11 + INT( RND(1) *14) *20
  71. 710 Y = 10 + INT( RND(1) *5) *30
  72. 720  SCALE= 1: IF L = SS  THEN 1640
  73. 730  VTAB 22
  74. 740  PRINT "DO YOU WANT TO GO: L LEFT   U UP"
  75. 750  HTAB 20
  76. 760  PRINT "R RIGHT  D DOWN "
  77. 770  IF SS -L = 1  THEN  VTAB 24: INVERSE : PRINT " ";: PRINT SS -L;" MOVE REMAINING";: NORMAL : VTAB 23: HTAB 38: GOTO 790
  78. 780  VTAB 24: INVERSE : PRINT " ";: PRINT SS -L;" MOVES REMAINING";: NORMAL : VTAB 23: HTAB 38
  79. 790  GET D$: HOME : VTAB 21: IF D$ = "U"  OR D$ = "D"  OR D$ = "L"  OR D$ = "R"  OR D$ =  CHR$(8)  OR D$ =  CHR$(10)  OR D$ =  CHR$(11)  OR D$ =  CHR$(21)  THEN 810
  80. 800  PRINT  CHR$(7): PRINT  CHR$(7): PRINT  CHR$(7): GOTO 730
  81. 810  INPUT "HOW MANY TREES DO YOU WANT TO MOVE?";Q$:Q =  VAL(Q$): IF   NOT Q  THEN  HOME : VTAB 21: GOTO 810
  82. 820  IF PP = 1  THEN  XDRAW 1 AT X,Y: FOR N = 1 TO 15: NEXT N
  83. 830  IF PP = 1  THEN  XDRAW 1 AT X,Y
  84. 840  XDRAW 2 AT XX,YY -3
  85. 850 L = L +1
  86. 860  IF L = M  AND   NOT PP  THEN  GOSUB 1570: XDRAW 2 AT XX,YY -3: HOME : GOTO 700
  87. 870  IF D$ = "L"  OR D$ =  CHR$(8)  THEN  GOTO 920
  88. 880  IF D$ = "R"  OR D$ =  CHR$(21)  THEN  GOTO 1010
  89. 890  IF D$ = "U"  OR D$ =  CHR$(11)  THEN  GOTO 1110
  90. 900  IF D$ = "D"  OR D$ =  CHR$(10)  THEN  GOTO 1220
  91. 910  REM  GO LEFT ROUTINE
  92. 920  HOME : VTAB 21
  93. 930  IF XX -20 *Q <11  THEN  PRINT "YOU CAN'T LEAVE THE FOREST; TRY AGAIN": XDRAW 2 AT XX,YY -3: GOTO 730
  94. 940  FOR N = XX TO XX -20 *Q  STEP  -1
  95. 950  XDRAW 2 AT N,YY -3: FOR A = 1 TO 25: NEXT A: XDRAW 2 AT N,YY -3: NEXT N
  96. 960 XX = XX -20 *Q
  97. 970  HCOLOR= 0: SCALE= 2: DRAW 3 AT XX,YY: SCALE= 1
  98. 980  HCOLOR= 3: XDRAW 2 AT XX,YY -3
  99. 990  GOSUB 1330
  100. 1000  GOTO 720
  101. 1010  HOME : VTAB 21
  102. 1020  REM  SUBRT TO GO RIGHT
  103. 1030  IF XX +20 *Q >280  THEN  PRINT "YOU JUST LEFT THE FOREST; TRY AGAIN": XDRAW 2 AT XX,YY -3: GOTO 730
  104. 1040  FOR N = XX TO XX +20 *Q
  105. 1050  XDRAW 2 AT N,YY -3: FOR A = 1 TO 25: NEXT A: XDRAW 2 AT N,YY -3: NEXT N
  106. 1060 XX = XX +20 *Q
  107. 1070  HCOLOR= 0: SCALE= 2: DRAW 3 AT XX,YY: SCALE= 1
  108. 1080  HCOLOR= 3: XDRAW 2 AT XX,YY -3
  109. 1090  GOSUB 1330
  110. 1100  GOTO 720
  111. 1110  HOME : VTAB 21
  112. 1120  REM  MOVE UP
  113. 1130  IF YY -30 *Q <10  THEN  PRINT "YOU JUST LEFT THE FOREST; TRY AGAIN": XDRAW 2 AT XX,YY -3: GOTO 730
  114. 1140  FOR N = YY TO YY -30 *Q  STEP  -1
  115. 1150  XDRAW 2 AT XX,N -3: FOR A = 1 TO 25: NEXT A: XDRAW 2 AT XX,N -3: NEXT N
  116. 1160 YY = YY -30 *Q
  117. 1170  HCOLOR= 0: SCALE= 2: DRAW 3 AT XX,YY
  118. 1180  SCALE= 1
  119. 1190  HCOLOR= 3: XDRAW 2 AT XX,YY -3: SCALE= 1
  120. 1200  GOSUB 1330
  121. 1210  GOTO 720
  122. 1220  REM  MOVE DOWN
  123. 1230  HOME : VTAB 21
  124. 1240  IF YY +30 *Q >130  THEN  PRINT "YOU JUST LEFT THE FOREST; TRY AGAIN": XDRAW 2 AT XX,YY -3: GOTO 730
  125. 1250  FOR N = YY TO YY +30 *Q
  126. 1260  XDRAW 2 AT XX,N -3: FOR A = 1 TO 25: NEXT A: XDRAW 2 AT XX,N -3: NEXT N
  127. 1270 YY = YY +30 *Q
  128. 1280  HCOLOR= 0: SCALE= 2: DRAW 3 AT XX,YY
  129. 1290  SCALE= 1
  130. 1300  HCOLOR= 3: XDRAW 2 AT XX,YY -3: SCALE= 1
  131. 1310  GOSUB 1330
  132. 1320  GOTO 720
  133. 1330  REM  CHECK FOR MONSTER
  134. 1340  IF XX = X  AND YY = Y  THEN  SCALE= 1: HCOLOR= 3: DRAW 1 AT XX,YY: GOTO 1420
  135. 1350 B = X -XX: IF B <0  THEN B = B *( -1)
  136. 1360 C = Y -YY: IF C <0  THEN C = C *( -1)
  137. 1370 T =  SQR(B ^2 +C ^2)
  138. 1380  IF T >255  THEN T = 255
  139. 1390  GOSUB 1870
  140. 1400  RETURN 
  141. 1410  REM  END OF GAME ROUTINE
  142. 1420  HOME : VTAB 12
  143. 1430  GOSUB 1500
  144. 1440  TEXT : HOME : VTAB 3: FOR I = 1 TO 19: INVERSE : PRINT "*";: FLASH : PRINT "*";: NEXT I: HTAB 1: VTAB 22: FOR I = 1 TO 19: INVERSE : PRINT "*";: FLASH : PRINT "*";: NEXT I
  145. 1450  VTAB 10: HTAB 11: FLASH : PRINT "YOU ARE THE WINNER": NORMAL : PRINT : PRINT 
  146. 1460  PRINT "YOU TOOK ";L;" GUESSES TO FIND THE MONSTER"
  147. 1470  PRINT "DO YOU WANT TO PLAY AGAIN? Y/N ": GET W$: IF W$ < >"N"  THEN  GOTO 120
  148. 1480 D$ =  CHR$(4)
  149. 1490  PRINT : PRINT D$"CATALOG": END 
  150. 1500  FOR N = 1 TO 20
  151. 1510  POKE 768,60: POKE 769,60
  152. 1520  CALL 770
  153. 1530  POKE 768,180: POKE 769,60
  154. 1540  CALL 770
  155. 1550  NEXT N
  156. 1560  RETURN 
  157. 1570  HOME : VTAB 21:L = L -1:M = 0
  158. 1580  PRINT "I DECIDED TO HIDE BEHIND ANOTHER TREE. "
  159. 1590  PRINT "HA HA HA HA....."
  160. 1600  FOR N = 1 TO 10: GOSUB 1840: NEXT N
  161. 1610  INPUT "IF YOU WANT TO FIND ME PUSH RETURN";QQ$
  162. 1620 SS = 14
  163. 1630  RETURN 
  164. 1640  CALL 62450
  165. 1650  SCALE= 1
  166. 1660  FOR GG = 1 TO 5
  167. 1670  XDRAW 1 AT 110,80
  168. 1680  FOR N = 1 TO 90:Z =  PEEK( -16336): NEXT N
  169. 1690  HOME 
  170. 1700  XDRAW 1 AT 110,80
  171. 1710  SCALE= GG *3
  172. 1720  NEXT GG
  173. 1730  HOME : TEXT 
  174. 1740  VTAB 12: HTAB 10: PRINT "I ATE YOU ALL UP..YUMMY"
  175. 1750  VTAB 21: GOTO 1470
  176. 1760  END 
  177. 1770  PRINT 
  178. 1780  POKE 770,173: POKE 771,48: POKE 772,192: POKE 773,136: POKE 774,208: POKE 775,5: POKE 776,206: POKE 777,1: POKE 778,3: POKE 779,240: POKE 780,9: POKE 781,202
  179. 1790  POKE 782,208: POKE 783,245: POKE 784,174: POKE 785,0: POKE 786,3: POKE 787,76: POKE 788,2: POKE 789,3: POKE 790,96: POKE 791,0: POKE 792,0
  180. 1800  RETURN 
  181. 1810  REM  SOUND SUBROUTINE
  182. 1820  POKE 768,Y: POKE 769,30
  183. 1830  CALL 770
  184. 1840  POKE 768,200: POKE 769,30
  185. 1850  CALL 770
  186. 1860  RETURN 
  187. 1870  REM  TONE CLOSE TO MONSTER
  188. 1880  POKE 768,T: POKE 769,255
  189. 1890  FOR N = 0 TO 4
  190. 1900  CALL 770
  191. 1910  NEXT N
  192. 1920  RETURN 
  193. 1930  RESTORE : REM  SONG
  194. 1940  READ I,J: IF J = 0  THEN  RETURN 
  195. 1950  POKE 768,I: POKE 769,J: CALL 770
  196. 1960  GOTO 1940
  197. 1970  DATA   128,120,152,60,114,60,128,120,152,60,00,00
  198. 1980  FOR N = 1 TO 1
  199. 1990  POKE 768,255: POKE 769,60
  200. 2000  CALL 770
  201. 2010  NEXT N
  202. 2020  RETURN 
  203. 2030  HOME : VTAB 12: PRINT "DO YOU WANT INSTRUCTIONS? Y/N ": INPUT AA$: IF AA$ < >"Y"  THEN  RETURN 
  204. 2040  HOME : VTAB 3: HTAB 14: FLASH : PRINT "MONSTER HUNT": PRINT : PRINT 
  205. 2050  NORMAL 
  206. 2060  PRINT "MONSTER HUNT IS A GAME WHICH USES "
  207. 2070  PRINT "ANIMATION AND SOUND TO INTRIGUE YOUR"
  208. 2080  PRINT "KIDS WHILE TEACHING THEM DIRECTION AND "
  209. 2090  PRINT "LOGIC THROUGH LISTENING, LOOKING, AND "
  210. 2100  PRINT "COUNTING."
  211. 2110  PRINT "THE OBJECT OF THE GAME IS TO FIND THE "
  212. 2120  PRINT "MONSTER AFTER HE LANDS IN THE FOREST."
  213. 2130  PRINT "IF HE IS NOT FOUND WITHIN 10 GUESSES,"
  214. 2140  PRINT "THE MONSTER WINS."
  215. 2150  PRINT "STARTING AT THE TOP LEFT CORNER OF THE"
  216. 2160  PRINT "SCREEN, THE CHILD CAN MOVE UP, DOWN, "
  217. 2170  PRINT "LEFT, OR RIGHT BY PRESSING U, D, R, OR L";
  218. 2180  PRINT "AND A NUMBER WHICH SIGNIFIES HOW MANY"
  219. 2190  PRINT "TREES HE WISHES TO MOVE. "
  220. 2200  PRINT : PRINT "PRESS ANY KEY TO CONTINUE...": GET K$: HOME 
  221. 2210  VTAB 10
  222. 2220  PRINT "YOU MAY CHOOSE THE 'EASIER' VERSION "
  223. 2230  PRINT "(WHICH ALLOWS THE MONSTER TO PEEK OUT"
  224. 2240  PRINT "FROM HIS HIDING PLACE AFTER EACH MOVE)"
  225. 2250  PRINT "FOR YOUR CHILD BY ENTERING HIS NAME "
  226. 2260  PRINT "BELOW. (JUST HIT RETURN IF NONE)"
  227. 2270  PRINT "THE EASIER VERSION WILL AUTOMATICALLY"
  228. 2280  PRINT "RUN WHEN THE CHILD BELOW PLAYS THE GAME."
  229. 2290  PRINT "ANY OTHER KIDS WILL AUTOMATICALLY PLAY"
  230. 2300  PRINT "THE REGULAR VERSION. "
  231. 2310  VTAB 22: INPUT "CHILD'S NAME...";J$: HOME : VTAB 12: HTAB 5: PRINT "HIT ANY KEY TO BEGIN..": GET B$
  232. 2320  RETURN 
  233. 2330  END