MAZE MAN

--------

by Tudor Costigan

from ZX Computing Dec'82/Jan'83



Getting stuck into the maze



From deepest Gloucestershire (Cheltenham, in fact), Tudor Costigan conjures

up a maze, and puts you in control of MAZE-MAN.





The program is easy to understand once you press RUN. You press 'a' to move

up, 'z' to move down (the funny blob in line 320 of the instructions is a z),

'm' to move right and 'n' to move left. The reason for choosing three keys

will become clear when you try the program out.



You get 100 points for an 'o' and 200 points for an exclamation mark, with a

miserable 10 for an asterisk.



Program description



0010-0070: Initialisation of variables and the like. POKE 23692,255 cures the

Spectrum of its habit of asking "Scroll?" every time you blink. The

subroutine at line 4300 draws the design shown at the beginning of the

program.



0090-0185: These print the title and ask for the "skill level", with suitable

error messages. 'ww' is used as a delay loop later in the program.



0190-0210: These define the user graphics, using DATA statements from lines

3700 onwards. In the listing, the graphics are shown as the letter they are,

rather than the little things you'll have flashing around your screen when it

gets underway.



0230-0440: This section of the program provides instructions if they are

needed.



0510-1630: These set up the position of the "ghost" in 'l' and 'k', and then

print out the board. Originally, when Tudor first wrote this, each "character

position" of the board had a different DATA element, but he found this too

slow. Tudor says that the design of the board has been "extensively tested"

at his school, and there have been no complaints! You can make the elements

of the lines different colours, puting the colours directly into the DATA

statements, as described in your manual. The CHR$ 17; CHR$ 8 in line 1420

allows the old attributes of the paper to show through (see your manual,

pages 111 and 114). Lines 1550 to 1610 print the title and scores in varying

degrees of noticeability. Line 1620 prints the amount of man left in the

middle of the board. Line 1630 sets the paper colour to green, the background

colour of the insides of the maze.



Variables used:



n    - high score

n$   - high score

j    - code of object "underneath" ghost

kk   - number of lives left

i    - to count objects eaten this "frame"

b    - score

d$   - stores previous key pressed

v    - loop variable

c$   - general input variable

q,z  - loop variables

d    - loop variable

a$   -  stores data for board printer

s    - loop variable

x,y  - position of maze man

k,l  - position of ghost

ss,sd- contents of proposed position

q$   - score and colour control

aa,bb,cc,dd - length of notes

qa,qb-added to k and l produce old position

