MAZEMUNCH
By SIMON PHIPPS
AT the beginning of the year 1984 a mad 17-year-old computer
genius (huh!) produced nightmarish mutant creatures by disassembling
the darkest recesses of his 1.2 MOS.
These creatures, obsessed with the task of chasing anything
that moved, soon took over his BBC Micro and placed nasty bugs
in exactly the wrong parts of the program.
The creatures, designated under the code name of Goojgies, ran
riot and after a year of feverish work on school micros and programmable
calculators, this whizz kid created a solution to the problem...
the Munchers!
Operating under manual control, the Munchers were sent out to
clear the bug-ridden logic mazes of Bits - small binary digits
that would cause the terrifying Bad Program error if ever introduced
in the wrong addresses.
To the assistance of our fearless pink heroes came the Nibbles
— powerful bits that when eaten sent the Goojgies into fits of
terror and while active, allowed the Munchers to devour these
unsavoury creatures and temporarily stopped their evil doings.
Soon rogue graphics characters in the form of strawberries,
birds, cherries, keys, bells and plums helped nourish the Munchers.
But after a tough fight the graphics left and now my MOS is completely
free of any problems.
Just to make certain that your BBC or Electron doesn't have
any of these nightmarish fiends, start typing. Or better still,
send for the cassette version - you never know when you will have
trouble with your Goojgies!
In case you didn't recognise it from the foregoing, the game
is quite simply a version of a classic arcade game. For those
of you who have never played it before, here's a short summary.
The object is to move the pink Muncher around the screen, eating
the dots and bonus fruits.
To make things more difficult you are pursued by two evil monsters
who kill on contact.
If one of the flashing Nibbles is eaten (there are four, one
at each corner of the screen) then, for a limited time after,
the Muncher may chase the offending Goojgies around the screen
and extra points are gained for eating them while they are flashing.
Completion of a whole screen gives a new screen with faster
Goojgies and more chances for the Muncher to get indigestion.
Controls: A to move up, Z to move down and cursor left and right
for the appropriate direction.
PROCEDURES:
PROCCHARS: Defines characters 224-255 for game.
PROCSCREEN: Draws the maze and sets up the score display.
PROCINIT: Defines the strings for the fruit, positions of Muncher
and Goojgies.
PROCMEN: Prints out the appropriate number of lines in the central
box.
PROCSCREENCOUNT: Prints out the number of fruit representing the
number of completed screens.
PROCMAN: Moves Muncher around the screen making appropriate checks.
PROCFRUIT: Prints out bonus fruit on the screen.
PROCGHOST: Controls Goojgie movement, incrementing positions and
calling PROCMOVE.
PROCMOVE: Designates direction of Goojgie movement calling PROCX
and PROCY.
PROCX: Controls increment of Gooj- gie's X co-ordinate.
PROCY: Controls increment of Gooj-gie's Y co-ordinate.
PROCPEEK: Checks the screen array to return the value of the character
the Goojgie is to move onto.
PROCDIE: Kills the Muncher and resets Goojgie and Muncher positions.
PROCDED: Displays 'game over' and checks whether present score
is greater than the high score, re-running the program.
PROCREPLACE: Resets Muncher and Goojgie positions to starting
positions.
PROCCOLOURS: Flashes through colours redefining colour 4 for completion
of a screen.
PROCCHECK: Checks to see if Goojgies are eaten by the Muncher.
PROCMUNCH: Eats a Goojgie and replaces it to its starting position.
VARIABLES:
A%(x,y): An array storing the characters at the screen print
positions.
GX%(n): An array storing the Goojgies X co-ordinate values.
GY%(n): An array storing the Goojgies Y co-ordinate values.
OG%(n): An array storing which character was present on the character
cell upon which a Goojgie now stands, allowing the Goojgies to
pass over the dots without blanking them out or placing them where
they shouldn't be.
A$(n): A string array storing the characters that make up the
bonus fruit.
NG%: Number of Goojgies on screen.
LIVES%: Number of lives left.
SCREEN%: Number of screens completed.
PEEK%: Value of character in screen array produced by PROCPEEK.
DGX%: Increment on Goojgies X co-ordinate.
DGY%: Increment on Goojgies Y co-ordinate.
T%: Variable controlling which Goojgie is to be moved during one
game cycle.
A%: Variable returning the INKEY value of the key pressed for
Muncher movement.
P%: Increment on Muncher's X co-ordinate.
Q%: Increment on Muncher's Y co-ordinate.
X%: Muncher's X co-ordinate.
Y%: Muncher's Y co-ordinate.
L%: Character present in error array to which Muncher is about
to move onto.
EAT%: Number of bits (dots) eaten. If EAT%>212 a new screen
is generated.
C%: Variable swing present Muncher character - that is, whether
mouth is open or closed.
SC%: Score obtained by Muncher.
H%: Before the program is RUN set to zero since this holds the
value of the high score. Line 20 checks for a -ve value just in
case this is neglected and H% exists from a previous program.
A,X,Y,C: Variables used to set up the maze when the data on lines
410-660 is read and manipulated.
J%: Variable used in PROCCHECK to see if any Goojgies have been
eaten.
F: Variable used in FOR-NEXT loop in PROCCOLOURS.
J: Variable used as delay loop in PROCCOLOURS.
M: Variables used as delay loop in PROCDED.