TRAIN RACE by Clyde Bish from ZX Computing Feb/Mar.1986 Train yourself to be better with the times tables. Clyde Bish comes to you inter-city from Exeter. A great program with which to practise your tables, with a cute line in graphics. The techniques which make this different from the run of the mill multiplication tester programs are that the answer is given so the multiplier is needed, and the time limit for the player is obtained from a test at the start. Coupled with Clyde's tight programming techniques and use of the Horizon "Big Print" routine, all in all a program from which everyone could learn. The scenario is a race between two trains to the end of the track. A correct response moves the player's train (with appropriate graphic and sound effects). An incorrect one moves the computer's train. It also incorporates a routine for testing the speed at which the child can find the key in question and allows for this in the reaction time thus not penalising the child who is unfamiliar with the keyboard. (There must be a few of them still around!) On LOADing, the title "TRAIN RACE" appears in large letters (courtesy of Sir Uncle's "Horizons" tape) and a train chugs and steams across the screen. The friendly computer then introduces itself, asks the player's name, and explains the idea of the game, giving a demonstration of what to do. After checking the time it takes for the child to locate and press specified keys (this information being used later to determine the delay time during the game) a choice of maximum multipliers from 2 to 9 is offered The game is now ready to begin. The computer displays a sum with the multiplier missing and invites the child to press a number key. If the choice is correct the child's train toots, and chugs on one space. If the response is incorrect the computer's train moves on. The game continues until one of the trains reaches the buffers. If it is the child's train that wins, the machine produces a musical border effect. The score is displayed, along with an invitation to play again with the same or a new player at the same or a different level. Entering the program Firstly, LOAD in the "wall" game from your Horizons tape, then BREAK and NEW the machine. (Don't panic - you only want the machine code and that's safe above RAMTOP). Now type in the listing, but note that the capital letters in quotation marks in lines 3, 4, 5, 100, 110, 560 (not the word "WRONG"), 600 (not the word "CORRECT"), 5000, 5050 and 5080 (not the word "CORRECT" are used-defined graphics and must be entered in the graphics mode. To SAVE the program use: SAVE "trainrace" LINE 9999: SAVE "mc" CODE 32256,300 and verify with: VERIFY "": VERIFY "" CODE If you have a printer attached and want a printout of the child's name, the level, and the score add the line: 1008 LPRINT n\$,m' "right";s,"wrong";t'' Figure 1. Line breakdown Line 3 POKEs Caps Shift followed by the title sequence. During this the graphics are set up so as not to produce a noticeable pause in the running of the program. 4-5 moves the train across the track. 6 asks for the player's name. 100-110 train draw subroutine. 200-230 train position/colour subroutine. 500-720 main program loop. The computer selects the questions, checks the answers, and produces the smoke graphics before calling the subroutines above. 1000-1040 end/play again? routine. 3000-3100 large letters subroutine. 5000-5090 instructions and demonstration. 5100-5160 checks speed of key press and sets level of play. 9000-9050 sets up user-defined graphics. 9999 program autoruns to this line, LOADing in the large letters machine code from the Horizons tape before starting. -- end of file --