1 REM*****BBC VERSION****** 2 REM TOPTRAINER 10 DATA Ant,Bee,Cola,Dash,Emu,Fox,Gus,Harp ,Ibex,Jinn,Kay,Lina,Mack,Nixy,Olly,Pug 20 DIMH$(16),H(16),F(16),P(16),A$(8),A(8), V(2,16),W(2,16),T(16),R(16),S(16),O(16),Q(4,1 6),B(8),D(8) 30 FORI=1TO16:READH$(I):H(I)=RND(10):O(I)= -1:NEXT 40 DATA3,3,3,10,3,17,3,24,8,24,13,24,18,24 ,18,17,18,10,18,3,13,3,8,3 50 FORI=1TO12:READW(1,I),W(2,I):NEXT 60 FORI=1TO12:V(1,I)=6-(4*((I-1)/4-INT((I- 1)/4))):V(2,I)=12-INT((I-1)/4):NEXT 70 MODE7:INPUTTAB(0,10)"How many players ( 1-8) ? "N 80 IFN<1 OR N>8 GOTO70 90 FORI=1TON:PRINT'"Enter name of player " ;I; 100 INPUTA$(I):A$(I)=LEFT$(A$(I),5):A(I)=10 000:NEXT 110 CLS:PRINTTAB(12,2)CHR$141;CHR$&82"Top T rainer"'TAB(12)CHR$141;CHR$&82"Top Trainer"'T AB(12)CHR$&91;STRING$(13,"`") 120 PRINT'"You start with `10000 each. Each of you is an owner/trainer of horses which y ou can buy,sell,train up and enter for ra ces." 130 PRINT'"You make money either by winning races or by betting on the horses - yours o r someone else's." 140 PRINT'"Horses improve when they run wel l but lose value when they don't. It costs `500 to enter a horse for the race." 150 PRINT'"If you go bankrupt,you are out o f the game." 160 GOSUB2490 170 MODE1:VDU28,4,27,35,4,23,255,255,255,25 5,255,255,255,255,255,19,1,4;0; 180 CLS:M=1:W3=0 190 FORI=1TON:P(I)=1 200 LIN=0:COL=0:IFI>4 LIN=1:COL=-4 210 PRINTTAB(W(2,P(1))+I+COL,W(1,P(I))+LIN) CHR$(48+I):NEXT 220 COLOUR0:COLOUR129 230 PRINTTAB(3,2)"START>"CHR$255"CHANCE"CHR $255" SALE "CHR$255"TRAIN " 240 GOSUB2530 250 PRINTTAB(3,7)"TRAIN ";:COLOUR2:COLOUR12 8:PRINT" BANK BALANCE` ";:COLOUR0:COLOUR129:P RINT" SALE " 260 GOSUB2530 270 PRINTTAB(3,12)"CHANCE";TAB(24,12)"CHANC E" 280 GOSUB2530 290 PRINTTAB(3,17)" SALE "CHR$255"TRAIN "CH R$255"CHANCE"CHR$255" SALE " 300 GOSUB2530 310 COLOUR128:FORJ=1TO8:PRINTTAB(10,7+J)SPC (13):NEXT 320 COLOUR3:COLOUR128:FORJ=1TON 330 PRINTTAB(16,7+J)" " 340 PRINTTAB(10,7+J);J" "A$(J); 350 PRINTTAB(18,7+J);A(J);:NEXT 360 COLOUR3:PRINTTAB(0,0);A$(M)"'s go..." 370 THRO=RND(6) 380 GOSUB2440 390 PRINTTAB(15,0);THRO 400 GOSUB2440 410 LIN=0:COL=0:IFM>4 LIN=1:COL=-4 420 COLOUR129:PRINTTAB(W(2,P(M))+M+COL,W(1, P(M))+LIN)" " 430 X=P(M)+THRO 440 IFX>12 X=X-12 450 P(M)=X 460 LIN=0:COL=0:IFM>4 LIN=1:COL=-4 470 PRINTTAB(W(2,P(M))+M+COL,W(1,P(M))+LIN) CHR$(48+M) 480 COLOUR128 490 GOSUB2420 500 IFX=1 GOTO580 510 IFX=2 ORX=6 ORX=8 ORX=11 GOTO1980 520 IFX=3 ORX=5 ORX=7 ORX=10 GOTO2030 530 IFX=4 ORX=9 ORX=12 GOTO2300 540 GOSUB2420 550 M=M+1 560 IFM>N M=1 570 GOTO320 580 CLS:PRINT"Someone landed on START, so i t'stime for a race......" 590 GOSUB2440:GOSUB2420:R=1:RR=0 600 FORI=1TON 610 FORJ=1TO16 620 IFA(I)<500 GOTO700 630 IFO(J)<>I GOTO690 640 CLS:PRINTTAB(0,2)A$(I) 650 PRINTTAB(0,5)H$(J)" cost `";H(J)*50 0:GOSUB1950 660 PRINTTAB(0,8)"Will "H$(J)" race tod ay ?" 670 GOSUB2450 680 IFY$="Y" A(I)=A(I)-500:S(J)=1:R=R+1 :X=INT(H(J)+F(J)/2):GOSUB1790 690 NEXTJ 700 NEXTI 710 GOSUB1700 720 RX=1 730 M=RND(16):IFW3>400 GOTO1360 740 IFS(M)=0 ORS(M)=5 W3=W3+1:GOTO730 750 RR=RR+1:S(M)=5 760 V(1,RR)=6-(4*((RR-1)/4-INT((RR-1)/4))): V(2,RR)=12-INT((RR-1)/4) 770 PRINTTAB(V(2,RR),V(1,RR))CHR$(64+M) 780 Z=Z+H(M)+F(M) 790 P(M)=RR 800 IFR<>RR+1 GOTO730 810 FORJ=1TO16 820 IFS(J)<>5 GOTO860 830 H9=H(J)+F(J):IFH9<=1 H9=1 840 COLOUR2:PRINTTAB(0,0)"ODDS"TAB(0,RX+1 )LEFT$(H$(J),1)"=";INT(Z/H9) 850 RX=RX+1 860 NEXTJ 870 FORI=1TON 880 IFA(I)<=0 GOTO1000 890 PRINTTAB(0,9)A$(I);" BET?(Y/N)" 900 GOSUB2450 910 IFY$="N" GOTO1000 920 PRINT"Horses letter ?"; 930 GOSUB2450:PRINTY$ 940 FORJ=1TO16 950 IFY$=LEFT$(H$(J),1) B(I)=J 960 NEXT 970 INPUT"How much money? "A 980 IFA(I)-A<0 PRINT"Not enough in"'"the kitty!":GOSUB2440:GOTO1000 990 D(I)=A:A(I)=A(I)-A 1000 FORJ=9TO14:PRINTTAB(0,J)SPC(21):NEXT, 1010 GOSUB2420 1020 GOSUB1760 1030 W=0:FORJ=1TO16 1040 JA=P(J) 1050 IFS(J)<>5 GOTO1200 1060 R(JA)=1:IFV(2,JA)>24 R(JA)=2 1070 IFV(1,JA)>16 R(JA)=3 1080 IFR(JA)=3 ANDV(2,JA)<10 R(JA)=4 1090 M=RND(5)-1 1100 IFM>2 GOTO1130 1110 IFM=2 ANDQ(R,JA),JA)>0 Q(R(JA),JA)= Q(R(JA),JA)-1:GOTO1130 1120 GOTO1200 1130 ONR(JA) GOSUB1370,1410,1440,1440 1140 IFM=1 GOTO1200 1150 PRINTTAB(V(2,JA),V(1,JA))" " 1160 V(1,JA)=V(1,JA)+Y 1170 V(2,JA)=V(2,JA)+X 1180 PRINTTAB(V(2,JA),V(1,JA))LEFT$(H$(J ),1) 1190 IFR(JA)=4 ANDV(2,JA)<5 W=J 1200 NEXTJ 1210 IFW=0 GOTO1030 1220 GOSUB2420 1230 PRINTTAB(0,0)"The winner is ";H$(W):E $=H$(W) 1240 R=RR*1000 1250 PRINTTAB(0,1)A$(O(W))" gets `";R" pri ze":A(O(W))=A(O(W))+R 1260 GOSUB2480 1270 GOSUB2420 1280 Z=INT(Z/(H(W)+F(W))):IFZ<1 Z=1 1290 GOSUB1470:PRINTTAB(0,2)E$" won at odd s of ";Z" to 1" 1300 FORK=1TON 1310 IFB(K)=W A(K)=A(K)+B(K)*Z+B(K):PRIN TA$(K)"'s bet wins" 1320 NEXTK 1330 GOSUB2480 1340 R=1:RR=1 1350 FORJ=1TO16:R(J)=1:S(J)=0:P(J)=0:NEXT 1360 CLS:GOTO170 1370 X=1 1380 FORY=1 TO-1 STEP-1:IFFNAT(V(2,JA)+X,V (1,JA)+Y)=32 RETURN 1390 NEXTY 1400 M=1:RETURN 1410 Y=1 1420 FORX=-1TO1:IFFNAT(V(2,JA)+X,V(1,JA)+Y )=32 RETURN 1430 NEXTX:M=1:RETURN 1440 X=-1 1450 FORY=1TO-1 STEP-1:IFFNAT(V(2,JA)+X,V( 1,JA)+Y)=32 RETURN 1460 NEXTY:M=1:RETURN 1470 GOSUB2420 1480 PRINTTAB(0,0)"Form changes as result of race" 1490 FORI=0TO15:PRINTSPC(31):NEXT:PRINTTAB (0,3); 1500 RX=0 1510 FORJ=1TO11 1520 FORI=1TO3 1530 IFFNAT(2+J,15+I)=32 GOTO1600 1540 X=FNAT(2+J,15+I)-64 1550 RX=RX+1 1560 PRINTRX" ";H$(X); 1570 IFJ>=9 PRINT"Will lose points"; 1580 PRINT 1590 F(X)=F(X)+INT((13-J)*.75) 1600 NEXT, 1610 PRINT'''"Any horse not mentioned sh ould have stayed at home." 1620 GOSUB2440:GOSUB2490:CLS 1630 PRINTTAB(0,4)"Horse Owner ` befor e ` now" 1640 FORI=1TO16:IFS(I)<>5 GOTO1680 1650 F(I)=F(I)-4 1660 PRINTTAB(0,I+5)H$(I);TAB(7,I+5)A$ (O(I)) 1670 PRINTTAB(14,I+5);T(I);TAB(22,I+5) ;H(I)*500+F(I)*250 1680 NEXTI 1690 RETURN 1700 CLS:PRINTTAB(8,2)STRING$(19,"T");TA B(8,7)STRING$(15,"T");TAB(0,15)STRING$(24,"T" );TAB(0,19)STRING$(28,"T") 1710 FORI=2TO19:PRINTTAB(27,I)"T":NEXT 1720 FORI=7TO15:PRINTTAB(23,I)"T":NEXT 1730 FORI=3TO6:PRINTTAB(14,I)"T":NEXT 1740 PRINTTAB(4,15)"O"TAB(13,15)" " 1750 RETURN 1760 FORI=0 TO6:PRINTTAB(14,I)" ":NEXT 1770 FORI=1TO16:T(I)=INT(H(I)*500+F(I)*2 50):NEXT 1780 RETURN 1790 IFX<=0 PRINT"This horse is badly of f form":GOTO1930 1800 PRINT"Points available for race..." ;X 1810 FORM=1TO4 1820 IFM=4 PRINT"The 4th quarter must be ";X:Q(M,J)=X:GOTO1910 1830 PRINT"Orders for quarter no.";M;" (0-9)"; 1840 GOSUB2450 1850 IFASC(Y$)<48 ORASC(Y$)>57 GOTO184 0 1860 B=VAL(Y$) 1870 X=X-B 1880 IFX<0 B=B+X:X=0 1890 PRINT;B 1900 Q(M,J)=B 1910 NEXTM 1920 GOTO2480 1930 GOSUB2480 1940 FORM=1TO4:Q(M,J)=0:NEXT:RETURN 1950 PRINT"Current value `":F(J)*250+H(J )*500 1960 IF(F(J)*250+H(J)*500)<=0 PRINT"Whic h is bad news!!" 1970 RETURN 1980 X=RND(6) 1990 X=-250*X 2000 IFRND(1)>.5 X=-X 2010 A(M)=A(M)+X 2020 GOTO540 2030 PRINTTAB(0,0)"Do you wish to sell a horse?":GOSUB2450 2040 IFY$="N" GOTO2210 2050 GOSUB2420 2060 FORI=1TO16 2070 IFO(I)<>M GOTO2200 2080 PRINTTAB(0,0)"Do you wish to sell ";H$(I):GOSUB2450 2090 IFY$="N" GOTO2190 2100 GOSUB2420:BB=INT(H(I)*500+F(I)*25 0):IFBB<0 BB=0 2110 PRINTTAB(0,0)H$(I)" Cost `";H(I)* 500" Now worth `";BB 2120 INPUTTAB(0,1)"Buyer no. (if none type 0)"B 2130 GOSUB2430 2140 IFB=0 GOSUB2420:PRINTTAB(0,0)"OK, I'll take it for `";BB:GOSUB2440 2150 IFB=0 O(I)=-1:A(M)=A(M)+BB:GOTO21 90 2160 IFB>N GOTO2120 2170 INPUTTAB(0,1)"At what price `"A 2180 O(I)=B:A(M)=A(M)+A:A(B)=A(B)-A 2190 GOSUB2420 2200 NEXTI 2210 OFER=RND(15) 2220 IFO(OFER)<>-1 GOTO2210 2230 GOSUB2420 2240 PRINTTAB(0,0)"I'll sell you "H$(OFE R)" for `";H(OFER)*500 2250 GOSUB2450 2260 GOSUB2420 2270 IFY$<>"Y" GOTO540 2280 PRINTTAB(0,0)"OK-Done" 2290 O(OFER)=M:A(M)=A(M)-H(OFER)*500:GOT O540 2300 FORI=1TO16 2310 IFO(I)<>M GOTO2400 2320 IFA(M)<0 PRINTTAB(0,0)"You're BAN KRUPT":GOSUB2440:GOSUB2420:GOTO2400 2330 PRINTTAB(0,0)"How much money to t rain ";H$(I) 2340 INPUTTAB(0,1)"` "A 2350 IFA(M)-A<0 GOSUB2420:PRINTTAB(0,0 )"Not enough cash in the kitty!":GOSUB2440:GO TO2390 2360 X=RND(5)+1 2370 B=INT(X+A/3000):IFB>5 B=5 2380 F(I)=F(I)+B:A(M)=A(M)-A 2390 GOSUB2420 2400 NEXTI 2410 GOTO540 2420 PRINTTAB(0,0)SPC(32) 2430 PRINTTAB(0,1)SPC(32):RETURN 2440 TIME=0:REPEATUNTILTIME>200:RETURN 2450 *FX15 2460 Y$=GET$ 2470 RETURN 2480 PRINTTAB(0,0)"Press any key to cont inue.":GOTO2450 2490 PRINTTAB(0,22)"Press any key." 2500 GOTO2450 2510 PRINT''"cashless............" 2520 RETURN 2530 FORI=1TO3:PRINTCHR$255;CHR$255;CHR$ 255;STRING$(4," "+CHR$255):NEXT:RETURN 2540 C%=POS:D%=VPOS 2550 VDU31,X%,Y% 2560 A%=135:A%=USR&FFF4 AND&FFFF 2570 VDU31,C%,D% 2580 =A% DIV256