
LEPRECHAUN'S GOLD
by Clyde Bish
from ZX Computing Jun/Jul.1983

An amazing game for your 16K Spectrum, courtesy of Clyde Bish of Exeter.


This 3D maze game for the Spectrum does not have dinosaurs
charging up on you but it does have a Green Goblin. He
follows you about, sending an indecisive player back to the
start, and giving you a pot of gold if you get to the
centre!


Interesting Points

1. No maze plan is shown - There are two reasons for this:
   a) I think it makes the game too easy; and b) the
   computer does not have a clue about the shape of the maze
   until play begins! - it all depends on the values of RND
   in line 210 and the moves a player makes. The maze does,
   however, once set, remain constant throughout the game
   (strings x$ and y$ ensure this).
2. The program does not use machine code - I feel that the
   speed of the Spectrum's PLOT and DRAW commands are fast
   enough. And, by avoiding machine code, the structure of
   the program is more easily seen by those who like to
   dissect programs.
3. The problem of 16K being about 9K! - This has had to
   result in a compromise: a) The elements of the maze
   (1000-1710) use, for the most part, numbers and are
   placed at the beginning of the listing so that they are
   displayed quickly. b) The parts which can operate slower
   are put later and use variables and 'VALs' to save bytes.
   c) The UDGs are set separately and are SAVEd onto tape as
   bytes to be LOADed in by the main program.


Notes on entering the program

1. As explained above the UDGs have to be set first. Type in
the program starting at line 1 to line 20 and RUN this. This
will set the UDGs above RAMTOP.

2. Now enter the rest of the program and SAVE it, followed
by the UDG bytes using command:

SAVE "maze" LINE 9000:
SAVE "maze"  CODE USR "a",168

You will get the usual "start tape then press any key"
message. Do so, but don't walk away to make a cup of coffee!
After about 45 seconds, the message will appear again. Don't
stop the tape, just press any key and the UDG bytes will be
saved. To verify use the command:

VERIFY ""

After (hopefully) the 'OK' message appears stop the tape
promptly, then verify the UDGs with:

VERIFY "" CODE

3. To LOAD simply enter LOAD "maze". The main program will
LOAD, then RUN itself from line 9000 which will LOAD in the
UDGs (following on tape) before displaying the instructions,
and away you go.

Hope you find the GOLD!

As a final note, the single or pairs of capital letters
shown in the LISTing within quotes are the UDGs and should
be entered in the G mode.


= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Table 1. A breakdown of the program, Leprechaun's Gold, line by line.

Lines     Description

190-280   Logic controlling the path through the maze (which is set up in line
          8000 - see later). The basis is this:
          a) 210 - If the next-but-one element is a dead-end ('7') then generate
                   a random number. If this is less than 0.2 then the routine
                   skips the dead-end, other wise the dead-end is reached and
                   the player is sent back to the beginning.
          b) 270 - When the player reaches this decision point again, if they
                   choose to take an alternate pathway (the original choice
                   being held in string y$) then the dead end is avoided.
          c) 260 - If during a further attempt the player takes a turning
                   different to the first attempt (excepting (b) above) then a
                   dead end is reached and they are sent back to the beginning.
1000-1710 The elements of the maze are displayed on the screen in 3D as if
          looking down the passage. There are three passage elements
          (1000: left turn, 1100: right turn and 1200: straight on) and four
          junction elements (1300: forward or right, 1400: forward or left,
          1500: left or right and 1 00 : forward, left or right) plus the dead-
          end at 1700. These are accessed in passage-junction pairs by line 200.
          Each element (except those at lines 1200 and 1700) are two part giving
          first a distant view followed by one with the player (see 4001) in a
          position to turn.
2000-2020 If the player tries to walk into the passage wall this routine
          prevents them from doing so.
3000-3060 This section invites a choice to be made (allowing only '5', '7'
          or '8'). If one is not made in about three seconds then the Green
	  Goblin appears and sends the player back to the start.
4001      This displays the player as a stick man with hands on his hips.
4600      A complex logic routine which, on the command '5' or '8', causes the
          figure to walk to the left or right and disappear around the corner
          of the passage.
4800      This causes the figure to move forwards on the command '7'.
5000      This turns the figure to the left or right before walking (or bumping
          into the wall!).
6000-6015 On LOADing, this is where the program begins. Instructions are given,
          variables are set, and the difficulty level (the number of elements
          in the maze ) is chosen.
7000-7999 The winning sequence. The gold is reached (much to the chagrin of the
          Green Goblin) and the player is invited to play again. It should be
	  noted that the program can be stopped at any junction by pressing '0'
          in place of '5', '7' or '8' - see 3050.
8000      Here the maze is set up as a string of numbers (representing the
          elements) held in x$. They are alternately 0-2 and 3-7, there not
          being two 7s following (or a junction would have two dead-end exits!).
9000      This LOADs the user defined graphics (UDGs).
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =


--
Another Fine Product transcribed by:
Jim Grimwood (jimg@globalnet.co.uk), Weardale, England
--
