[comp.sys.handhelds] Tandy PC-6: BASIC source code "Horse Race"

dgross@polyslo.CalPoly.EDU (Dave Gross) (04/09/90)

1 $="A DAY AT THE RACES"
2 FOR I=1 TO 50
3 A= INT( RAN#*18+1)
4 PRINT CSR(2+A); MID$(A,1);
5 NEXT I: PRINT CSR(3);$;
20 CLEAR : DIM A(3,4):Q=20
30 R=1:$="HJKL"                   ; USE <EXT><SHIFT>{H,J,K,L} FOR THIS!!!
40 REM
60 GOSUB 1000: PRINT
70 PRINT "HORSE ";
80 FOR J=1 TO 4: PRINT J; MID$(J,1);: NEXT J
90 GOSUB 1000: GOSUB 1000
100 PRINT
110 INPUT "How many players ",P
120 IF P>5 THEN 110
130 IF P<1 THEN 110
140 PRINT "All players have $";Q;
150 GOSUB 1000
160 DIM X(2,P),Y$(P)
170 FOR J=1 TO P:X(2,J)=Q: NEXT J
190 G=0
200 FOR J=1 TO 4
210 A(1,J)=0:A(2,J)= RAN#:A(3,J)=1+ INT(10^(1.2-A(2,J)))
220 NEXT J
230 PRINT: PRINT "<RACE";R;">";: GOSUB 1000
250 FOR J=1 TO P
260 PRINT :X(1,J)=0:Y$(J)=""
270 IF X(2,J)=0 THEN 450
280 PRINT "Player";J;" has $";X(2,J);
290 GOSUB 1000
300 PRINT : PRINT "      ";
310 FOR K=1 TO 4
320 PRINT CSRK*5; MID$(K,1);A(3,K);
330 NEXT K
350 PRINT CSR0;"P";J;"->";                   ; USE ARROW KEY
360 A$= KEY$: IF A$="" THEN 360
370 IF A$<"0" THEN 360
380 IF A$>"4" THEN 360
390 N= VAL(A$): IF N=0 THEN 450
400 A$= MID$(N,1):Y$(J)=A$
410 PRINT : PRINT "Player";J;" ";A$;
420 INPUT " money ",X(1,J)
430 IF X(2,J)<X(1,J) THEN 410
440 X(2,J)=X(2,J)-X(1,J)
450 NEXT J
460 PRINT
510 IF G=2 THEN 610
520 FOR J=1 TO 4
530 IF G>=1 THEN 560                         ; USE <SHIFT>O
540 PRINT CSRA(1,J);" ";
550 IF RAN#*(0.9+A(2,J)/10)>0.7 THEN A(1,J)=A(1,J)+1
560 IF A(1,J)=23 THEN G=G+1
570 PRINT CSRA(1,J); MID$(J,1);
580 NEXT J
590 GOTO 510
610 PRINT CSR0;"Winner!";
630 GOSUB 1000
640 FOR J=1 TO 4
650 IF A(1,J)=23 THEN H=A(3,J):A$= MID$(J,1)
660 NEXT J
670 F=0
680 FOR J=1 TO P
690 M=0: IF X(1,J)=0 THEN 730
700 IF Y$(J)=A$ THEN M=X(1,J)*H
710 PRINT
720 PRINT "Player";J;" wins $";M;
730 X(2,J)=X(2,J)+M: GOSUB 1000
740 PRINT : IF X(2,J)=0 THEN F=F+1
750 PRINT "Player";J;" has $";X(2,J);: GOSUB 1000
760 NEXT J
770 PRINT : IF F=P THEN 830
780 PRINT "REPLAY [Y/N] ?";
790 A$= KEY$: IF A$="" THEN 790
800 IF A$="Y" THEN R=R+1: GOTO 190
810 IF A$="N" THEN 830
820 GOTO 790
830 PRINT : END
1000 FOR K=1 TO 85: NEXT K: RETURN

--
<^><v><^><v><^><v><^><v>-  dgross@polyslo.CalPoly.EDU  -<v><^><v><^><v><^><v><^>
Two monks were arguing about a flag.  One said:  "The flag is moving."  The
other said:  "The wind is moving."  The sixth patriarch happened to be passing
by.  He told them:  "Not the wind, not the flag; mind is moving."