home *** CD-ROM | disk | FTP | other *** search
/ The Glitch Apple Disk Collection / 2014.glitch.apple.collection.zip / indexed / SNAKBITE.DSK / GOLF.bas < prev    next >
BASIC Source File  |  2014-09-09  |  19KB  |  268 lines

  1. 0  CLEAR : TEXT : HOME 
  2. 1  PRINT  TAB( 17);"GOLF": PRINT : PRINT : PRINT : PRINT "WOULD YOU LIKE INSTRUCTIONS?";: GET WB$: IF WB$ = "N" GOTO 3000
  3. 2  HOME : GOTO 15000
  4. 4  COLOR= 4: FOR I = G% TO G% +5: VLIN B% +3,B% +9 AT I: NEXT :X% = B%
  5. 5  COLOR= 13: FOR I = 1 TO 5 * RND(2)
  6. 6 A% = 39 * RND(1): GOSUB 16000: IF  SCRN( B%,A%) < >12  OR A% = 0 GOTO 6
  7. 7 A = A% -1:B = A% +1: FOR C = B% -3 TO B%: VLIN A,B AT C: NEXT : NEXT : RETURN 
  8. 8  COLOR= 8: FOR I = 1 TO (11 * RND(1) +5):A = 2 * RND(1):B% = 25 * RND(1) +7: FOR C = 0 TO 25: IF  SCRN( B%,C) = 12  THEN A = A +C:C = 25: GOTO 12
  9. 9  NEXT C: NEXT I: RETURN 
  10. 12  PLOT B%,A: NEXT C: NEXT I
  11. 13  FOR I = 1 TO (11 * RND(1) +5):A = 2 * RND(1):B% = 25 * RND(1) +7: FOR C = 39 TO 14  STEP  -1: IF  SCRN( B%,C) = 12  THEN A = C -A:C = 14: GOTO 15
  12. 14  NEXT C: NEXT I: RETURN 
  13. 15  PLOT B%,A: NEXT C: NEXT I: RETURN 
  14. 16 PL = 2:C(1) = 1:D(1) = 0:X(1) = 1:Y(1) = 18:C(2) = 2:D(2) = 0:X(2) = 1:Y(2) = 18: COLOR= C(1): PLOT X(1),Y(1):SC = (11 * RND(1)) +5::N$(1) = "FRED":N$(2) = "PESTO": GOTO 1000
  15. 20 WT = ( RND(1) *6) +1: IF WT <5  THEN  RETURN 
  16. 21  GOSUB 600:W%(2) =  RND(1) *39: IF  SCRN( W%(1),W%(2)) = 15  OR  SCRN( W%(1),W%(2)) = 4  OR  SCRN( W%(1),W%(2)) < >12  OR W%(1) >31  OR W%(2) >33 GOTO 21
  17. 22 A = 2 + RND(1) *5:B = 2 + RND(1) *5:C = 3 + RND(1) *6
  18. 23  COLOR= 2: HLIN W%(1) +1,W%(1) +A AT W%(2): HLIN W%(1) +1,W%(1) +A AT W%(2) +B +1: FOR X = 1 TO B: HLIN W%(1),W%(1) +C AT W%(2) +X: NEXT X: RETURN 
  19. 25 I = (G% +1) +(4 * RND(1)):J = (X% +4) +(5 * RND(1)): IF  SCRN( I,J) < >4 GOTO 25
  20. 26  COLOR= 15: PLOT I,J:H(1) = I:H(2) = J
  21. 40 R =  RND(1) *6: IF R <5  THEN  RETURN 
  22. 41 R = 4 + RND(1) *31: FOR I = 0 TO 39:B =  RND(1): IF B <.33  THEN R = R -1: IF R <0  THEN R = 0
  23. 43  IF B >.66  THEN R = R +1: IF R >39  THEN R = 39
  24. 44  IF  SCRN( R,I) = 12  THEN  COLOR= 2: PLOT R,I: NEXT : RETURN 
  25. 45  NEXT : RETURN 
  26. 50 B = 1:C = 2 * RND(1): IF C >1  THEN B =  -1
  27. 51  IF HC(Z) <10 GOTO 60
  28. 52  IF HC(Z) >18 GOTO 58
  29. 53  IF C >.5  AND C <1.5 GOTO 62
  30. 54 AN = AN +(HC(Z) * RND(1) *B): GOTO 62
  31. 58  IF C >.89  AND C <1 GOTO 62
  32. 59 AN = AN +(20 *B * RND(1)): GOTO 62
  33. 60  IF C >.39  AND C <1.6 GOTO 62
  34. 61 AN = AN +(10 * RND(1) *B):C =  RND(1): IF C >.99  THEN AN = AN +(10 * RND(1) *B)
  35. 62 C = 0:L = 9 -CL: IF L >1  THEN C = L +2:L = (L +WO +((HC(Z) +1)/2)) * RND(1): IF L <2 GOTO 66
  36. 63 AN = AN +(C *B)
  37. 64  IF CL >7 GOTO 72
  38. 66  IF AN >45  AND AN <136  THEN AN = AN +(4 *WI(2))
  39. 67  IF AN > = 136  AND AN < = 180  THEN AN = AN +(4 *WI(1))
  40. 68  IF AN >180  AND AN < = 225  THEN AN = AN -(4 *WI(1))
  41. 69  IF AN >225  AND AN < = 315  THEN AN = AN -(4 *WI(2))
  42. 70  IF AN >315  THEN AN = AN -(4 *WI(1))
  43. 71  IF AN < = 45  THEN AN = AN +(4 *WI(1))
  44. 72 AN(Z) = AN: RETURN 
  45. 90 DI = 0:ID = 15:DW = 19:B = 2 * RND(1): IF B <1  THEN B =  -1
  46. 91  IF B >1  THEN B = 1
  47. 92  IF AN(Z) < = 45  THEN ID = ID +WI(2):DW = DW +WI(2)
  48. 93  IF AN(Z) >45  AND AN(Z) <136  THEN ID = ID +WI(1):DW = DW +WI(1)
  49. 94  IF AN(Z) > = 136  AND AN(Z) < = 180  THEN ID = ID +WI(2):DW = DW +WI(2)
  50. 95  IF AN(Z) >180  AND AN(Z) < = 225  THEN ID = ID -WI(2):DW = DW -WI(2)
  51. 96  IF AN(Z) >225  AND AN(Z) < = 315  THEN ID = ID -WI(1):DW = DW -WI(1)
  52. 97  IF AN(Z) >315  THEN ID = ID -WI(2):DW = DW -WI(2)
  53. 98 C = ((HC(Z) +1)/2) * RND(1): IF C >3  AND C <7  THEN C = C +(2 * RND(1))
  54. 99  IF CL >7  THEN ID = 15
  55. 100 DI = (ID -(CL *(15/9)) +(SW/10)): IF WO >0  THEN DI = (DW -(2 *CL) +(SW/10))
  56. 102  IF HC(Z) >5  THEN B =  -1
  57. 104 DI = DI +(C *B)
  58. 106  IF WG >0  AND (CL <5  OR WO >0)  THEN DI = DI -WG
  59. 108  IF SA(Z) >CL  THEN DI = DI -(2 *(SA(Z) -CL) +(2 *B * RND(1)))
  60. 109 SA(Z) = 0
  61. 110 Q = 0: IF RO(Z) >2  THEN Q = 5 * RND(1)
  62. 111  IF RO(Z) >0  THEN Q = 3 * RND(1)
  63. 112 RO(Z) = 0:DI =  ABS(DI -Q) *(10/SC): RETURN 
  64. 200  IF I >(2 *DI/3)  THEN I = DI: GOTO 210
  65. 202  IF WO >1  AND I <(8 -(2 *CL))  THEN I = X(Z) +DI +1: GOTO 210
  66. 204  IF WO = 0  AND I <(7 -CL)  THEN I = DI: GOTO 210
  67. 206  RETURN 
  68. 210  FOR J = 1 TO 2: PRINT "<CTRL-G>": FOR N = 0 TO 14:Q =  PEEK( -16336): NEXT : NEXT : POP :AP = Y: GOTO 1050
  69. 300 WG = 0:WI(1) = 0:WI(2) = 0: ON WI GOTO 305,310,315,320,325,330,335,340,345
  70. 305  GOSUB 370: PRINT "THE WIND IS ";: GOSUB 365: PRINT " FROM THE NORTH.":WI(2) = WI: RETURN 
  71. 310  GOSUB 370: PRINT "THE WIND IS ";: GOSUB 365: PRINT " FROM THE NORTHEAST":WI(1) =  -WI:WI(2) = WI: RETURN 
  72. 315  GOSUB 370: PRINT "THE WIND IS ";: GOSUB 365: PRINT " FROM THE EAST.":WI(1) =  -WI: RETURN 
  73. 320  GOSUB 370: PRINT "THE WIND IS ";: GOSUB 365: PRINT " FROM THE SOUTHEAST":WI(1) =  -WI:WI(2) =  -WI: RETURN 
  74. 325  GOSUB 370: PRINT "THE WIND IS ";: GOSUB 365: PRINT " FROM THE SOUTH.":WI(2) =  -WI: RETURN 
  75. 330  GOSUB 370: PRINT "THE WIND IS ";: GOSUB 365: PRINT " FROM THE SOUTHWEST":WI(1) = WI:WI(2) =  -WI: RETURN 
  76. 335  GOSUB 370: PRINT "THE WIND IS ";: GOSUB 365: PRINT " FROM THE WEST.":WI(1) = WI: RETURN 
  77. 340  GOSUB 370: PRINT "THE WIND IS ";: GOSUB 365: PRINT " FROM THE NORTHWEST":WI(1) = WI:WI(2) = WI: RETURN 
  78. 345  PRINT "IT'S RAINING LIGHTLY":WG = 1:WI(1) =  -1: RETURN 
  79. 365  IF WI = 0  THEN  PRINT "CALM": POP : RETURN 
  80. 366  IF WI = 1  THEN  PRINT "LIGHT";: RETURN 
  81. 367  IF WI = 2  THEN  PRINT "MODERATE";: RETURN 
  82. 368  PRINT "STRONG";: RETURN 
  83. 370 WI = 7 * RND(1) -2: IF WI <1  THEN WI = 0
  84. 371  IF WI >3  THEN WI = 3
  85. 372 WI =  INT(WI): RETURN 
  86. 400  POKE 34,20:SA(Z) = 9 * RND(1) +1: ON SA(Z) GOTO 402,404,406,408,410,412,414,416,418
  87. 402  PRINT N$(Z);"'S BALL IS SITTING HIGH": RETURN 
  88. 404  PRINT N$(Z);"'S BALL IS SITTING LOW ": RETURN 
  89. 406  PRINT N$(Z);"'S BALL IS SITTING VERY LOW": RETURN 
  90. 408  PRINT N$(Z);"'S BALL IS LOW, NEAR THE LIP": RETURN 
  91. 410  PRINT N$(Z);"'S BALL IS VERY LOW, NEAR THE LIP": RETURN 
  92. 412  PRINT N$(Z);"'S BALL IS PARTLY COVERED": RETURN 
  93. 414  PRINT N$(Z);"'S BALL IS COMPLETELY COVERED": RETURN 
  94. 416  PRINT N$(Z);"'S BALL IS BURIED.": RETURN 
  95. 418  PRINT N$(Z);"'S BALL IS BURIED IN THE LIP OF THE BUNKER": RETURN 
  96. 500  PRINT "<CTRL-G>K<CTRL-G>E<CTRL-G>R<CTRL-G>S<CTRL-G>P<CTRL-G>L<CTRL-G>A<CTRL-G>S<CTRL-G>H"
  97. 501  PRINT N$(Z);"'S BALL IS IN THE DRINK.": PRINT "ONE STROKE PENALTY.": GET WB$
  98. 502 G1 =  -15:G2 =  -1: COLOR= 2: PLOT X,Y: IF G% = 1  THEN G1 = 15:G2 = 1
  99. 503 T = X +G1: IF T <1  THEN T = 1
  100. 505  FOR L = X TO T  STEP G2: IF  SCRN( L,Y) = 2  OR O = 1  THEN  NEXT : GOTO 507
  101. 506 X = L:O = 1:D =  SCRN( X,Y): NEXT 
  102. 507 ST(Z) = ST(Z) +1: RETURN 
  103. 600  IF G% = 1  THEN W%(1) =  RND(1) *30: RETURN 
  104. 605 W%(1) = 8 + RND(1) *30: RETURN 
  105. 650 CS = 1: POKE 34,20: HOME : HTAB (17): PRINT "WOODS": PRINT "1=270 YARDS                2=240 YARDS": PRINT "3=210 YARDS                4=175 YARDS": PRINT "        ALL OTHERS HIT AS IRONS";: GET WB$: HOME 
  106. 655  HTAB (17): PRINT "IRONS": PRINT "1=220 YARDS  2=205 YARDS  3=190 YARDS": PRINT "4=175 YARDS  5=160 YARDS  6=145 YARDS": PRINT "7=130 YARDS  8=115 YARDS  9=100 YARDS";: GET WB$: HOME : GOTO 1001
  107. 700  IF I <6  THEN  RETURN 
  108. 705 F =  RND(1): IF I <16  AND F <.05  THEN X = X +A: RETURN 
  109. 710  IF I >15  AND F <.1  THEN X = X +A
  110. 715  RETURN 
  111. 750  IF I <6  THEN  RETURN 
  112. 755 F =  RND(1): IF I <16  AND F <.05  THEN Y = Y +B: RETURN 
  113. 760  IF I >15  AND F <.1  THEN Y = Y +B: RETURN 
  114. 765  RETURN 
  115. 800  ON HL GOTO 810,820,830,840
  116. 810 BA = 6 * RND(1): IF BA >2  THEN SC = 5 + RND(1) *2: RETURN 
  117. 814 SC = 7 +3 * RND(1): RETURN 
  118. 820 BA = 6 * RND(1): IF BA >4  THEN SC = 5 + RND(1) *2: RETURN 
  119. 822 SC = 7 +5 * RND(1): RETURN 
  120. 830 BA = 6 * RND(1): IF BA >5  THEN SC = 11 + RND(1) *4: RETURN 
  121. 832  IF BA <1  THEN SC = 5 + RND(1) *2: RETURN 
  122. 834 SC = 7 +5 * RND(1): RETURN 
  123. 840 BA = 6 * RND(1): IF BA <.5  THEN SC = 6 + RND(1) *2: RETURN 
  124. 842  IF BA >5  THEN SC = 10 + RND(1) *4: RETURN 
  125. 844 SC = 9 + RND(1) *3: RETURN 
  126. 1000  FOR Z = 1 TO PL: IF OG(Z) = 1  THEN  GOTO 1085
  127. 1001 W% =  ABS(X(Z) -H(1)):K% =  ABS(Y(Z) -H(2)):W =  INT(( SQR((W% ^2) +(K% ^2))) *SC)
  128. 1002  IF ST(1) = 0  THEN  GOSUB 2500
  129. 1005  PRINT N$(Z);"'S TURN.": PRINT "YOU ARE "; ABS(W);" YARDS FROM THE PIN."
  130. 1006  COLOR= C(Z): PLOT X(Z),Y(Z)
  131. 1007 WI = 9 * RND(1) +1: GOSUB 300
  132. 1008  POKE 34,23
  133. 1009  INPUT "WOOD, IRON, OR CADDIE (W/I/C)";CL$
  134. 1010  IF CL$ = "C"  AND CS < >1 GOTO 650
  135. 1011 CS = 0: INPUT "WHICH NUMBER?(1-9)";CL
  136. 1015 WO = 0: IF CL$ = "W"  THEN WO = 5 -CL: IF WO <1  THEN WO = 0
  137. 1017 : IF CL >9  OR (ST(Z) >0  AND CL$ = "W"  AND CL = 1)  THEN  PRINT "CAN'T USE THAT CLUB<CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G>!<CTRL-G><CTRL-G><CTRL-G>!": GOTO 1011
  138. 1020  INPUT "DIRECTION?(0-360 DEGREES)";AN: GOSUB 50:AN = (AN *2 *3.1415928)/360:XI =  SIN(AN):YI =  - COS(AN)
  139. 1021  IF AP <0  THEN AP = 0
  140. 1022  IF AP >39  THEN AP = 39
  141. 1025  INPUT "HOW HARD WILL YOU SWING?(0-100%) ";SW$: IF  VAL(SW$) = 0 GOTO 1009
  142. 1026 SW =  VAL(SW$): IF SW >90  THEN SW = 50 +(80 * RND(1) +1)
  143. 1030  POKE 34,20
  144. 1035  GOSUB 90:C = 0: COLOR= C(Z):D = D(Z): FOR I = 1 TO DI:X = X(Z) +XI:Y = Y(Z) +YI: IF X <0  THEN X = 0
  145. 1036  IF X >39  THEN X = 39
  146. 1037  IF Y <0  THEN Y = 0
  147. 1038  IF Y >39  THEN Y = 39
  148. 1039  IF  INT(X) =  INT(X(Z))  AND  INT(Y) =  INT(Y(Z)) GOTO 1046
  149. 1045 D(Z) = D:D =  SCRN( X,Y): IF D = 8  THEN  GOSUB 200
  150. 1046  IF D = 0  THEN RO(Z) = RO(Z) +1
  151. 1050  COLOR= D(Z): PLOT X(Z),Y(Z): COLOR= C(Z): PLOT X,Y:X(Z) = X:Y(Z) = Y: NEXT I
  152. 1056  IF D = 2  THEN  GOSUB 500
  153. 1057 O = 0
  154. 1060 X(Z) = X:Y(Z) = Y:D(Z) = D
  155. 1065 ST(Z) = ST(Z) +1: IF D(Z) = 4  OR D(Z) = 15  THEN  PRINT N$(Z);" IS ON THE GREEN IN ";ST(Z);" STROKES":OG(Z) = 1: GOSUB 2000
  156. 1068  IF D(Z) = 0  THEN  PRINT N$(Z);" IS IN THE ROUGH": GOTO 1070
  157. 1069 RO(Z) = 0
  158. 1070  IF D(Z) = 13  THEN  PRINT N$(Z);" IS IN THE ";: PRINT "<CTRL-G>";: FOR I = 0 TO 14:X =  PEEK( -16336): NEXT : PRINT "SANDTRAP<CTRL-G>!": GOSUB 400
  159. 1085 F = 0: FOR G = 1 TO PL:F = F +OG(G): NEXT : IF F = PL  THEN Z = PL: NEXT Z: GOTO 1500
  160. 1090  GET WB$: NEXT Z: GOTO 1000
  161. 1100  GET WB$: GOTO 1000
  162. 1500  GR : COLOR= 12: FOR I = 0 TO 39: HLIN 0,39 AT I: NEXT : COLOR= 0: FOR I = 20 TO 21: VLIN 20,21 AT I: NEXT : FOR I = 1 TO PL: IF IH(I) < >1  THEN  COLOR= C(I): PLOT X(I),Y(I): NEXT : GOTO 1505
  163. 1501  NEXT 
  164. 1505  FOR Z = 1 TO PL: IF IH(Z) = 1  THEN  NEXT Z: GOTO 1650
  165. 1507  COLOR= C(Z): PLOT X(Z),Y(Z)
  166. 1510  HOME 
  167. 1515  PRINT N$(Z);"'S PUTT.": INPUT "DIRECTION?(0-360 DEGREES)";AN:AN = (AN *2 *3.1415928)/360:XI =  SIN(AN):YI =  - COS(AN)
  168. 1517 A = 1:B = 1:C% = 2 * RND(1): IF C% <1  THEN A =  -1
  169. 1518 C% = 2 * RND(9): IF C% <1  THEN B =  -1
  170. 1520  INPUT "HOW HARD WILL YOU HIT IT?(0-100%)";HP$:HP =  VAL(HP$) *(40/100):K = HP *2/3: IF  VAL(HP$) <1 GOTO 1510
  171. 1521 D(Z) = 4: FOR I = 1 TO HP:X = X(Z) +XI:Y = Y(Z) +YI
  172. 1522  GOSUB 700
  173. 1523  IF X <0  THEN X = 0
  174. 1524  IF X >39  THEN X = 39
  175. 1525  GOSUB 750
  176. 1526  IF Y <0  THEN Y = 0
  177. 1527  IF Y >39  THEN Y = 39
  178. 1528  IF  INT(X) =  INT(X(Z))  AND  INT(Y) =  INT(Y(Z)) GOTO 1535
  179. 1530 D =  SCRN( X,Y): IF D = 0  AND I > = K  THEN IH(Z) = 1: COLOR= D(Z): PLOT X(Z),Y(Z): GOSUB 10000: GOTO 1600
  180. 1535  COLOR= D(Z): PLOT X(Z),Y(Z): COLOR= C(Z): PLOT X,Y:D(Z) = D:X(Z) = X:Y(Z) = Y
  181. 1540 : NEXT I
  182. 1600 ST(Z) = ST(Z) +1: NEXT Z: GOTO 1505
  183. 1650 F = 0: FOR J = 1 TO PL:F = F +IH(J): NEXT : IF F <PL GOTO 1505
  184. 1700  FOR Z = 1 TO PL:SC(Z,GH) = ST(Z):TS(Z) = TS(Z) +ST(Z):ST(Z) = 0:IH(Z) = 0:OG(Z) = 0: NEXT 
  185. 1705  IF GH >9 GOTO 1716
  186. 1710  IF GH <10  THEN  TEXT : HOME : PRINT "HOLE";: FOR I = 1 TO 9: HTAB (8 +(3 *I)): PRINT I;: NEXT : HTAB (38): PRINT "T": PRINT 
  187. 1711  PRINT "PAR";: FOR I = 1 TO 9: HTAB (8 +(3 *I)): PRINT PA(I);: NEXT : HTAB (38): PRINT TP: PRINT 
  188. 1712  FOR I = 1 TO 39: PRINT "-";: NEXT : PRINT : PRINT 
  189. 1713  FOR P = 1 TO PL: PRINT  LEFT$(N$(P),9);: FOR I = 1 TO 9: HTAB (8 +(3 *I)): PRINT SC(P,I);: NEXT I: HTAB (38): PRINT TS(P): PRINT : NEXT P
  190. 1714  IF GH = 9  THEN  PRINT "WOULD YOU LIKE TO PLAY THE BACK NINE?": GET PB$: GOTO 2800
  191. 1715  GET WB$:T1% = 0: NEXT GH
  192. 1716 K = 0: TEXT : HOME : PRINT "HOLE";: FOR I = 10 TO 18:K = K +3: HTAB (8 +K): PRINT I;: NEXT : HTAB (38): PRINT "T": PRINT 
  193. 1717 K = 0: PRINT "PAR";: FOR I = 10 TO 18:K = K +3: HTAB (8 +K): PRINT PA(I);: NEXT : HTAB (38): PRINT TP: PRINT 
  194. 1718  FOR I = 1 TO 39: PRINT "-";: NEXT : PRINT : PRINT 
  195. 1719  FOR P = 1 TO PL:K = 0: PRINT  LEFT$(N$(P),9);: FOR I = 10 TO 18:K = K +3: HTAB (8 +K): PRINT SC(P,I);: NEXT I: HTAB (38): PRINT TS(P): PRINT : NEXT P:K = 0
  196. 1720  GET WB$:T1% = 0: NEXT GH
  197. 1721  END 
  198. 2000 F = 1000 * RND(1):K = (D(Z) *15) -(4 *DI): IF F <K  THEN  PRINT "";N$(Z);"'S SHOT DROPPED IN!<CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G>!":IH(Z) = 1
  199. 2001  COLOR= D(Z): PLOT X(Z),Y(Z)
  200. 2002 F = X(Z) -H(1):K = Y(Z) -H(2):K = K *15:F = F *15:X(Z) = 20 +F:Y(Z) = 20 +K: IF X(Z) >39  THEN X(Z) = 39
  201. 2004  IF X(Z) <0  THEN X(Z) = 5 * RND(1)
  202. 2006  IF Y(Z) >39  THEN Y(Z) = 39
  203. 2008  IF Y(Z) <0  THEN Y(Z) = 5 * RND(1)
  204. 2010  RETURN 
  205. 2125  IF VE(1) = X(Z) +DI:VE(2) = AP: IF  ABS(VE(2) -Y(Z)) > ABS(VE(1) -X(Z) GOTO 2160
  206. 2135  GOSUB 90:C = 0: COLOR= C(Z):D = D(Z):IN = AP -Y(Z):M = X(Z) +DI: IF M >38  THEN M = 38
  207. 2137  IF  ABS(DI) > = 1  THEN IN = IN/ ABS(DI)
  208. 2140  FOR I = X(Z) TO M  STEP V:X = I +V:Y = Y(Z):C = C +IN: IF  ABS(C) >1  THEN Y = Y(Z) +C:C = 0
  209. 2145 D(Z) = D:D =  SCRN( X,Y): IF D = 8  THEN  GOSUB 200
  210. 2146  IF D = 0  THEN RO(Z) = RO(Z) +1
  211. 2150  COLOR= D(Z): PLOT X(Z),Y(Z): COLOR= C(Z): PLOT X,Y:X(Z) = X:Y(Z) = Y: NEXT I
  212. 2155  IF Y < >AP  THEN  COLOR= D: PLOT X,Y: COLOR= C(Z):Y = AP:D =  SCRN( X,Y): PLOT X,Y
  213. 2156  IF D = 2  THEN  GOSUB 500
  214. 2157 O = 0
  215. 2500  IF W <251  THEN PA(GH) = 3
  216. 2510  IF W >250  AND W <471  THEN PA(GH) = 4
  217. 2515  IF W >470  THEN PA(GH) = 5
  218. 2520 TP = TP +PA(GH): RETURN 
  219. 2800  IF PB$ = "Y" GOTO 1715
  220. 2801  END 
  221. 3000  HOME : INPUT "# OF PLAYERS";PL: DIM N$(PL): FOR I = 1 TO PL: INPUT "NAME?";N$(I): INPUT "HANDICAP?(0-30)";HC(I): NEXT 
  222. 3001  DIM PA(18): DIM SC(PL,18): DIM HL(18)
  223. 3002  PRINT : PRINT "(1)  MAGENTA        (9)   ORANGE": PRINT "(3)  PURPLE         (10)  GREY": PRINT "(5)  GREY           (11)  PINK": PRINT "(6)  BLUE           (14)  AQUA"
  224. 3003  PRINT : PRINT : FOR I = 1 TO PL: PRINT "WHAT COLOR BALL WILL ";N$(I);" USE";: INPUT C(I): NEXT 
  225. 3005  PRINT "WHAT SIZE COURSE DO YOU WANT TO PLAY?": PRINT "1) PITCH & PUTT": PRINT "2) SHORT COURSE": PRINT "3) REGULATION": PRINT "4) THE MONSTER": INPUT "ENTER A NUMBER";HL: IF HL >4  THEN HL = 4
  226. 3009  FOR GH = 1 TO 18: GOSUB 4000: GOTO 1000
  227. 4000  GR :I = 12 * RND(1) +1: ON I GOTO 5000,5050,5100,5150,5200,5250,5300,5350,5400,5450,5500,5550
  228. 4010  GOSUB 800: GOSUB 4: GOSUB 8: GOSUB 20: GOSUB 40: GOSUB 25: FOR I = 1 TO PL:X(I) = T1%:Y(I) = T%: NEXT : RETURN 
  229. 4011  END 
  230. 5000  COLOR= 12: FOR I = 7 TO 32: HLIN 0,39 AT I: NEXT :VD% =  RND(1) *2: IF VD% <1  THEN B% = 10 +(11 * RND(1)):T% = 9 + RND(1) *21:G% = 32: GOTO 4010
  231. 5001 B% = 10 +(11 * RND(1)):G% = 1:T% = 9 + RND(1) *21:T1% = 39: GOTO 4010
  232. 5050  COLOR= 12: FOR I = 13 TO 26: HLIN 0,18 AT I: NEXT : FOR I = 10 TO 30: HLIN 19,39 AT I: NEXT :VD% =  RND(1) *2: IF VD% <1  THEN B% = 9 +(17 * RND(1)):T% = 15 + RND(1) *11:G% = 32: GOTO 4010
  233. 5051 B% = 5 + RND(1) *17:G% = 1:T% = 12 + RND(1) *16:T1% = 39: GOTO 4010
  234. 5100 C = 0: COLOR= 12: FOR I = 0 TO 16: VLIN 0,14 AT I: NEXT : FOR I = 17 TO 39:C = C +.49: VLIN C,C +14 AT I: NEXT :VD% =  RND(1) *2: IF VD% <1  THEN B% = 9 +(14 * RND(1)):T% = 2 + RND(1) *12:G% = 32: GOTO 4010
  235. 5105 B% =  RND(1) *12:G% = 1:T1% = 39:T% = 12 + RND(1) *10: GOTO 4010
  236. 5150 B = 0: COLOR= 12: FOR I = 0 TO 39:B = B +1:S = B/3: VLIN S,S +15 AT I: NEXT : FOR I = 28 TO 39: VLIN 13,39 AT I: NEXT :B% = 20 +( RND(1) *10):T% = 2 + RND(1) *12:G% = 32: GOTO 4010
  237. 5200  COLOR= 12:S = 40: FOR I = 0 TO 39:S = S -.33: VLIN S -17,S AT I: NEXT : FOR I = 29 TO 39: VLIN 0,26 AT I: NEXT :B% =  RND(1) *6:T% = 24 + RND(1) *13:G% = 32: GOTO 4010
  238. 5250  COLOR= 12:C = 25: FOR I = 0 TO 25:C = C -.49: VLIN C,C +14 AT I: NEXT : FOR I = 26 TO 39: VLIN 12,26 AT I: NEXT :VD% =  RND(1) *2: IF VD% <1  THEN B% = 4 + RND(1) *21:T% = 27 + RND(1) *10:G% = 32: GOTO 4010
  239. 5255 B% = 17 + RND(1) *13:T1% = 39:T% = 14 + RND(1) *10:G% = 1: GOTO 4010
  240. 5300  COLOR= 12: FOR I = 0 TO 39: VLIN 10,30 AT I: NEXT :B% = 4 + RND(1) *20:T% = 12 + RND(1) *16:VD% =  RND(1) *2: IF VD% <1  THEN G% = 1:T1% = 39: GOTO 4010
  241. 5305 G% = 32: GOTO 4010
  242. 5350  COLOR= 12: FOR I = 0 TO 19: VLIN I,I +20 AT I: NEXT : FOR I = 20 TO 39: VLIN 19,39 AT I: NEXT :VD% =  RND(1) *2: IF VD% <1  THEN B% = 14 + RND(1) *15:G% = 32:T% = 2 + RND(1) *16: GOTO 4010
  243. 5355 B% =  RND(1) *16:G% = 1:T1% = 39:T% = 21 + RND(1) *16: GOTO 4010
  244. 5400  COLOR= 12:S = 40: FOR I = 39 TO 0  STEP  -1:S = S -.33: VLIN S -17,S AT I: NEXT : FOR I = 0 TO 10: VLIN 0,26 AT I: NEXT :B% =  RND(1) *6:T% = 24 + RND(1) *13:G% = 1:T1% = 39: GOTO 4010
  245. 5450 B = 0: COLOR= 12: FOR I = 39 TO 0  STEP  -1:B = B +1:S = B/3: VLIN S,S +15 AT I: NEXT : FOR I = 0 TO 11: VLIN 13,39 AT I: NEXT :B% = 20 +( RND(1) *10):T% = 2 + RND(1) *12:G% = 1:T1% = 39: GOTO 4010
  246. 5500  COLOR= 12:C = 0: FOR I = 0 TO 39:C = C +.49: VLIN C,C +20 AT I: NEXT :VD% =  RND(1) *2: IF VD% <1  THEN G% = 32:T% = 2 + RND(1) *16:B% = 18 + RND(1) *11: GOTO 4010
  247. 5505 T1% = 39:T% = 21 + RND(1) *16:G% = 1:B% =  RND(1) *15: GOTO 4010
  248. 5550  COLOR= 12:C = 39: FOR I = 0 TO 39:C = C -.49: VLIN C -19,C AT I: NEXT :VD% =  RND(1) *2: IF VD% <1  THEN G% = 32:T% = 21 + RND(1) *16:B% =  RND(1) *14: GOTO 4010
  249. 5555 T1% = 39:T% = 2 + RND(1) *16:G% = 1:B% = 18 + RND(1) *11: GOTO 4010
  250. 10000  FOR K = 1 TO 20: FOR J = 1 TO 4:X =  PEEK( -16336): NEXT : FOR F = 1 TO 300  STEP K: NEXT : NEXT : RETURN 
  251. 15000  PRINT "     THERE ARE A FEW THINGS YOU SHOULD  KNOW ABOUT THIS GOLF GAME. IF YOU ARE UNFAMILIAR WITH GOLFING, HERE IS A CHART  OF CLUB/DISTANCE RELATIONSHIPS."
  252. 15001  PRINT 
  253. 15010  VTAB (7): HTAB (3): PRINT "WOODS": PRINT : PRINT "1) 270 YARDS": PRINT "2) 240 YARDS": PRINT "3) 210 YARDS": PRINT "4) 175 YARDS"
  254. 15015  PRINT "5) 150 YARDS": PRINT "ALL OTHERS HIT": PRINT "AS IRONS"
  255. 15017  VTAB (7): HTAB (25): PRINT "IRONS": PRINT : HTAB (22): PRINT "1) 220 YARDS": HTAB (22): PRINT "2) 205 YARDS": HTAB (22): PRINT "3) 190 YARDS": HTAB (22): PRINT "4) 175 YARDS": HTAB (22): PRINT "5) 160 YARDS"
  256. 15020  HTAB (22): PRINT "6) 145 YARDS": HTAB (22): PRINT "7) 130 YARDS": HTAB (22): PRINT "8) 115 YARDS": HTAB (22): PRINT "9) 100 YARDS": HTAB (22): PRINT "AND UNDER"
  257. 15025  VTAB (23): HTAB (8): PRINT "HIT ANY KEY TO CONTINUE": GET WB$: HOME 
  258. 15030  PRINT "     THOSE DISTANCES WILL, OF COURSE,   VARY WITH THE EFFECTS OF WIND AND PLAYERSKILL (HANDICAP)"
  259. 15033  PRINT "     FOR ALL PURPOSES WITHIN THE GAME   THE TOP OF THE SCREEN IS NORTH, AND ITS DIRECTION IS 0 DEGREES WHEN YOU HIT."
  260. 15036  PRINT "     UNTIL YOU GET THE HANG OF THE GAME WE RECOMMEND THAT YOU PLAY AS A SCRATCH,OR 0 HANDICAP GOLFER. THE UPPER REACHES OF THE HANDICAP ARE UNPREDICTABLE AT    BEST."
  261. 15037  VTAB (23): HTAB (8): PRINT "HIT ANY KEY TO CONTINUE": GET WB$: HOME 
  262. 15039  PRINT "     AN ATTEMPT TO OVERSWING A GOLF CLUBWILL CAUSE AN ERRATIC RESULT.  THIS IS  REFLECTED IN THIS GAME.  ";
  263. 15040  PRINT "THE HARDEST YOUCAN SWING A CLUB AND ACHIEVE A PREDICT- ABLE RESULT IS 90%. ANY SWING OVER 90%  WILL EFFECT YOUR SHOT.";
  264. 15041  PRINT " AN OVERSWING MAY RESULT IN A SPECTACULAR SHOT,  BUT IT ISJUST AS LIKELY TO BRING DISASTER."
  265. 15042  PRINT : PRINT "     IF YOU WISH TO CHANGE CLUBS OR DIR-ECTION, ENTER 0 FOR YOUR SWING."
  266. 15050  VTAB (20): HTAB (10): PRINT "GOOD LUCK AND GOOD GOLF": GET WB$: GOTO 3000
  267. 16000  IF G% = 1  THEN B% = 4 + RND(1) *20: RETURN 
  268. 16001 B% =  RND(1) *20 +20: RETURN