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

  1. 10 POKE53280,6:DIMHF(28),LF(28),DR(28)
  2. 20 PRINT"[147]"TAB(14)"[158]HORSE RACING[146]"
  3. 30 PRINT""TAB(5)"LOADING DATA.......PLEASE WAIT":V=53248
  4. 40 FORI=12288TO12414:READA:POKEI,A:NEXT:POKEV+28,31
  5. 50 POKEV+37,0:POKEV+38,9:FORI=1TO5:POKE2039+I,192:POKEV+38+I,6-I:NEXT
  6. 60 FORI=0TO8STEP2:READA:POKEV+I+1,A:NEXT:FORI=1TO5:READCR(I):NEXT
  7. 70 FORI=1TO26:READHF(I),LF(I),DR(I):NEXT:I=0:CT=0
  8. 80 IFPEEK(49523)=212ANDPEEK(49524)=96THEN120
  9. 90 I=I+1:READA:CT=CT+A:IFA=256THEN110
  10. 100 POKE49151+I,A:GOTO90
  11. 110 IFCT<>45269THENPRINT"[147]ERROR IN READING DATA IN.":END
  12. 120 PRINT"[147]":S=54272:FORL=STOS+24:POKEL,0:NEXT
  13. 130 POKES+24,15:POKES+5,18:POKES+6,245
  14. 140 POKE53280,15:POKE53281,15:PRINT""TAB(14)"HORSE RACING":GOSUB1060
  15. 150 PRINT""TAB(7)"NUMBER OF PLAYERS (1-9)? ";:HR=0
  16. 160 GETZ$:N=VAL(Z$):IF(N<1ORN>9)THEN160
  17. 170 PRINTZ$:FORI=1TO200:NEXT:FORI=1TON:CH(I)=500:NEXT:PRINT"[147]"
  18. 180 PRINTTAB(6)"EACH PLAYER STARTS WITH $500."
  19. 190 PRINTTAB(3)"WHEN A PLAYER LOSES ALL OF HIS/HER"
  20. 200 PRINTTAB(10)"MONEY, THE GAME ENDS."
  21. 210 PRINT"HORSES ARE NUMBERED FROM BOTTOM TO TOP."
  22. 220 FORI=1TO4000:NEXT
  23. 230 HR=HR+1
  24. 240 FORI=1TON:AD(I)=0:AM(I)=0:NEXT
  25. 250 GOSUB530:REM TRACK CONDITION
  26. 260 GOSUB590:REM CALCULATE ODDS
  27. 270 GOSUB630:REM PLACE BETS
  28. 280 GOSUB400:REM DRAW TRACK
  29. 290 POKES+5,17:POKES+6,24:POKES+2,4:POKES+3,5:POKEV+(2*T-2),24+AD(T):SYS49152
  30. 300 FORI=0TO8STEP2:A=PEEK(V+I):IFA=65THENWN=(I+2)/2
  31. 310 NEXT:POKEV+21,2^(WN-1):POKEV+16,0:POKEV+(2*WN-2),0
  32. 320 POKE53280,(PEEK(1664-80*(WN-1)+S))AND15:J=192
  33. 330 FORI=1TO15:PRINT""TAB(8)"THE WINNER IS HORSE #";WN:GOSUB380
  34. 340 IF(I/2)=INT(I/2)THENJ=193
  35. 350 POKEV+(2*WN-2),15+(I+8):POKE2039+WN,J:FORK=1TO150:NEXT
  36. 360 PRINT""TAB(8)"                       ":FORK=1TO150:NEXT:J=192:NEXT
  37. 370 POKEV+21,0:GOTO880
  38. 380 POKES+1,(RND(0)*40)+40:POKES,200:POKES+4,17:POKES+4,16:RETURN
  39. 390 REM DRAW TRACKS
  40. 400 POKE53280,6:POKE53281,13:SP=160
  41. 410 A$="                                        [146]"
  42. 420 PRINT"[147][178][195][178][195][178][195][178][195][178][195][178][195][178][195][178][195][178][195][178][195][178][195][178][195][178][195][178][195][178][195][178][195][178][195][178][195][178][195][178][195]";
  43. 430 PRINT"[194][160][194][160][194][160][194][160][194][160][194][160][194][160][194][160][194][160][194][160][194][160][194][160][194][160][194][160][194][160][194][160][194][160][194][160][194][160][194]";
  44. 440 PRINT"":FORI=1TO5:FORJ=1TO2:PRINTCHR$(CR(I))A$;:NEXTJ,I
  45. 450 PRINT""MID$(A$,1,LEN(A$)-2)
  46. 460 FORI=1TO4:FORJ=4TO34STEP10:PRINTTAB(J)" [146]         ";:NEXTJ:NEXTI
  47. 470 POKE1823,SP:POKE1823+S,1:FORI=1988TO2018STEP10:POKEI,SP:POKEI+S,1:NEXT
  48. 480 PRINT""TAB(9)"[167][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][165]"
  49. 490 PRINTTAB(9)"[167]   HANOVER  DOWNS   [165]"
  50. 500 PRINTTAB(9)"[167][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][165]"
  51. 510 FORI=0TO8STEP2:POKEV+I,24:NEXT:POKEV+21,31:RETURN
  52. 520 REM DETERMINE TRACK CONDITION
  53. 530 T=INT(5*RND(0))+1
  54. 540 TR$(1)="FAST":TR$(2)="GOOD":TR$(3)="SLOW":TR$(4)="MUDDY":TR$(5)="TURF"
  55. 550 AD(T)=3:AM(T)=500
  56. 560 PRINT"[147]"TAB(17)"RACE";HR:A$="TRACK CONDITION: ":TB=LEN(A$+TR$(T))
  57. 570 PRINT""TAB(INT(TB/2)-1);A$+TR$(T):FORD=1TO1000:NEXT:RETURN
  58. 580 REM DETERMINE ODDS
  59. 590 MT=0:FORI=1TO5:M(I)=INT(1000*RND(0))+.1+AM(I):MT=MT+M(I):NEXT
  60. 600 FORI=1TO5:OD(I)=INT(MT/M(I)):IFOD(I)>20THENOD(I)=20
  61. 610 NEXT:RETURN
  62. 620 REM PLACE BETS
  63. 630 PRINT"[147]"TAB(15)"CURRENT ODDS[146]"
  64. 640 PRINTTAB(11)"HORSE#"SPC(7)"ODDS"
  65. 650 FORI=1TO5:PRINTTAB(13)I;TAB(23);OD(I);"TO 1":NEXT:PRINT"":RW=13
  66. 660 FORI=2TO2*NSTEP2:CN=35:IFCH(I/2)<=0THENA1(I/2)=0:GOTO790
  67. 670 PRINT"PLAYER";I/2;"BETS ON HORSE? ";
  68. 680 GETZ$:M=VAL(Z$):IFM<1ORM>5THEN680
  69. 690 PRINTZ$;:H(I/2)=M:PRINTSPC(3)"AMOUNT $ ":A$=""
  70. 700 GETZ$:IFZ$=""THEN700
  71. 710 IFASC(Z$)=13THEN770
  72. 720 IFASC(Z$)=20THEN760
  73. 730 IFASC(Z$)<48ORASC(Z$)>57THEN700
  74. 740 IFCN=39THEN700
  75. 750 A$=A$+Z$:POKE241,RW:PRINT:POKE211,CN:PRINTZ$:CN=CN+1:GOTO700
  76. 760 POKE214,RW:PRINT:POKE211,35:PRINT"    ";:CN=35:A$="":GOTO700
  77. 770 IFVAL(A$)=0ORVAL(A$)>CH(I/2)THEN760
  78. 780 A1(I/2)=VAL(A$):M(H(I/2))=M(H(I/2))+A1(I/2):MT=MT+A1(I/2):RW=RW+1
  79. 790 NEXT
  80. 800 PRINT"[147]"TAB(17)"NEW ODDS[146]"
  81. 810 PRINTTAB(11)"HORSE #"SPC(7)"ODDS"
  82. 820 FORI=1TO5:OD(I)=INT(MT/M(I)):IFOD(I)>20THENOD(I)=20
  83. 830 PRINTTAB(13);I;TAB(23);OD(I)"TO 1":NEXT
  84. 840 PRINT""TAB(12)"PRESS B[146] TO BEGIN"
  85. 850 GETZ$:IFZ$<>"B"THEN850
  86. 860 RETURN
  87. 870 REM DETERMINE WINNER(S)
  88. 880 FORI=1TON
  89. 890 IFH(I)=WNTHENCH(I)=CH(I)+INT(A1(I)*INT(MT/M(WN))):GOTO910
  90. 900 CH(I)=CH(I)-A1(I)
  91. 910 NEXT
  92. 920 POKE53280,15:POKE53281,15:PRINT"[147]"TAB(17)"SUMMARY[146]"
  93. 930 P$="RACES":IFHR=1THENP$="RACE"
  94. 940 PRINT""TAB(14)"AFTER";HR;P$
  95. 950 PRINT""TAB(5)"PLAYER #"TAB(29)"AMOUNT"
  96. 960 PRINTTAB(5)"[163][163][163][163][163][163][163][163]"TAB(29)"[163][163][163][163][163][163]"
  97. 970 FL=1:FORI=1TON:IFCH(I)>0THENI=N:FL=0
  98. 980 NEXTI:FORI=1TON
  99. 990 PRINTTAB(8);I;TAB(29);"$";CH(I):NEXTI
  100. 1000 IFFL=1ORHR=5THEN1020
  101. 1010 FORX=1TO3000:NEXT:GOTO230
  102. 1020 PRINTTAB(15);"GAME OVER":PRINT"DO YOU WISH TO PLAY AGAIN?"
  103. 1030 GETZ$:IFZ$<>"Y"ANDZ$<>"N"THEN1030
  104. 1040 IFZ$="Y"THENPOKE53281,6:RUN
  105. 1050 END
  106. 1060 FORI=1TO26:POKES+1,HF(I):POKES,LF(I):POKES+4,33:FORT=1TO40:NEXT
  107. 1070 POKES+4,32:FORJ=1TODR(I)*3.7:NEXT:NEXT:RETURN
  108. 1080 DATA 0,0,0,0,0,0,0,0
  109. 1090 DATA 0,0,32,0,0,40,0,0
  110. 1100 DATA 32,0,0,168,16,0,170,124
  111. 1110 DATA 0,161,173,0,167,247,0,175
  112. 1120 DATA 195,63,251,192,127,251,192,127
  113. 1130 DATA 251,192,127,202,192,79,3,240
  114. 1140 DATA 15,0,240,15,0,204,51,0
  115. 1150 DATA 51,204,0,51,204,0,0,0
  116. 1160 DATA 0,0,0,0,0,0,0,0
  117. 1170 DATA 0,0,32,0,0,40,16,0
  118. 1180 DATA 32,124,0,169,253,0,170,135
  119. 1190 DATA 0,161,227,0,163,192,0,175
  120. 1200 DATA 192,63,235,192,127,251,192,127
  121. 1210 DATA 251,192,127,251,240,124,250,240
  122. 1220 DATA 124,0,48,60,3,240,15,12
  123. 1230 DATA 192,12,195,192,3,195,0
  124. 1240 DATA 173,156,141,126,110
  125. 1250 DATA 151,159,150,5,152:REM CR(I)
  126. 1260 DATA 18,209,30,25,30,30,31,165,30
  127. 1270 DATA 37,162,45,37,162,15,37,162,30
  128. 1280 DATA 31,165,45,31,165,15,31,165,30
  129. 1290 DATA 25,30,30,31,165,30,25,30,30
  130. 1300 DATA 18,209,100
  131. 1310 DATA 18,209,30,25,30,30,31,165,30
  132. 1320 DATA 37,162,45,37,162,15,37,162,30
  133. 1330 DATA 31,165,45,31,165,15,31,165,30
  134. 1340 DATA 18,209,30,18,209,30,18,209,30,25,30,110
  135. 1350 DATA 169,150,141,15,212,169:REM ML CODE
  136. 1360 DATA 129,141,18,212,32,40
  137. 1370 DATA 192,238,0,208,238,2
  138. 1380 DATA 208,238,4,208,238,6
  139. 1390 DATA 208,238,8,208,32,237
  140. 1400 DATA 192,32,40,193,32,84
  141. 1410 DATA 193,76,10,192,173,16
  142. 1420 DATA 208,41,1,240,10,172
  143. 1430 DATA 0,208,192,65,208,23
  144. 1440 DATA76,81,193,172,0,208
  145. 1450 DATA192,255,208,13,173,16
  146. 1460 DATA208,9,1,141,16,208
  147. 1470 DATA169,0,141,0,208,173
  148. 1480 DATA16,208,41,2,240,10
  149. 1490 DATA172,2,208,192,65,208
  150. 1500 DATA23,76,81,193,172,2
  151. 1510 DATA208,192,255,208,13,173
  152. 1520 DATA16,208,9,2,141,16
  153. 1530 DATA208,169,0,141,2,208
  154. 1540 DATA173,16,208,41,4,240
  155. 1550 DATA10,172,4,208,192,65
  156. 1560 DATA208,23,76,81,193,172
  157. 1570 DATA4,208,192,255,208,13
  158. 1580 DATA173,16,208,9,4,141
  159. 1590 DATA16,208,169,0,141,4
  160. 1600 DATA208,173,16,208,41,8
  161. 1610 DATA240,10,172,6,208,192
  162. 1620 DATA65,208,23,76,81,193
  163. 1630 DATA172,6,208,192,255,208
  164. 1640 DATA13,173,16,208,9,8
  165. 1650 DATA141,16,208,169,0,141
  166. 1660 DATA6,208,173,16,208,41
  167. 1670 DATA16,240,10,172,8,208
  168. 1680 DATA192,65,208,23,76,81
  169. 1690 DATA193,172,8,208,192,255
  170. 1700 DATA208,13,173,16,208,9
  171. 1710 DATA16,141,16,208,169,0
  172. 1720 DATA141,8,208,96,173,27
  173. 1730 DATA212,56,233,5,176,252
  174. 1740 DATA105,6,96,32,226,192
  175. 1750 DATA168,192,1,208,7,32
  176. 1760 DATA40,192,238,0,208,96
  177. 1770 DATA192,2,208,7,32,40
  178. 1780 DATA192,238,2,208,96,192
  179. 1790 DATA3,208,7,32,40,192
  180. 1800 DATA238,4,208,96,192,4
  181. 1810 DATA208,7,32,40,192,238
  182. 1820 DATA6,208,96,192,5,208
  183. 1830 DATA6,32,40,192,238,8
  184. 1840 DATA208,96,162,0,189,248
  185. 1850 DATA7,201,192,208,8,169
  186. 1860 DATA193,157,248,7,76,62
  187. 1870 DATA193,169,192,157,248,7
  188. 1880 DATA32,71,193,232,224,5
  189. 1890 DATA208,228,96,165,162,24
  190. 1900 DATA105,1,197,162,208,252
  191. 1910 DATA96,104,104,96,169,6
  192. 1920 DATA141,1,212,169,10,141
  193. 1930 DATA0,212,169,65,141,4
  194. 1940 DATA212,162,0,160,0,200
  195. 1950 DATA208,253,232,224,50,208
  196. 1960 DATA246,169,64,141,4,212
  197. 1970 DATA96,256
  198.