5 STRSIZ 16 10 ?TAB(31);"HORSERACE" 20 !THIS PROGRAM IS BASED ON THE HORSE RACE GAME IN BASIC COMPUTER GAMES 25 !IT HAS BEEN CONVERTED TO SCREEN DISPLAY AND MONEY BETTING BY 27 !NANCY HERYFORD AND DON PENLAND, SURPRISE VALLEY HIGH SCHOOL 30 ?:?:? 35 RANDOMIZE 50 DIM S(8),D(10),P(10),W$(10),Q(10),V$(8),M(10),Y(10),MNY(10),TP(10),TM(10) 55 ?"WELCOME TO THE SURPRISE VALLEY SAGEBRUSH RACETRACK" 60 ?"DO YOU WANT DIRECTIONS ?" 70 INPUT X$ : IF X$="N" OR X$="NO" THEN 140 80 ?"UP TO 10 MAY PLAY. A TABLE OF ODDS WILL BE PRINTED." 90 ?"YOU MAY BET UP TO 10,000 ON ONE HORSE. DURING THE RACE" 100 ?"THE HORSE WILL BE SHOWN BY IT'S NUMBER." 120 ?"THE HORSES WILL RACE DOWN THE SCREEN." 130 ? 140 ?"HOW MANY PEOPLE WANT TO BET ON THE RACE? " 150 INPUT C !C=NUMBER OF PLAYERS 160 ?"WHEN ? APPEARS, TYPE IN YOUR NAME." 170 FOR A=1 TO C 180 INPUT W$(A) !W$ IS ARRAY FOR PLAYERS NAMES 185 ?W$(A);:INPUT " HOW MUCH DO YOU HAVE TO SPEND ";MNY(A) 187 IF MNY(A)<1 THEN ?"IF YOU DON'T HAVE MORE THAN A DOLLAR YOU "; 188 IF MNY(A)<1 THEN ?"CAN'T PLAY. ":GOTO 185 190 NEXT A !MNY IS MONEY TO SPEND ARRAY 200 ?:E=0 210 ?" HORSE"," ","NUMBER"," ODDS" 215 ?" ====="," ","======"," ====" 220 ? 230 FOR I=1 TO 8:S(I)=0:TP(I)=0:TM(I)=0:NEXT I 235 RN=0:PLC=0 240 R=0 250 FOR A=1 TO 8 260 LET D(A)=INT(10*RND(1)+1) !LOAD ARRAY D WITH RANDOM # BETEWWN 1&10 270 NEXT A 280 FOR A=1 TO 8 290 LET R=R+ D(A) !FIND SUM OF ARRAY D 300 NEXT A 310 V$(1)="AFFIRMED" 320 V$(2)="SEATTLE SLEW" 330 V$(3)="SECRETARIAT" 340 V$(4)="FOOLISH PLEASURE" !LOADS ARRAY WITH HORSES NAMES 350 V$(5)="ALYDAR" 360 V$(6)="JACKMAN KLUGMAN" 370 V$(7)="BOLD FORBES" 380 V$(8)="GENUINE RISK" 390 FOR N=1 TO 8 395 OD=R/D(N) 400 ?V$(N);TAB(29);:?USING "# ####:1",N,OD 410 NEXT N 420 ?:?"IT'S TIME TO PLACE YOUR BETS." 430 FOR J=1 TO C 435 IF W$(J)="" THEN 498 440 ?W$(J); !PRINTS PLAYERS NAME 445 INPUT " WHAT IS THE NUMBER OF THE HORSE YOU WANT ";Q(J) 447 IF Q(J)<1 OR Q(J)>8 THEN ?"CHOOSE ONE OF THE HORSES LISTED.":GOTO 440 450 INPUT "HOW MUCH IS YOUR BET ? ";P(J) 455 IF INT(P(J))>INT(MNY(J)) THEN 495 460 IF P(J)<1 THEN 480 470 IF P(J)>10000 THEN 490 475 GOTO 498 480 ?"!!YOU CHEAPSKATE!!--YOU HAVE TO BET AT LEAST A BUCK!":GOTO 440 490 ?"AT THIS TIME THE TRACK WILL NOT LET YOU BET MORE THAN 10,000":GOTO 440 495 ?W$(J);" YOU CAN'T BET THAT MUCH YOU ONLY HAVE $";MNY(J);"." 496 GOTO 440 498 NEXT J 500 ?TAB(-1,0) 510 ?TAB(1,1);" 1 2 3 4 5 6 7 8" 520 ?TAB(2,1);"*****START******" 525 ?TAB(23,1);"*****FINISH*****" 526 ?TAB(1,30);"THE HORSES ARE IN THE STARTING GATE..." 527 FOR I=1 TO 1000:NEXT I 528 ?CHR$(7);TAB(2,30);"AND THEIR OFF !!!" 530 FOR I=1 TO 8 550 M(I)=I 560 Y(M(I))=INT(100*RND(1)+1) 570 IF Y(M(I))<10 THEN 640 580 S=INT(R/D(I)+.5) 590 IF Y(M(I))<(S+17) THEN 650 600 IF Y(M(I))<(S+37) THEN 660 610 IF Y(M(I))<(S+57) THEN 670 620 IF Y(M(I))<(S+77) THEN 680 630 IF Y(M(I))<(S+92) THEN 690 640 Y(M(I))=7 : GOTO 770 650 Y(M(I))=1 : GOTO 770 660 Y(M(I))=2 : GOTO 770 670 Y(M(I))=3 : GOTO 770 680 Y(M(I))=4 : GOTO 770 690 Y(M(I))=5 : GOTO 770 700 Y(M(I))=6 770 NEXT I 780 M=I 790 FOR I=1 TO 8 800 S(M(I))=S(M(I))+Y(M(I)) 810 NEXT I 830 FOR L=1 TO 8 840 FOR I=1 TO 8-L 850 IF S(M(I))<(S(M(I+1))) THEN 890 860 H=M(I) 865 M(I)=M(I+1) 870 M(I+1)=H 890 NEXT I 900 NEXT L 902 T=S(M(8)) 912 ?TAB(1,1);" " 920 FOR I=1 TO 8 925 IF E=0 THEN 945 930 RN=TP(I):CN=TM(I) 935 IF RN=2 THEN RN=3 940 ?TAB(RN,CN);" "; 945 RN=S(M(I)):CN=M(I)*2-1 947 IF RN>23 THEN RN=23 950 IF S(M(I))>23 THEN 1080 955 IF RN=2 THEN RN=3 960 TP(I)=RN:TM(I)=CN 965 ?TAB(RN,CN);M(I); 970 IF PLC=0 AND RN>12 THEN ?TAB(12,25);"IN THE BACKSTRECH IT'S ";V$(M(I)) 975 IF PLC=0 AND RN>12 THEN ?TAB(13,25);"IN THE LEAD !!":PLC=1 980 FOR K=1 TO 200:NEXT K 985 NEXT I 990 E=1 1080 IF T<23 THEN 530 1081 ?CHR$(7);:FOR I=1 TO 4:?TAB(23,1);" "; 1082 FOR K=1 TO 500:NEXT 1083 ?TAB(23,1);"*****FINISH*****";:FOR K=1 TO 500:NEXT K:NEXT I 1084 ?TAB(21,25);"THE WINNER IS HORSE NO.";M(8);",";V$(M(8)) 1085 ?TAB(23,25);"IN A MOMENT THE COMPLETE RESULTS:" 1086 FOR K=1 TO 3000:NEXT K 1087 ?TAB(-1,0) 1090 ? "THE RACE RESULTS ARE:" 1100 Z9=1 1110 FOR I=8 TO 1 STEP-1 1120 F=M(I) 1130 ? 1140 ?Z9;"PLACE HORSE NO.";F,"AT ";:?USING "####:1",R/D(F) 1145 Z9=Z9+1 1150 NEXT I 1160 FOR J=1 TO C 1164 IF W$(J)<>"" THEN 1170 1166 NEXT J 1168 GOTO 1300 1170 FOR J=1 TO C 1175 IF W$(J)="" THEN 1230 1180 IF Q(J)<>M(8) THEN 1223 1200 N=Q(J) 1210 ?:WN=(R/D(N))*P(J) 1220 ?W$(J);:?USING " WINS $$#########.##",WN;:MNY(J)=MNY(J)+WN 1221 ?USING " AND NOW HAS $$#########.##",MNY(J) 1222 GOTO 1230 1223 MNY(J)=MNY(J)-P(J) 1225 ?W$(J); 1226 ?USING" YOU LOST $$######.## AND NOW HAVE $$#########.##",P(J),MNY(J) 1227 IF MNY(J)<1 THEN ?"YOU HAD BETTER QUIT BEFORE YOU LOSE YOUR SHIRT TOO?" 1228 IF MNY(J)<1 AND MNY(J)>0 THEN ?USING "TAKE YOUR .## AND GO HOME",MNY(J) 1229 IF MNY(J)<1 THEN W$(J)="":Q=0:P=0 1230 NEXT J 1232 FOR I=1 TO 8:IF W$(I)<>"" THEN 1240 1234 NEXT I:GOTO 1300 1235 ? 1240 ? "DO YOU WANT TO PLAY THE PONIES AGAIN?" 1250 INPUT "YES OR NO ";O$ 1260 IF O$="Y" OR O$="YES" THEN 210 1270 GOTO 9999 1300 ?:?"EVERYONE IS BROKE. IF YOU STILL WANT TO PLAY THE HORSES" 1310 ?"YOU WILL HAVE TO GET SOMEMORE MONEY." 1320 ?:INPUT" DO YOU STILL WANT TO PLAY ";O$ 1330 IF O$="Y" OR O$="YES" THEN 140 1340 ?:?:?"COME BACK AGAIN SOMETIME. BYE." 9999 END