The second problem is that the other horses have a (cleverly computed) desire to crowd you out of action. They will tend to close up in front of you and even steer straight at you from the side! There's no steward to protect you in this race, so aim for a gap in the field and hope you will be fast enough to avoid trouble. Any horses colliding with each other are flung randomly sideways and backwards, thus losing valuable speed. OK, you're under starter's orders . . .
1 REM *** BBC VERSION *** 2 REM *** NEWMARKET *** 10 REM NEWMARKET...WALWYN 20 REM HORSERACE GAME 30 MODE 7 40 PROCinstructions 50 PROCcharacters 60 70 REM GET SCREEN READY 80 MODE 2 90 *FX9,1 100 *FX10,1 110 REM TURN SCREEN BACKGROUND WHITE 120 VDU 19,0,7,0,0,0 : VDU 19,7,0,0,0 130 VDU 19,9,6,0,0,0 : VDU 19,8,10,0,0,0 140 COLOUR 128+9 : PRINTTAB(0,31) : COLOUR 128 150 FOR I=1 TO 8 : PRINT TAB(0,I*4-2);I : N EXT I 160 COLOUR 128+6 : COLOUR 2 170 REM WINNING POST 180 FOR I= 1 TO 30 : PRINT TAB(18,I);CHR$(1 28) : NEXT I 190 COLOUR 128+9 : COLOUR 7 200 PRINT TAB(0,0);"CONTROLS:1=UP A=DOWN" 210 VDU 5 220 FOR I%=1 TO 8 : PROChorse(I%) : NEXT I% 230 VDU 4 240 COLOUR 128+7 : COLOUR 0 250 REPEAT : PRINT TAB(0,1);SPC(18);CHR$(11 ) 260 INPUT "YOU HORSE 1-8 ",N 270 UNTIL 0<N AND N<9 280 COLOUR 128 : COLOUR 7 :PRINT TAB(0,1);S PC(18) 290 300 REM STAR GAME 310 VDU 5 : C=1 320 REPEAT 330 M=RND(8) : PROCdirection 340 MX=X(M):MY=Y(M) 350 IF UP AND Y(M)<949 THEN Y(M)=Y(M)+12 : X(M)=X(M)-4 360 IF NOT UP AND Y(M)>107 THEN Y(M)=Y(M) -12 : X(M)=X(M)-4 370 IF X(M)<64 THEN X(M)=64 380 IF C=1 AND X(N)>300 THEN VDU19,9,1,0, 0,0 : C=2 390 FOR I=1 TO 8 400 OX=X(I) : OY=Y(I) 410 IF I=M THEN OX=MX:OY=MY 420 J=RND(12)+4 : IF I<>N THEN 440 430 IF C=1 THEN J=J DIV 2 ELSE J=J*2 440 X(I)=X(I)+J : IFX(I)>1024 THEN X(I) =1024 450 IF I=8 THEN 550 460 FOR J=I+1 TO 8 470 IFABS(Y(J)-Y(I))>64 THEN 540 480 IFABS(X(J)-X(I))>128 THEN 540 490 X=X(J):Y=Y(J) 500 IF J=M THEN X=MX:Y=MY 510 PROCbump(J) : PROCerase(X,Y) : PR OChorse(J) 520 IF J=M THEN MX=X(J) : MY=Y(J) 530 PROCbump(I) 540 NEXT J 550 PROCerase(OX,OY) : PROChorse(I) 560 IF I=M THEN MX=X(I) : MY=Y(I) 570 IF X(I)=1024 THEN PROCwin(I) : RUN 580 NEXT I 590 UNTIL FALSE 600 END 610 620 DEF PROCdirection 630 UP=1 640 IF INKEY(-49) THEN UP=TRUE : M=N 650 IF INKEY(-66) THEN UP=FALSE : M=N 660 IF UP=1 THEN UP=(RND(2)=2) 670 IF M=N THEN 690 680 IF X(M)>X(N)-80 AND ABS(Y(M)-Y(N))<240 THEN UP=(Y(N)>Y(M)) 690 ENDPROC 700 710 DEF PROCcharacters 720 DIM X(8),Y(8) 730 VDU 23,128,&55,&AA,&55,&AA,&55,&AA,&55, &AA 740 VDU 23,129,&0,&C1,&6F,&1F,&1F,&7C,&84,& 2 750 VDU 23,130,&CE,&9D,&FF,&F9,&F8,&C,&32,& 1 760 REM POSITION HORSES 770 FOR I=1 TO 8 : X(I)=64 : Y(I)=1060-120* I 780 NEXT I 790 ENDPROC 800 810 DEF PROChorse(I) 820 MOVE X(I),Y(I) : GCOL 0,I : VDU 129,130 830 SOUND 0,-8,4,1 840 ENDPROC 850 860 DEF PROCerase(X,Y) 870 MOVE X,Y : GCOL 0,0 : VDU 129,130 880 ENDPROC 890 900 DEF PROCbump(I) 910 REM HORSE NUMBER 'I' IN COLLISION 920 X(I)=X(I)-RND(20)-20 : Y(I)=Y(I)+RND(65 )-32 930 IF X(I)<64 THEN X(I)=64 940 IF Y(I)<96 THEN Y(I)=96 950 IF Y(I)>960 THEN Y(I)=960 960 ENDPROC 970 980 DEF PROCwin(I) 990 VDU 4 1000 COLOUR 128+9 : COLOUR 7 1010 PRINT TAB(0,0);SPC(20) 1020 IF I=N THEN 1050 1030 PRINT TAB(0,0);"WINNER = HORSE ";I 1040 GOTO 1060 1050 PRINT TAB(0,0);"YOU WON! WELL DONE" 1060 VDU 5 1070 FOR I%=1 TO 40 1080 PROCerase(X(I),Y(I)) 1090 FOR J%=1 TO 300 : NEXT J% 1100 PROChorse(I) 1110 FOR J%=1 TO 300 : NEXT J% 1120 NEXT I% 1130 PRINT TAB(0,0);" PRESS ANY KEY " 1140 *FX15,1 1150 A$=GET$ 1160 ENDPROC 1170 1180 DEF PROCinstructions 1190 PRINT SPC(13);CHR$(129);"NEWMARKET" 1200 PRINT'"IN THIS HORSE-RACE GAME, YOU RID E" 1210 PRINT"ANY HORSE FROM 1-8." 1220 PRINT"YOU HAVE TO STEER A PATH AVOIDING THE" 1230 PRINT"OTHER HORSES SINCE ANY HORSE IN A " 1240 PRINT"COLLISION WITH ANOTHER WILL BE BL OCKED" 1250 PRINT"AND FORCED SIDEWAYS AND BACKWARDS ." 1260 PRINT'"'EASY', YOU MIGHT SAY..." 1270 PRINTCHR$(130);"BUT";CHR$(135);"YOUR H ORSE IS A VERY SLOW STARTER" 1280 PRINT"AND WILL ONLY RUN AT SPEED AFTER THE" 1290 PRINT"SCREEN BORDER TURNS 'RED'. THIS O CCURS" 1300 PRINT"WHEN YOU HAVE RIDDEN A THIRD OF THE WAY" 1310 PRINT"DOWN THE TRACK SO YOU WILL ALWAYS HAVE" 1320 PRINT"OTHER HORSES IN FRONT OF YOU." 1330 PRINT"TO MAKE IT HARDER STILL, ALL HORS ES" 1340 PRINT"WITHIN TWENTY FEET OF YOU WILL AT TEMPT" 1350 PRINT"TO BLOCK YOUR PATH OR CRASH INTO YOU!" 1360 PRINT'"PUSH LETTER 'A' TO MOVE DOWN THE SCREEN" 1370 PRINT"PUSH NUMBER '1' TO MOVE UP THE SC REEN." 1380 PRINT"BEWARE: ANY COURSE ALTERATION WIL L" 1390 PRINT"ALSO REDUCE YOUR SPEED!" 1400 PRINTCHR$(129);"GOOD LUCK!. PRESS ANY KEY TO START."; 1410 *FX15,1 1420 A$=GET$ 1430 ENDPROC