home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C64Games / C64-GOLF (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  7.5 KB  |  294 lines

  1. 1 PRINTCHR$(147):POKE53280,0:POKE53281,0:PRINT""
  2. 2 PRINT"[209][209][209][209]  [209][209][209][209] [209]  [209]    [209][209][209][209] [209][209][209][209] [209]    [209][209][209][209]"
  3. 3 PRINT"[209]     [209]    [209]  [209]    [209]    [209]  [209] [209]    [209]   "
  4. 4 PRINT"[209]     [209][209][209][209] [209][209][209][209]    [209] [209][209] [209]  [209] [209]    [209][209][209][209]"
  5. 5 PRINT"[209]     [209]  [209]    [209]    [209]  [209] [209]  [209] [209]    [209]   "
  6. 6 PRINT"[209][209][209][209]  [209][209][209][209]    [209]    [209][209][209][209] [209][209][209][209] [209][209][209][209] [209]   "
  7. 7 PRINTSPC(12)"BY DAVE PALAZZO"
  8. 9 PRINTSPC(7)"PLEASE WAIT 15 SECONDS..."
  9. 10 POKE52,48:POKE56,48:CLR
  10. 20 POKE56334,PEEK(56334)AND254
  11. 30 POKE1,PEEK(1)AND251
  12. 40 FORI=0TO511:POKEI+12288,PEEK(I+53248):NEXT
  13. 50 POKE1,PEEK(1)OR4
  14. 60 POKE56334,PEEK(56334)OR1
  15. 70 POKE53272,(PEEK(53272)AND240)+12
  16. 80 FORI=12288TO12295:READA:POKEI,A:NEXTI
  17. 90 DATA24,24,60,126,126,255,24,60
  18. 100 FORJ=12528TO12535:READB:POKEJ,B:NEXTJ
  19. 105 DATA48,56,60,60,32,32,32,32
  20. 110 FORK=12768TO12775:READC:POKEK,C:NEXTK
  21. 115 DATA36,144,34,136,33,68,17,136
  22. 120 FORL=12784TO12791:READD:POKEL,D:NEXTL
  23. 125 DATA24,24,0,24,24,0,24,24
  24. 130 FORM=12504TO12511:READE:POKEM,E:NEXTM
  25. 135 DATA255,255,255,255,255,255,255,255
  26. 140 FORN=12520TO12527:READF:POKEN,F:NEXTN
  27. 145 DATA0,0,0,195,195,0,0,0
  28. 150 POKE2040,13:POKE2041,14:POKE2042,15
  29. 151 FORZX=832TO894:READAZ:POKEZX,AZ:NEXTZX
  30. 152 FORZY=896TO958:READAY:POKEZY,AY:NEXTZY
  31. 153 FORZZ=960TO1022:READAX:POKEZZ,AX:NEXTZZ
  32. 154 V=53248:POKEV+21,0:POKEV+39,1:POKEV+40,1:POKEV+41,1
  33. 155 POKEV+23,7:POKEV+29,7
  34. 158 POKEV,24:POKEV+1,100
  35. 159 POKEV+2,24:POKEV+3,100
  36. 160 POKEV+4,24:POKEV+5,100
  37. 161 DATA48,0,0,60,0,0,56,0,0,56,0,0,56,0,0,112,0,0,120,0,0,124,0,0,126,0,0,119
  38. 162 DATA0,0,115,0,0,48,128,0,48,64,0,48,32,0,24,16,0,24,8,0,48,4,0,48,2,0,48,1
  39. 163 DATA0,60,0,224,62,0,96
  40. 164 DATA48,0,0,60,0,0,120,0,0,184,0,0,184,0,0,240,0,0,248,0,0,120,0,0,120,0,0
  41. 165 DATA112,0,0,112,0,0,48,0,0,56,0,0,56,0,0,60,0,0,60,0,0,60,0,0,56,0,0,48,0,0
  42. 166 DATA60,0,0,62,0,64
  43. 167 DATA0,0,0,56,0,0,56,0,0,110,0,0,238,0,0,174,0,0,238,0,0,252,0,0,184,0,0,184
  44. 168 DATA0,0,184,0,0,184,0,0,248,0,0,56,0,0,60,0,0,60,0,0,62,0,0,54,0,0,54,0,0,54
  45. 169 DATA0,0,55,0,0
  46. 200 PRINTCHR$(8):PRINT"[147]":POKE53280,1:POKE53281,1
  47. 201 PRINT"C64 GOLF":H=0:TS=0:C=1
  48. 202 PRINT"BY DAVE PALAZZO."
  49. 203 PRINT"[129]CHOOSE OPTIONS:"
  50. 204 PRINT"1. ROUND OF GOLF"
  51. 205 PRINT"    (NO OPPONENTS)"
  52. 206 PRINT"[144]2. TOURNAMENT"
  53. 207 PRINT"   (VS 5 PLAYERS)"
  54. 208 PRINT"[159]3. INSTRUCTIONS"
  55. 209 PRINT"[156]4. QUIT"
  56. 210 PRINT"[158]SELECT OPTION."
  57. 211 GETT$:IFT$=""THEN211
  58. 212 IFT$="4"THENEND
  59. 213 IFT$="1"THENPOKE53280,13:POKE53281,13:GOSUB500:GOTO600
  60. 214 IFT$="2"THENTN=1:GOSUB1050:T$="1":GOTO213
  61. 215 IFT$="3"THEN300
  62. 216 GOTO211
  63. 300 PRINT"[147]INSTRUCTIONS FOR C64 GOLF"
  64. 301 PRINT"FROM THE MAIN MENU YOU CAN EITHER PLAY"
  65. 302 PRINT"IN A TOURNAMENT,OR JUST A ROUND OF GOLF."
  66. 303 PRINT"[145]ALL HOLES AND HAZARDS ARE RANDOMLY MADE"
  67. 304 PRINT"[145]UP, SO NO GAME IS EVER THE SAME."
  68. 305 PRINT"WHEN YOU TEE OFF, IT TELLS YOU THE BALL"
  69. 306 PRINT"DISTANCE FROM THE HOLE. FROM THE PROMPT"
  70. 307 PRINT"'W/I' YOU CAN SELECT 'W'OOD OR 'I'RON."
  71. 308 PRINT"IF YOU WANT TO CHECK YARDAGE, WHEN THE"
  72. 309 PRINT"PROMPT 'W/I' IS SHOWING, PRESS 'C'."
  73. 310 PRINT"TO SWITH FROM KIND OF CLUBS PRESS '_'"
  74. 311 PRINT"PUTTING IS AUTOMATICALLY TRIED WHEN THE"
  75. 312 PRINT"BALL IS INSIDE 20 YARDS. YOUR ODDS OF"
  76. 313 PRINT"SINKING IT GETS BETTER ON HOW CLOSE IT"
  77. 314 PRINT"IS. IF YOU LAND IN WATER OR GO OUT-OF-"
  78. 315 PRINT"BOUNDS, YOU GET A PENALTY STROKE ALONG"
  79. 316 PRINT"WITH THE STROKE IT TOOK TO GET THERE."
  80. 317 PRINT"IN TOURNAMENTS, AFTER COMPLETING A HOLE"
  81. 318 PRINT"YOU SEE THE LEADERBOARD WITH YOU AND"
  82. 319 PRINT"5 PRO'S. AT THE END OF THE GAME, YOU"
  83. 320 PRINT"HAVE THE CHOICE TO CONTINUE. Y=PLAY"
  84. 321 PRINT"AGAIN, N=EXIT TO BASIC."
  85. 322 PRINT"PLEASE E-MAIL ME COMMENTS ON THIS GAME."
  86. 323 PRINT"                              DAVEP89"
  87. 324 PRINT"PRESS ANY KEY"
  88. 325 GETT$:IFT$=""THEN325
  89. 326 GOTO200
  90. 500 PRINT"[147]":POKEV+21,0
  91. 501 PRINT"DISTANCES FOR CLUBS."
  92. 502 PRINT"[144]WOODS"
  93. 503 PRINT"DRIVER    280-300 YDS"
  94. 504 PRINT"2 WOOD    260-280 YDS"
  95. 505 PRINT"3 WOOD    240-260 YDS"
  96. 506 PRINT"5 WOOD    200-220 YDS"
  97. 507 PRINT"[144]IRONS"
  98. 508 PRINT"1 IRON    235-250 YDS"
  99. 509 PRINT"2 IRON    220-235 YDS"
  100. 510 PRINT"3 IRON    205-220 YDS"
  101. 511 PRINT"4 IRON    190-205 YDS"
  102. 512 PRINT"5 IRON    175-190 YDS"
  103. 513 PRINT"6 IRON    160-175 YDS"
  104. 514 PRINT"7 IRON    145-160 YDS"
  105. 515 PRINT"8 IRON    130-145 YDS"
  106. 516 PRINT"9 IRON    115-130 YDS"
  107. 517 PRINT"PW         15-115 YDS"
  108. 518 PRINT"BEING IN ROUGH TAKES 30 YDS OFF CLUB."
  109. 519 PRINT"ALSO, YOU CAN'T USE WOODS IN ROUGH."
  110. 520 PRINT"YOU CAN SEE THIS BY PRESSING 'C'"
  111. 521 PRINT"PRESS ANY KEY"
  112. 522 GETT$:IFT$=""THEN522
  113. 523 RETURN
  114. 600 H=H+1:GOTO3000
  115. 601 PRINT"[147][144]HOLE"H;
  116. 602 D=INT(Y/28)
  117. 603 IFSR=0THENBD=Y
  118. 604 IFC=1THENC=0:GOTO608
  119. 605 GOTO655
  120. 608 PRINT"YDS"Y" PAR"P" STR"SR" TOT"TS
  121. 609 PRINT""SPC(20)"^[157]";
  122. 610 FORA=1TOD:PRINT"";:NEXTA
  123. 611 PRINT"[145]][157][157][157][157][157][157][157][157]";
  124. 612 IFL=1THENPRINT"";:GOTO616
  125. 613 IFL=2THENPRINT"";:GOTO618
  126. 614 IFL=3THENPRINT"";:GOTO620
  127. 615 IFL=4THENPRINT"";:GOTO625
  128. 616 FORA=1TOD:PRINT"[[[[[145][157][157][157][157]";:NEXTA
  129. 617 GOTO630
  130. 618 FORA=1TOD:PRINT"@@@@[145][157][157][157][157]";:NEXTA
  131. 619 GOTO630
  132. 620 FORA=1TOD:PRINT"<<<<[145][157][157][157][157]";:NEXTA
  133. 621 GOTO630
  134. 625 FORA=1TOD:PRINT">>>>[145][157][157][157][157]";:NEXTA
  135. 626 GOTO630
  136. 630 PRINT"";
  137. 631 IFR=1THENPRINT"";:GOTO635
  138. 632 IFR=2THENPRINT"";:GOTO640
  139. 633 IFR=3THENPRINT"";:GOTO645
  140. 634 IFR=4THENPRINT"";:GOTO650
  141. 635 FORA=1TOD:PRINT"[[[[[157][157][157][157]";:NEXTA
  142. 636 GOTO655
  143. 640 FORA=1TOD:PRINT"@@@@[157][157][157][157]";:NEXTA
  144. 641 GOTO655
  145. 645 FORA=1TOD:PRINT"<<<<[157][157][157][157]";:NEXTA
  146. 646 GOTO655
  147. 650 FORA=1TOD:PRINT">>>>[157][157][157][157]";:NEXTA
  148. 651 GOTO655
  149. 655 PRINT"[144]BALL DISTANCE"BD
  150. 656 IFBD<21THEN695
  151. 657 PRINT"W/I"
  152. 660 GETT$:IFT$=""THEN660
  153. 661 IFT$="W"ANDRG=1THENPRINT"ON ROUGH[145][157][157][157][157][157][157][157][157]";:GOTO657
  154. 662 IFT$="W"THENPRINT"D/2/3/5":GOTO670
  155. 664 IFT$="I"THENPRINT"1-9/W  ":GOTO680
  156. 665 IFT$="C"THENC=1:GOSUB500:GOTO601
  157. 666 IFT$="Q"THENEND
  158. 670 GETT$:IFT$=""THEN670
  159. 671 IFT$="D"ANDBD<>YTHEN670
  160. 672 IFT$="D"THEN700
  161. 673 IFT$="2"ANDBD<>YTHEN670
  162. 674 IFT$="2"THEN710
  163. 675 IFT$="3"THEN720
  164. 676 IFT$="5"THEN730
  165. 677 IFT$="_"THENPRINT"[145]";:GOTO657
  166. 678 GOTO670
  167. 680 GETT$:IFT$=""THEN680
  168. 681 IFT$="1"THEN740
  169. 682 IFT$="2"THEN750
  170. 683 IFT$="3"THEN760
  171. 684 IFT$="4"THEN770
  172. 685 IFT$="5"THEN780
  173. 686 IFT$="6"THEN790
  174. 687 IFT$="7"THEN800
  175. 688 IFT$="8"THEN810
  176. 689 IFT$="9"THEN820
  177. 690 IFT$="W"THEN830
  178. 691 IFT$="_"THENPRINT"[145]";:GOTO657
  179. 692 GOTO680
  180. 695 GOTO860
  181. 696 IFCH<>6THENPRINT"SUNK PUTT.":SR=SR+1:TS=TS+1:GOTO698
  182. 697 IFCH=6THENPRINT"MISSED. TAPPED IN.":SR=SR+2:TS=TS+2:GOTO698
  183. 698 IFH+1=19THEN2000
  184. 699 SR=0:GOSUB1000:GOSUB5000:GOTO600
  185. 700 DI=INT(RND(1)*20)+280:GOTO701
  186. 701 GOSUB6000:PRINT"[145]DRIVE OF"DI" YARDS"
  187. 702 PB=INT(RND(1)*5)+1
  188. 703 IFRG=1THENRG=0
  189. 704 GOTO850
  190. 705 BD=BD-DI
  191. 706 IFBD=0THENPRINT"DRIVE ROLLED IN.":TS=TS+1:SR=SR+1:GOTO698
  192. 707 IFSGN(BD)=-1THENBD=ABS(BD)
  193. 708 SR=SR+1:TS=TS+1
  194. 709 C=1:GOSUB1000:GOTO601
  195. 710 DI=INT(RND(1)*20)+260:GOTO701
  196. 720 DI=INT(RND(1)*20)+240:GOTO701
  197. 730 DI=INT(RND(1)*20)+200:GOTO701
  198. 740 DI=INT(RND(1)*15)+235
  199. 741 IFRG=1THENDI=DI-30:GOTO701
  200. 742 GOTO701
  201. 750 DI=INT(RND(1)*15)+220
  202. 751 IFRG=1THENDI=DI-30:GOTO701
  203. 752 GOTO701
  204. 760 DI=INT(RND(1)*15)+205
  205. 761 IFRG=1THENDI=DI-30:GOTO701
  206. 762 GOTO701
  207. 770 DI=INT(RND(1)*15)+190
  208. 771 IFRG=1THENDI=DI-30:GOTO701
  209. 772 GOTO701
  210. 780 DI=INT(RND(1)*15)+175
  211. 781 IFRG=1THENDI=DI-30:GOTO701
  212. 782 GOTO701
  213. 790 DI=INT(RND(1)*15)+160
  214. 791 IFRG=1THENDI=DI-30:GOTO701
  215. 792 GOTO701
  216. 800 DI=INT(RND(1)*15)+145
  217. 801 IFRG=1THENDI=DI-30:GOTO701
  218. 802 GOTO701
  219. 810 DI=INT(RND(1)*15)+130
  220. 811 IFRG=1THENDI=DI-30:GOTO701
  221. 812 GOTO701
  222. 820 DI=INT(RND(1)*15)+115
  223. 821 IFRG=1THENDI=DI-30:GOTO701
  224. 822 GOTO701
  225. 830 PRINT"[145]POWER? 1-9"
  226. 831 GETPW:IFPW<1THEN831
  227. 832 DI=INT(RND(1)*11)+(PW*11)
  228. 833 IFRG=1THENDI=DI-30:GOTO701
  229. 834 GOTO701
  230. 850 IFBD<165THEN705
  231. 851 IFPB=1ANDL=1THENSR=SR+1:TS=TS+1:PRINT"PENALTY-IN LEFT HAZARD":GOTO705
  232. 852 IFPB=1ANDL=4THENSR=SR+1:TS=TS+1:PRINT"PENALTY-IN LEFT HAZARD":GOTO705
  233. 853 IFPB=5ANDR=1THENSR=SR+1:TS=TS+1:PRINT"PENALTY-IN RIGHT HAZARD":GOTO705
  234. 854 IFPB=5ANDR=4THENSR=SR+1:TS=TS+1:PRINT"PENALTY-IN RIGHT HAZARD":GOTO705
  235. 855 IFPB=1ANDL=3THENPRINT"IN ROUGH":RG=1:GOTO705
  236. 856 IFPB=5ANDR=3THENPRINT"IN ROUGH":RG=1:GOTO705
  237. 859 GOTO705
  238. 860 IFBD<6THENCH=1:GOTO696
  239. 861 IFBD<11THENCH=INT(RND(1)*6)+1:GOTO696
  240. 862 IFBD<16THENCH=INT(RND(1)*3)+3:GOTO696
  241. 863 IFBD<21THENCH=INT(RND(1)*2)+4:GOTO696
  242. 1000 FORX=1TO1000:NEXTX
  243. 1001 RETURN
  244. 1050 INPUT"[144]NAME (MAX 11 CHAR)";NM$
  245. 1051 IFLEN(GS$)>11THENPRINT"[145]";:GOTO1050
  246. 1052 RETURN
  247. 2000 PRINT"[147]PAR WAS"TP".":POKEV+21,0
  248. 2001 PRINT"YOU FINISHED WITH A"TS
  249. 2002 PRINT"OR";
  250. 2003 SC=TS-TP
  251. 2004 IFSGN(SC)=-1THENPRINTSC" UNDER PAR":GOTO2007
  252. 2005 IFSGN(SC)=0THENPRINT" A EVEN"SC:GOTO2007
  253. 2006 IFSGN(SC)=1THENPRINTSC" OVER PAR":GOTO2007
  254. 2007 GOSUB1000:GOSUB1000:GOSUB5000
  255. 2008 Z$="Y":INPUT"PLAY AGAIN? (Y/N)";Z$
  256. 2009 IFZ$="Y"THENRUN
  257. 2010 IFZ$<>"N"THENPRINT"[145]";:GOTO2008
  258. 2011 END
  259. 3000 Y=INT(RND(1)*466)+150
  260. 3001 IFY<225THENP=2:GOTO3005
  261. 3002 IFY<400THENP=3:GOTO3005
  262. 3003 IFY<530THENP=4:GOTO3005
  263. 3004 IFY<617THENP=5:GOTO3005
  264. 3005 L=INT(RND(1)*4)+1
  265. 3006 R=INT(RND(1)*4)+1
  266. 3007 TP=TP+P
  267. 3008 C=1:RG=0:GOTO601
  268. 4000 PRINTTP-TS:GOTO609
  269. 5000 IFTN<>1THENRETURN
  270. 5001 PRINT"[147]":C=1:FP=TP
  271. 5002 PRINT"[144]LEADERBOARD.":POKEV+21,0
  272. 5003 PRINT:GS=TS-TP
  273. 5004 PRINTNM$"  "GS
  274. 5005 PRINT"JEFF SLUMAN  ";
  275. 5006 JS=INT(RND(1)*(TP/H)):PRINT-ABS(JS)
  276. 5007 PRINT"TOM WATSON   ";
  277. 5008 TW=INT(RND(1)*(TP/H)):PRINT-ABS(TW)
  278. 5009 PRINT"GREG NORMAN  ";
  279. 5010 GN=INT(RND(1)*(TP/H)):PRINT-ABS(GN)
  280. 5011 PRINT"LEE TREVINO  ";
  281. 5012 LT=INT(RND(1)*(TP/H)):PRINT-ABS(LT)
  282. 5013 GETT$:IFT$=""THEN5013
  283. 5014 RETURN
  284. 6000 POKEV+21,1
  285. 6001 FORQQ=1TO105:NEXTQQ
  286. 6002 POKEV+21,2
  287. 6003 FORQQ=1TO105:NEXTQQ
  288. 6004 POKEV+21,1
  289. 6005 FORQQ=1TO45:NEXTQQ
  290. 6006 POKEV+21,4
  291. 6007 FORQQ=1TO170:NEXTQQ
  292. 6008 POKEV+21,1
  293. 6009 RETURN
  294.