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