home *** CD-ROM | disk | FTP | other *** search
/ Collection of Education / collectionofeducationcarat1997.iso / SPORT / GOLF96B.ZIP / GOLF96.BAS < prev    next >
BASIC Source File  |  1996-03-09  |  17KB  |  439 lines

  1. 100 'GOLF96 BY PHILIP VLASAK MARCH 9, 96
  2. 110 REM CONVERTED BY STEVE ESTLE
  3. 120 ESCAPE = 27
  4. 130 KEY OFF: CLS
  5. 140 RANDOMIZE TIMER
  6. 150 DIM A$(25),FIRST(9)
  7. 160 ON ERROR GOTO 4060
  8. 170 DATFILE$="GOLF96.SAV": OPEN DATFILE$ FOR INPUT AS #1
  9. 180 INPUT #1,SCORE,PLAYERNAME$,SOUNDSET$:CLOSE #1
  10. 190 A$(1)="1ST TEE"
  11. 200 A$(2)="2ND TEE"
  12. 210 A$(3)="3RD TEE"
  13. 220 A$(4)="4TH TEE"
  14. 230 A$(5)="5TH TEE"
  15. 240 A$(6)="6TH TEE"
  16. 250 A$(7)="7TH TEE"
  17. 260 A$(8)="8TH TEE"
  18. 270 A$(9)="9TH TEE"
  19. 280 A$(10)="10TH TEE"
  20. 290 A$(11)="11TH TEE"
  21. 300 A$(12)="12TH TEE"
  22. 310 A$(13)="13TH TEE"
  23. 320 A$(14)="14TH TEE"
  24. 330 A$(15)="15TH TEE"
  25. 340 A$(16)="16TH TEE"
  26. 350 A$(17)="17TH TEE"
  27. 360 A$(18)="18TH TEE"
  28. 370 GOSUB 4130 ' TO CLUB NAME
  29. 380 PRINT
  30. 390 PRINT "WELCOME TO THE ";CLUBNAME$;" COUNTRY CLUB"
  31. 400 PRINT
  32. 410 PRINT "THE LOCAL PRO IS ";PLAYERNAME$
  33. 420 PRINT "WITH A RECORD SCORE OF";SCORE;"UNDER PAR."
  34. 430 PRINT
  35. 440 PRINT "ARE YOU A NEW MEMBER OF THE ";CLUBNAME$;" CLUB?  ENTER Y OR N "
  36. 450 X$=INKEY$: IF X$="" THEN 450
  37. 460 CLS: TT=1: GOSUB 4230
  38. 470 IF X$="Y" OR X$="y" THEN PRINT: GOTO 530
  39. 480 IF X$="N" OR X$="n" THEN PRINT: GOTO 910
  40. 490 IF X$=CHR$(ESCAPE) THEN GOSUB 3990
  41. 500 IF X$=CHR$(ESCAPE) THEN  GOTO 440
  42. 510 PRINT "I CAN SEE YOU HAVE ALREADY SPENT CONSIDERABLE TIME AT THE 19THHOLE TRY ANSWERING AGAIN."
  43. 520 GOTO 440
  44. 530 PRINT :PRINT :PRINT 
  45. 540 PRINT "             YOU ARE ABOUT TO PLAY A ROUND OF GOLF                                           AT THE NEW AND EXCITING ";CLUBNAME$;" COUNTRY                                          CLUB."
  46. 550 PRINT
  47. 560 PRINT TAB(18)"********** THESE ARE YOUR CLUBS **********"
  48. 570 PRINT
  49. 580 PRINT TAB(26)"  4 WOODS NUMBERED 1 THROUGH 4"
  50. 590 PRINT TAB(26)"  FOR HITTING AT DISTANCES OVER 180 FEET."
  51. 600 PRINT TAB(26)"  8 (EIGHT) IRONS  2 THROUGH 9"
  52. 610 PRINT TAB(26)"  FOR HITTING SHORTER DISTANCES."
  53. 620 PRINT TAB(26)"  A WEDGE FOR SAND TRAPS"
  54. 630 PRINT
  55. 640 PRINT TAB(26)"  AND A PUTTER WHEN YOU'RE ON THE GREEN."
  56. 650 PRINT
  57. 660 PRINT "  FOR THE WOODS AND IRONS, THE DISTANCE YOU HIT THE BALL"
  58. 670 PRINT "  IS DETERMINED BY THE NUMBER OF THE CLUB."
  59. 680 PRINT "  THE LOWER THE NUMBER, THE FARTHER WILL BE YOUR DRIVE."
  60. 690 PRINT: PRINT TAB(26)"HIT ANY KEY TO CONTINUE"
  61. 700 A$=INKEY$:IF A$="" THEN 700
  62. 710 CLS: TT=1: GOSUB 4230
  63. 720 PRINT
  64. 730 PRINT
  65. 740 PRINT "YOU PUTT BY TYPING A NUMBER FROM 0  TO 9."
  66. 750 PRINT "THE DISTANCE AND CORRECTNESS OF YOUR PUTT ARE CONTROLLED BY THE SIZE"
  67. 760 PRINT "OF YOUR NUMBER.  A 0 WILL TAP THE BALL ACCURATELY,"
  68. 770 PRINT "A 9 WILL DRIVE IT APPROXIMATELY    100 FEET WITH DOUBTFUL ACCURACY."
  69. 780 PRINT: PRINT "PAR 3 IS UP TO 250 YARDS,"
  70. 790 PRINT "PAR 4 IS 251 TO 475 YARDS,"
  71. 800 PRINT "PAR 5 IS OVER 475 YARDS."
  72. 810 PRINT: PRINT "YOU CAN TYPE E OR HIT ESCAPE TO END AT ANY TIME."
  73. 820 PRINT: PRINT "ALL THE KEY SELECTIONS ARE ONE LETTER,"
  74. 830 PRINT "YOU ONLY TYPE ONE LETTER OR NUMBER TO GET ACTION."
  75. 840 PRINT 
  76. 850 PRINT "YOU CAN TURN SOUND EFFECTS ON OR OFF AT ANY TIME BY TYPING S."
  77. 860 PRINT "IF YOU DON'T HAVE A SOUND CARD YOU SHOULD TURN SOUND OFF."
  78. 870 PRINT
  79. 880 PRINT TAB(26)"HIT ANY KEY TO START"
  80. 890 A$=INKEY$:IF A$="" THEN 890
  81. 900 CLS: TT=1: GOSUB 4230
  82. 910 S=S+1
  83. 920 IF S<>19 THEN 950
  84. 930 K1=2
  85. 940 GOTO 3740
  86. 950 IF S<>10 THEN 1070
  87. 960 K1=1
  88. 970 PRINT
  89. 980 PRINT
  90. 990 PRINT "DO YOU WANT TO PLAY ANOTHER NINE HOLES,  "
  91. 1000 PRINT "YES OR NO "
  92. 1010 X2$=INKEY$:IF X2$="" THEN 1010
  93. 1020 TT=1: GOSUB 4230
  94. 1030 IF X2$="Y" OR X2$="y" THEN PRINT: GOTO 1070
  95. 1040 IF X2$="N" OR X2$="n" THEN PRINT: GOTO 3740
  96. 1050 PRINT :PRINT :PRINT "IF YOU PLAY LIKE YOU TYPE YOU WILL NEVER MAKE IT!"
  97. 1060 GOTO 990
  98. 1070 PRINT
  99. 1080 READ Y
  100. 1090 Y1=Y
  101. 1100 READ D
  102. 1110 PRINT "YOU ARE ON THE ";A$(S);"..."
  103. 1120 PRINT "IT IS";Y;"YARDS LONG, PAR";D
  104. 1130 C=0
  105. 1140 K=0
  106. 1150 'NEXT SHOT
  107. 1160 IF INT(Y)=0 THEN 2770
  108. 1170 C=C+1
  109. 1180 IF S+C<3 THEN 1210
  110. 1190 PRINT :PRINT "G - WEDGE, I - IRON, OR W - WOOD"
  111. 1200 GOTO 1240
  112. 1210 PRINT "TELL ME WHICH TYPE OF CLUB TO USE,"
  113. 1220 PRINT "FOR A WEDGE TYPE G, FOR AN IRON TYPE I, OR FOR A WOOD TYPE W."
  114. 1230 PRINT "FROM NOW ON I    WILL JUST ASK WEDGE, IRON OR WOOD."
  115. 1240 Z$=INKEY$:IF Z$="" THEN 1240
  116. 1250 IF Z$="E" OR Z$="e" OR Z$=CHR$(ESCAPE) THEN GOSUB 3990
  117. 1260 IF Z$="E" OR Z$="e" OR Z$=CHR$(ESCAPE) THEN GOTO 1190
  118. 1270 IF Z$="S" OR Z$="s" THEN GOSUB 4250 'TO SOUND SETTING
  119. 1280 IF Z$="S" OR Z$="s" THEN GOTO 1190
  120. 1290 TT=1: GOSUB 4230
  121. 1300 IF Z$="W" OR Z$="w" THEN PRINT " ": GOTO 1800
  122. 1310 IF Z$="G" OR Z$="g" THEN PRINT " YOU CHOOSE A WEDGE": GOTO 1370
  123. 1320 IF Z$="I" OR Z$="i" THEN PRINT " ": GOTO 1460
  124. 1330 PRINT "YOU CAN ONLY CHOOSE A WEDGE, IRON OR WOOD."
  125. 1340 PRINT "FOR A WEDGE TYPE G, FOR AN IRON TYPE I, OR FOR A WOOD TYPE W."
  126. 1350 PRINT "TYPE E OR HIT ESCAPE TO END."
  127. 1360 GOTO 1240
  128. 1370 TT=1: GOSUB 4230
  129. 1380 IF Y<(18*RND+73) THEN 1410
  130. 1390 PRINT "  HEY... YOU CAN'T USE A WEDGE AT THIS DISTANCE...."
  131. 1400 Z$="": GOTO 1190
  132. 1410 IF SOUNDSET$="ON" THEN SHELL "PLANY HITSAND.WAV"
  133. 1420 SEL=RND:IF SEL>.75 THEN GOTO 2620
  134. 1430 IF INT(15*RND)=13 THEN 3400 'TO SINK SHOT
  135. 1440 Y=Y-(INT(75*RND+50))
  136. 1450 GOTO 2690 'TO ON GREEN
  137. 1460 PRINT "WHAT NUMBER IRON "
  138. 1470 CLUB$=INKEY$:IF CLUB$="" THEN 1470
  139. 1480 IF CLUB$="E" OR CLUB$="e" OR CLUB$=CHR$(ESCAPE) THEN GOSUB 3990
  140. 1490 IF CLUB$="E" OR CLUB$="e" OR CLUB$=CHR$(ESCAPE) THEN GOTO 1190
  141. 1500  IF CLUB$="S" OR CLUB$="s" THEN GOSUB 4250
  142. 1510 IF CLUB$="S" OR CLUB$="s" THEN GOTO 1460
  143. 1520 TT=1: GOSUB 4230
  144. 1530 IF CLUB$<"2" THEN 1640
  145. 1540 IF CLUB$>"9" THEN 1640
  146. 1550 IF CLUB$="2" THEN A=2
  147. 1560 IF CLUB$="3" THEN A=3
  148. 1570 IF CLUB$="4" THEN A=4
  149. 1580 IF CLUB$="5" THEN A=5
  150. 1590 IF CLUB$="6" THEN A=6
  151. 1600 IF CLUB$="7" THEN A=7
  152. 1610 IF CLUB$="8" THEN A=8
  153. 1620 IF CLUB$="9" THEN A=9
  154. 1630 GOTO 1670
  155. 1640 PRINT "YOUR IRONS ARE NUMBERED 2 THRU 9, RETYPE..."
  156. 1650 CLUB$=""
  157. 1660 GOTO 1460
  158. 1670 SEL=RND:IF SEL>.95 THEN GOTO 2650
  159. 1680 IF SOUNDSET$="ON" THEN SHELL "PLANY GOLF.WAV"
  160. 1690 IF K=0 THEN 1720
  161. 1700 IF INT(5*RND)=3 THEN 2690 'TO ON GREEN
  162. 1710 GOTO 2610 'TO MISSED THE BALL
  163. 1720 M=INT(35*RND+200)
  164. 1730 X=INT(M-14.4*A-(7*RND+38))
  165. 1740 Y=Y-INT(X)
  166. 1750 IF M/27=INT(M/27) THEN 2530 'TO WOODS
  167. 1760 IF M/8=INT(M/8) THEN 2420 'TO SAND TRAP
  168. 1770 IF M/32=INT(M/32) THEN 2610 'TO MISSED THE BALL
  169. 1780 IF M/69=INT(M/69) THEN 3400 'TO SINK SHOT
  170. 1790 GOTO 2250 'TO LENGTH OF SHOT
  171. 1800 PRINT "WHAT NUMBER WOOD"
  172. 1810 CLUB$=INKEY$:IF CLUB$="" THEN 1810
  173. 1820 IF CLUB$="E" OR CLUB$="e" OR CLUB$=CHR$(ESCAPE) THEN GOSUB 3990
  174. 1830 IF CLUB$="E" OR CLUB$="e" OR CLUB$=CHR$(ESCAPE) THEN GOTO 1190
  175. 1840 IF CLUB$="S" OR CLUB$="s" THEN GOSUB 4250
  176. 1850 IF CLUB$="S" OR CLUB$="s" THEN GOTO 1800
  177. 1860 TT=1: GOSUB 4230
  178. 1870 IF CLUB$<"1" THEN 1940
  179. 1880 IF CLUB$>"4" THEN 1940
  180. 1890 IF CLUB$="1" THEN A=1
  181. 1900 IF CLUB$="2" THEN A=2
  182. 1910 IF CLUB$="3" THEN A=3
  183. 1920 IF CLUB$="4" THEN A=4
  184. 1930 GOTO 1970
  185. 1940 PRINT "YOUR WOODS ARE NUMBERED 1-4, RETYPE..."
  186. 1950 CLUB$=""
  187. 1960 GOTO 1800
  188. 1970 SEL=RND:IF SEL>.95 THEN GOTO 2650 'to missed the ball
  189. 1980 IF SOUNDSET$="ON" THEN SHELL "PLANY GOLF.WAV"
  190. 1990 SEL=RND: IF SEL>.95 THEN GOSUB 4440 'to sink shot
  191. 2000 IF K=0 THEN 2030
  192. 2010 IF INT(7*RND)=3 THEN 2690 'TO ON GREEN
  193. 2020 GOTO 2610 'TO MISSED THE BALL
  194. 2030 X=INT(RND*250)
  195. 2040 IF A<>1 THEN 2070
  196. 2050 IF X<220 THEN 2030
  197. 2060 GOTO 2170
  198. 2070 IF A<>2 THEN 2110
  199. 2080 IF X<210 THEN 2030
  200. 2090 IF X>230 THEN 2030
  201. 2100 GOTO 2170
  202. 2110 IF A<>3 THEN 2150
  203. 2120 IF X<200 THEN 2030
  204. 2130 IF X>220 THEN 2030
  205. 2140 GOTO 2170
  206. 2150 IF X<190 THEN 2030
  207. 2160 IF X>210 THEN 2030
  208. 2170 Y=Y-X
  209. 2180 FOR I=1 TO (4-A+C^2)
  210. 2190 V=INT(30*RND)
  211. 2200 IF X/11=INT(X/11) THEN 2330
  212. 2210 IF X/5=INT(X/5) THEN 2480
  213. 2220 IF X/28=INT(X/28) THEN 2360
  214. 2230 IF X/27=INT(X/27) THEN 2530 'TO WOODS
  215. 2240 NEXT I
  216. 2250 IF Y>27 THEN 2310 'TO LENGTH OF SHOT
  217. 2260 IF Y<-23 THEN 2580 'TO OVERSHOT GREEN
  218. 2270 IF ABS(Y)<5 THEN 2450 'TO SINK SHOT
  219. 2280 IF (3.3*RND)=2 THEN 2410 'TO SAND TRAP
  220. 2290 IF (3.3*RND)=3  THEN 2610 'TO MISSED THE BALL
  221. 2300 GOTO 2690 'TO ON GREEN
  222. 2310 PRINT "YOU HIT IT";INT(X);"YARDS. YOU ARE";INT(Y);"YARDS AWAY."
  223. 2320 GOTO 1150
  224. 2330 IF Y<25 THEN 2420 'TO SAND TRAP
  225. 2340 PRINT "YOU ARE IN THE LEFT ROUGH";INT(Y);"YARDS AWAY."
  226. 2350 GOTO 1150
  227. 2360 IF