                         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.