Noughts & Crosses - Mark Burton (Your Spectrum-No.4-Page 83)


Remember how frustrating it was getting endless draws playing the
conventional three-by-three classroom game of Noughts and
Crosses? Well, in this program for the 48K Spectrum, you'll be
lucky to get a draw, let alone beat the system.
	When you first run the program, a message pops up across the top
of the screen offering you the option of checking out the 
instructions - always a useful feature for the first time user. The rules are 
very easy to follow; you simply input numbers relating to the row, 
level and column (in that order) and press the Enter key.
	Once you've inwardly digested the instructions, pressing any key
will thrust you into the action. The four playing grids will be 
drawn on-screen, each comprising of four-by-four squares, one on top of
the other, and each with a numbered label to mark its coordinates.
After a pause of about 10 seconds while the computer sets up the
necessary variables and flags, you'll be asked whether or not you
want to start first. Decision made, it's time to begin.
	The principle of the game is as old as the hills, so explanation 
of play will be kept to a minimum. All you have to do is to get four 
'X' characters in a row, be they in a horizontal, vertical or 
diagonal row. But keep an eye on the cunning Speccy to make sure it doesn't
get four 'O' characters in a row first.
	Once a row of four similar characters has been achieved, a
message of congratulations or otherwise will be displayed on-
screen. You'll then be asked if you'd like another crack at it -
remember, revenge is sweet! Should you input too many characters
or make some other silly error, not to worry - the listing is 
well error-trapped.
	And that's it really, no less frustrating than the original - 
just a bit more challenging.


Lines 1-4       Ask if instructions for playing the game are required. If so,
the program jumps to the 'instruction' routine at line 9600.

Lines 5-9       Draw and label the four-by-four-by-four playing grid.

Line 10         Set up the necessary variables and flags. Array A$ holds the
current state of the board.

Lines 20-250    Set up the array F$ to contain the 'move priority' table and
place the current state of play in A$.

Lines 260-310   Check of the user wants to have the first move. If so, the 
program jumps to line 1000; otherwise, it jumps to line 1200.

Lines 400-430   Check if the space you wish to place a character is already
occupied. If it is, a message is printed and the program jumps to the 'input
move' routine at line 1000.

Lines 1000-1080 Get the player's move and check that the space is not already
occupied (via the routine at lines 400-430). The coordinates are input in order
(level, row and column) and are assigned to the variables C, D and E
respectively.

Lines 1090-1130 Place the player's move into the array A$. K$ is the flag used
to check whether it's the player's turn to move or the computer's.

Lines 1140-1195 The player has managed to put one over on the Speccy. You are
given a message of congratulation and asked if you'd like to play another game.
Mood music accompanies this momentous decision.

Lines 1200-1770 Hold the logic which checks whether someone has won the game. If
it's the computer, a message offering you commiserations appears. The program then
jumps to the routine asking if you'd like another game.

Lines 1800-1810 If you manage to hold off the Speccy to a draw, these lines give
you a relevant on-screen message and jump to the routine at line 1150 offering
you another chance for your revenge.

Lines 6000-6800 Hold the logic to instruct the Speccy in the finer arts of 
Noughts and Crosses. You'll find it a mean opponent!

Lines 7000-7435 This is the data controlling the player's move.

Lines 9000-9480 Calculate the plot position for each of the moves made in the
game.

Lines 9500-9520 Plot an 'X' or 'O' in the position calculated by the routine in
lines 9000-9480, depending on the value in K$ (ie. whose turn it is).

Lines 9600-9670 Print the instructions for the first-time user.


------------------------------------------------------------------------------
TYPE: Boardgame 

COMMENT: 


This info file was typed by Jim Grimwood

Downloaded from:
Desert Island Disks -- http://www.image.dk/~frankie/
Maintained by:
Michael Bruhn -- frankie@image.dk

