F.A. Cup Get on the road to Wembley with this football simulation written by GL Maynard. This program was written to provide as realistic a simula- tion as possible of football's biggest annual spectacle. The 124 teams entering the competition are allotted classes from one to six; one being for Division One, two for Division Two, and so on; classes five and six are reserved for amateurs. The 92 football league teams are compulsory for the competition, but the amateur teams may be chosen by the user. [Note that this is different from the current set-up of the League, but this has no impact on the game. The names of the divisions aren't of any importance to this program, but their sizes are: there must be 44 teams in total in the top two divisions. This is still the case for the Premier League (20 teams) and Championship (24 teams).] On the ball The teams, together with their classes, can be typed in once the whole program has been entered into the computer by typing RUN 8000. Lines 8000 to 9140 comprise the team input routine; the user is asked to INPUT the team names, followed by the class of the team. It must be noted that the First Division teams must be typed in first, followed by the Division Two teams, and so on. [This is not quite exact. The names for the First and Second Division may be entered in any order, as may the names for the lower eche- lons. The only things which matter are that the teams from the first two Divisions, who come in later, must come before the teams which are in it from the start, and, as alluded above, that there are exactly 44 of these.] Once all the teams have been typed in, lines 8000 to 9140 can be deleted and the program SAVEd. For this, try typing in SAVE "f.a. cup" LINE 40; this will allow the program to RUN automatically without obliterating the names of all the teams and their respective classes. When the game has been successfully LOADed, the program will stop to allow the user to type RAND, followed by GOTO 50. This ensures that the same draws do not crop up again and again (which tends to happen if RAND is incorporated into the program). [The reason for this is that RANDOMIZE depends on the timer, so if the game always loads in the same time, RND is always seeded identically. The trick is to put in a user-timed wait before the RANDOMIZE. The pro- gram on the TZX has been amended to do exactly that, so there is no reason any more for it to stop and re-GO TO; simply press a key after a random wait. Also, this version doesn't just end and wait for you to accidentally type RUN after you enter all that data; it presents a menu to let you save, verify, play the game, or re-enter all data if you think you've made too many mistakes. There is a sample saved version of the game on the TZX as well, with - if I haven't made any mistakes - the teams from the 2011/2012 season.] Match of the day The rounds are drawn, displayed and played one by one. Li- nes 150 to 210 ensure that First and Second Division teams are excluded from the first two rounds of the competition, while line 245 admits these 44 teams to round three. Lines 450 to 510 make sure that the results of the games reflect the classes of the teams. The draws for each round are made in lines 266 to 300. Lines 550 to 750 comprise the routine which checks for replays, and then plays them. Below is a list of the variables used in the program and a brief explanation of their function. a - Loop variable. a$ - Array; dimensioned (124,14) - Team names of up to 14 characters c - Array; dimensioned (124) - Team classes, one to six. d - Array; dimensioned (124) - If d is equal to zero then the team is out or excluded; if d is equal to one then the team is through or admitted to the next round; and if d is equal to two then the game must be replayed. e - Array; dimensioned (124) - Selected randomly in the draw. Also allows the draw to be made. f - The away team score. dif - The difference in classes of the two teams playing. diff - The difference in classes as read from the DATA in line 475. r - The round number. s - The number of teams in a round. u - Loop variable. t - If the value of t is equal to zero then there are no replays. home - The possible magnitude of the home team's score as read from the DATA in line 475. away - The possible magnitude of the away team's score as read from the DATA in line 475. When the program is in use, the player will have to wait for a few seconds while the draw is made at the beginning of each round. Then, as the user presses Enter, a new score will be displayed on the screen.