home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / SIMTEL / CPMUG / CPMUG021.ARK / WUMP.ASC < prev    next >
Text File  |  1984-04-29  |  6KB  |  224 lines

  1.  
  2.  
  3. 5 REM *** HUNT THE WUMPUS ***
  4. 10 DIM P(5)
  5. 15 PRINT "INSTRUCTIONS (Y-N)";
  6. 20 INPUT I$
  7. 25 IF I$="N" THEN 35
  8. 30 GOSUB 375
  9. 35 GOTO 80
  10. 80 REM *** SET UP CAVE (DODECAHEDRAL NODE LIST) ***
  11. 85 DIM S(20,3)
  12. 90 FOR J=1 TO 20
  13. 95 FOR K=1 TO 3
  14. 100 READ S(J,K)
  15. 105 NEXT K
  16. 110 NEXT J
  17. 115 DATA 2,5,8,1,3,10,2,4,12,3,5,14,1,4,6
  18. 120 DATA 5,7,15,6,8,17,1,7,9,8,10,18,2,9,11
  19. 125 DATA 10,12,19,3,11,13,12,14,20,4,13,15,6,14,16
  20. 130 DATA 15,17,20,7,16,18,9,17,19,11,18,20,13,16,19
  21. 135 DEF FNA(X)=INT(20*RND(1))+1
  22. 140 DEF FNB(X)=INT(3*RND(1))+1
  23. 145 DEF FNC(X)=INT(4*RND(1))+1
  24. 150 REM *** LOCATE L ARRAY ITEMS ***
  25. 155 REM *** 1-YOU, 2-WUMPUS, 3&4-PITS, 5&6-BATS ***
  26. 160 DIM L(6)
  27. 165 DIM M(6)
  28. 170 FOR J=1 TO 6
  29. 175 L(J)=FNA(0)
  30. 180 M(J)=L(J)
  31. 185 NEXT J
  32. 190 REM *** CHECK FOR CROSSOVERS (IE L(1)=L(2), ETC) ***
  33. 195 FOR J=1 TO 6
  34. 200 FOR K=1 TO 6
  35. 205 IF J=K THEN 215
  36. 210 IF L(J)=L(K) THEN 170
  37. 215 NEXT K
  38. 220 NEXT J
  39. 225 REM *** SET NO. OF ARROWS ***
  40. 230 A=5
  41. 235 L=L(1)
  42. 240 REM *** RUN THE GAME ***
  43. 245 PRINT "HUNT THE WUMPUS"
  44. 250 REM *** HAZARD WARNING AND LOCATION ***
  45. 255 GOSUB 585
  46. 260 REM *** MOVE OR SHOOT ***
  47. 265 GOSUB 670
  48. 270 ON O GOTO 280,300
  49. 275 REM *** SHOOT ***
  50. 280 GOSUB 715
  51. 285 IF F=0 THEN 255
  52. 290 GOTO 310
  53. 295 REM *** MOVE ***
  54. 300 GOSUB 975
  55. 305 IF F=0 THEN 255
  56. 310 IF F>0 THEN 335
  57. 315 REM *** LOSE ***
  58. 320 PRINT "HA HA HA - YOU LOSE!"
  59. 325 GOTO 340
  60. 330 REM *** MOVE ***
  61. 335 PRINT "HEE HEE HEE - THE WUMPUS'LL GET YOU NEXT TIME!!"
  62. 340 FOR J=1 TO 6
  63. 345 L(J)=M(J)
  64. 350 NEXT J
  65. 355 PRINT "SAME SETUP (Y-N)";
  66. 360 INPUT I$
  67. 365 IF I$<>"Y"THEN 170
  68. 370 GOTO 230
  69. 375 REM *** INSTRUCTIONS ***
  70. 380 PRINT "WELCOME TO 'HUNT THE WUMPUS'"
  71. 385 PRINT "  THE WUMPUS LIVES IN A CAVE OF 20 ROOMS. EACH ROOM"
  72. 390 PRINT "HAS 3 TUNNELS LEADING TO OTHER ROOMS. (LOOK AT A"
  73. 395 PRINT "DODECAHEDRON TO SEE HOW THIS WORKS-IF YOU DON'T KNOW"
  74. 400 PRINT "WHAT A DODECAHEDRON IS, ASK SOMEONE)"
  75. 405 PRINT
  76. 410 PRINT "     HAZARDS:"
  77. 415 PRINT " BOTTOMLESS PITS - TWO ROOMS HAVE BOTTOMLESS PITS IN THEM
  78. 420 PRINT "     IF YOU GO THERE, YOU FALL INTO THE PIT (& LOSE!)"
  79. 425 PRINT " SUPER BATS - TWO OTHER ROOMS HAVE SUPER BATS. IF YOU"
  80. 430 PRINT "     GO THERE, A BAT GRABS YOU AND TAKES YOU TO SOME OTHER"
  81. 435 PRINT "     ROOM AT RANDOM. (WHICH MAY BE TROUBLESOME)"
  82. 440 INPUT "TYPE AN E THEN RETURN ";W9
  83. 445 PRINT "     WUMPUS:"
  84. 450 PRINT " THE WUMPUS IS NOT BOTHERED BY HAZARDS (HE HAS SUCKER"
  85. 455 PRINT " FEET AND IS TOO BIG FOR A BAT TOO LIFT).  USUALLY"
  86. 460 PRINT " HE IS ASLEEP.  TWO THINGS WAKE HIM UP:YOU SHOOTING AN"
  87. 465 PRINT " OR YOU ENTERING HIS ROOM."
  88. 470 PRINT "     IF THE WUMPUS WAKES HE MOVES (P=.75) ONE ROOM"
  89. 475 PRINT " OR STAYS STILL (P=.25).  AFTER THAT, IF HE IS WHERE YOU"
  90. 480 PRINT " ARE, HE EATS YOU UP AND YOU LOSE!"
  91. 485 PRINT
  92. 490 PRINT "     YOU:"
  93. 495 PRINT " EACH TURN YOU MAY MOVE OR SHOOT A CROOKED ARROW"
  94. 500 PRINT "   MOVING:  YOU CAN MOVE ONE ROOM (THRU ONE TUNNEL)"
  95. 505 PRINT "   ARROWS:  YOU HAVE 5 ARROWS.  YOU LOSE WHEN YOU RUN OUT
  96. 510 PRINT "   EACH ARROW CAN GO FROM 1 TO 5 ROOMS. YOU AIM BY TELLIN
  97. 515 PRINT "   THE COMPUTER THE ROOM#S YOU WANT THE ARROW TO GO TO."
  98. 520 PRINT "   IF THE ARROW CAN'T GO THAT WAY (IF NO TUNNEL) IT MOVES"
  99. 525 PRINT "   AT RANDOM TO THE NEXT ROOM."
  100. 530 PRINT "     IF THE ARROW HITS THE WUMPUS, YOU WIN."
  101. 535 PRINT "     IF THE ARROW YOU, YOU LOSE."
  102. 540 INPUT "TYPE AN E THEN RETURN ";W9
  103. 545 PRINT "    WARNINGS:"
  104. 550 PRINT "     WHEN YOU ARE ONE ROOM AWAY FROM A WUMPUS OR HAZARD,"
  105. 555 PRINT "     THE COMPUTER SAYS:"
  106. 560 PRINT " WUMPUS:  'I SMELL A WUMPUS'"
  107. 565 PRINT " BAT   :  'BATS NEARBY'"
  108. 570 PRINT " PIT   :  'I FEEL A DRAFT'"
  109. 575 PRINT
  110. 580 RETURN
  111. 585 REM *** PRINT LOCATION & HAZARD WARNINGS ***
  112. 590 PRINT
  113. 595 FOR J=2 TO 6
  114. 600 FOR K=1 TO 3
  115. 605 IF S(L(1),K)<>L(J) THEN 640
  116. 610 ON J-1 GOTO 615,625,625,635,635
  117. 615 PRINT "I SMELL A WUMPUS!"
  118. 620 GOTO 640
  119. 625 PRINT "I FEEL A DRAFT"
  120. 630 GOTO 640
  121. 635 PRINT "BATS NEARBY!"
  122. 640 NEXT K
  123. 645 NEXT J
  124. 650 PRINT "YOU ARE IN ROOM "L(1)
  125. 655 PRINT "TUNNELS LEAD TO "S(L,1);S(L,2);S(L,3)
  126. 660 PRINT
  127. 665 RETURN
  128. 670 REM *** CHOOSE OPTION ***
  129. 675 PRINT "SHOOT OR MOVE (S-M)";
  130. 680 INPUT I$
  131. 685 IF I$<>"S" THEN 700
  132. 690 O=1
  133. 695 RETURN
  134. 700 IF I$<>"M" THEN 675
  135. 705 O=2
  136. 710 RETURN
  137. 715 REM *** ARROW ROUTINE ***
  138. 720 F=0
  139. 725 REM *** PATH OF ARROW ***
  140. 735 PRINT "NO. OF ROOMS (1-5)";
  141. 740 INPUT J9
  142. 745 IF J9<1 THEN 735
  143. 750 IF J9>5 THEN 735
  144. 755 FOR K=1 TO J9
  145. 760 PRINT "ROOM #";
  146. 765 INPUT P(K)
  147. 770 IF K<=2 THEN 790
  148. 775 IF P(K)<>P(K-2) THEN 790
  149. 780 PRINT "ARROWS AREN'T THAT CROOKED - TRY ANOTHER ROOM"
  150. 785 GOTO 760
  151. 790 NEXT K
  152. 795 REM *** SHOOT ARROW ***
  153. 800 L=L(1)
  154. 805 FOR K=1 TO J9
  155. 810 FOR K1=1 TO 3
  156. 815 IF S(L,K1)=P(K) THEN 895
  157. 820 NEXT K1
  158. 825 REM *** NO TUNNEL FOR ARROW ***
  159. 830 L=S(L,FNB(1))
  160. 835 GOTO 900
  161. 840 NEXT K
  162. 845 PRINT "MISSED"
  163. 850 L=L(1)
  164. 855 REM *** MOVE WUMPUS ***
  165. 860 GOSUB 935
  166. 865 REM *** AMMO CHECK ***
  167. 870 A=A-1
  168. 875 IF A>0 THEN 885
  169. 880 F=-1
  170. 885 RETURN
  171. 890 REM *** SEE IF ARROW IS AT L(1) OR AT L(2)
  172. 895 L=P(K)
  173. 900 IF L<>L(2) THEN 920
  174. 905 PRINT "AHA! YOU GOT THE WUMPUS!"
  175. 910 F=1
  176. 915 RETURN
  177. 920 IF L<>L(1) THEN 840
  178. 925 PRINT "OUCH! ARROW GOT YOU!"
  179. 930 GOTO 880
  180. 935 REM *** MOVE WUMPUS ROUTINE ***
  181. 940 K=FNC(0)
  182. 945 IF K=4 THEN 955
  183. 950 L(2)=S(L(2),K)
  184. 955 IF L(2)<>L THEN 970
  185. 960 PRINT "TSK TSK TSK - WUMPUS GOT YOU!"
  186. 965 F=-1
  187. 970 RETURN
  188. 975 REM *** MOVE ROUTINE ***
  189. 980 F=0
  190. 985 PRINT "WHERE TO";
  191. 990 INPUT L
  192. 995 IF L<1 THEN 985
  193. 1000 IF L>20 THEN 985
  194. 1005 FOR K=1 TO 3
  195. 1010 REM *** CHECK IF LEGAL MOVE ***
  196. 1015 IF S(L(1),K)=L THEN 1045
  197. 1020 NEXT K
  198. 1025 IF L=L(1) THEN 1045
  199. 1030 PRINT "NOT POSSIBLE -";
  200. 1035 GOTO 985
  201. 1040 REM *** CHECK FOR HAZARDS ***
  202. 1045 L(1)=L
  203. 1050 REM *** WUMPUS ***
  204. 1055 IF L<>L(2) THEN 1090
  205. 1060 PRINT "... OOPS! BUMPED A WUMPUS!"
  206. 1065 REM *** MOVE WUMPUS ***
  207. 1070 GOSUB 940
  208. 1075 IF F=0 THEN 1090
  209. 1080 RETURN
  210. 1085 REM *** PIT ***
  211. 1090 IF L=L(3) THEN 1100
  212. 1095 IF L<>L(4) THEN 1120
  213. 1100 PRINT "YYYYIIIIEEEE . . . FELL IN PIT"
  214. 1105 F=-1
  215. 1110 RETURN
  216. 1115 REM *** BATS ***
  217. 1120 IF L=L(5) THEN 1130
  218. 1125 IF L<>L(6) THEN 1145
  219. 1130 PRINT "ZAP--SUPER BAT SNATCH! ELSEWHEREVILLE FOR YOU!"
  220. 1135 L=FNA(1)
  221. 1140 GOTO 1045
  222. 1145 RETURN
  223. 1150 END
  224.