Home » Archimedes archive » Archimedes World » AW-1991-03.adf » !AWMar91/Goodies/Columns/!ReadMe

!AWMar91/Goodies/Columns/!ReadMe

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Archimedes archive » Archimedes World » AW-1991-03.adf
Filename: !AWMar91/Goodies/Columns/!ReadMe
Read OK:
File size: 1A0D bytes
Load address: FFFFFF42
Exec address: E059AE7F
File contents
                                   Columns
                                   -------

                                By Rick Hughes
                                --------------


Description of the Game

Columns is a relatively sedate abstract game for the Archimedes, written
entirely in BASIC and using only the mouse for control. I first saw this
game on an IBM PC and decided that I would like a version for the Archimedes
- hence this program.

Like all good video games, Columns features a single player constantly
battling against himself and a high-score table; while the game itself gets
progressively more difficult. Consequently, the game is quite addictive as
there is always the feeling that 'I can do better next time'. The mechanics
of the game are very simple and are easily learned: the playing area
consists of a tall 'box' six units wide, and columns of width one unit,
height three units fall from the top of the box and stack up at the bottom.
Initially, The three squares which comprise the column are randomly coloured
from a palette of six colours. Once the column has landed, any sequences of
three or more squares of the same colour aligned horizontally, vertically or
diagonally are removed from the box, thus causing the squares they support
to drop down. Of course, this may bring more squares into line, which means
that they will drop out, too - in other words, a chain-reaction develops.


The whole object of the game is to cancel out as many squares as possible
because:

     i)   That's how you score points!

     ii)  There is more room for further columns to fall.


The game ends when a column tries to drop into a space that is already
blocked.


The player controls the falling column with the three mouse buttons as
follows:

     LEFT      Move the falling column left by one unit

     CENTRE    Rotate the colours around the column

     RIGHT     Move the falling column right by one unit.


In addition there are three feature 'buttons' which the player can press by
positioning the mouse pointer over them and pressing any mouse button. The
effect of each button is described below.

     LEVEL     Increase the level by one. The easiest level is 0 
     and the highest is 9. As the level increases, so does the                    speed and the number of colours (and also the number of 
     points you score).

     PAUSE     The later stages of the game can seriously damage 
     your brain, so the pause button allows you to freeze the 
     action (and all for the cost of only one point). Pressing 

     PAUSE again re-starts the game.

     PLUNGE    Drops the column at full speed. As you become 
     proficient, you may use this during the earlier levels to 
     speed the game up, but the real advantage of pressing this 
     button is that the points awarded for any squares that fall 
     out will be increased.


Note that after pressing any button, the pointer is moved up the screen out
of the way of the buttons.


If you are skilled (or lucky!) enough to make the high-score table, enter
your name by using the mouse to point at a letter and then selecting by
using the mouse buttons:

          LEFT      Move back a letter (A goes to space)
    
          CENTRE    Clear letter to space

          RIGHT     Move forward a letter (space goes to A)


When you want to quit playing the game, press ESCAPE and the high-score
table will automatically be saved to disc and loaded again next time you
play. The first time you play, the high-score table will be created and
written to disc.


Program Notes

The game is written in BASIC using a standard Initial-Loop-Final structure,
where the final phase can only be entered when an error is detected
(hopefully because the player has pressed ESCAPE).


One feature of the play is the set of large digits that are used to display
the score. On the start-up screen the definition of each digit is read using
OSWORD 10, the digit is then drawn in large squares, and 'grabbed' from the
screen as a sprite. The use of sprites makes the plotting of the score much
faster than if the definition had to be read each time a digit was used. The
amount of space required in the sprite area is a modest 4k bytes.


It would appear that the colour 'rotate' function is tailor-made for a
palette switching approach. However, the great speed of the Archimedes
(together with the fairly slow speed of the game), makes it possible to
simply redraw the four squares which make up the column. Four squares? Yes,
each falling column drags around with it a trailing square of the background
colour, so that it does not leave a trail as it falls. When the column is
moved left or right, it is simply overdrawn by a rectangle of the background
colour and then redrawn in its new position.


Again for reasons of simplicity, the playing area is actually defined as
being 10 units taller than it really is - ie. 18 units. These extra squares
are defined as empty and stay that way throughout the game; their function
is to 'drop' into place when matching blocks are removed from the game. This
is inefficient, but it means that all squares can be processed in the same
way without having to make special considerations for squares at the tops of
the columns.


Readers who are familiar with board-game type programs will recognise this
approach; the whole idea being to minimise 'edge effects'. For those who
aren't it may be helpful to explain why the playing area is 2 units wider
than it appears (columns Array%(0,x) and Array%(7,x) take no part in the
game). These surplus columns are 'filled' with squares of an unmatchable
colour so that the logic for moving the column with the mouse becomes:

         'Is the square I want to move to occupied?'

as opposed to (for moving left):

  'If I'm not in column 1, is my destination square occupied?'

which is obviously more complicated. However the real gain comes when a
column has landed and the program needs to scan for runs of three or more
squares. The logic for this is involved and would be more than twice as long
if we had to make special provision for squares near the edge of the playing
area. As it is, surrounding the box on three sides (the bottom row A%(x,0)
lies just 'beneath' the visible row on the screen) with hostile squares
makes it easy to check for runs without having to worry about edge effects.

Finally it should be noted that if you manage to make the high-score table,
ESCAPEing form the game will cause the program to attempt to save the file
'HiScores' and so the disc should be left in the drive while the game is in
progress.

My highest score is 1038 - can anybody beat that?



00000000  0a 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.               |
00000010  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000020  20 20 20 20 43 6f 6c 75  6d 6e 73 0a 20 20 20 20  |    Columns.    |
00000030  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000040  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 2d  |               -|
00000050  2d 2d 2d 2d 2d 2d 0a 0a  20 20 20 20 20 20 20 20  |------..        |
00000060  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000070  20 20 20 20 20 20 20 20  42 79 20 52 69 63 6b 20  |        By Rick |
00000080  48 75 67 68 65 73 0a 20  20 20 20 20 20 20 20 20  |Hughes.         |
00000090  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000000a0  20 20 20 20 20 20 20 2d  2d 2d 2d 2d 2d 2d 2d 2d  |       ---------|
000000b0  2d 2d 2d 2d 2d 0a 0a 0a  44 65 73 63 72 69 70 74  |-----...Descript|
000000c0  69 6f 6e 20 6f 66 20 74  68 65 20 47 61 6d 65 0a  |ion of the Game.|
000000d0  0a 43 6f 6c 75 6d 6e 73  20 69 73 20 61 20 72 65  |.Columns is a re|
000000e0  6c 61 74 69 76 65 6c 79  20 73 65 64 61 74 65 20  |latively sedate |
000000f0  61 62 73 74 72 61 63 74  20 67 61 6d 65 20 66 6f  |abstract game fo|
00000100  72 20 74 68 65 20 41 72  63 68 69 6d 65 64 65 73  |r the Archimedes|
00000110  2c 20 77 72 69 74 74 65  6e 0a 65 6e 74 69 72 65  |, written.entire|
00000120  6c 79 20 69 6e 20 42 41  53 49 43 20 61 6e 64 20  |ly in BASIC and |
00000130  75 73 69 6e 67 20 6f 6e  6c 79 20 74 68 65 20 6d  |using only the m|
00000140  6f 75 73 65 20 66 6f 72  20 63 6f 6e 74 72 6f 6c  |ouse for control|
00000150  2e 20 49 20 66 69 72 73  74 20 73 61 77 20 74 68  |. I first saw th|
00000160  69 73 0a 67 61 6d 65 20  6f 6e 20 61 6e 20 49 42  |is.game on an IB|
00000170  4d 20 50 43 20 61 6e 64  20 64 65 63 69 64 65 64  |M PC and decided|
00000180  20 74 68 61 74 20 49 20  77 6f 75 6c 64 20 6c 69  | that I would li|
00000190  6b 65 20 61 20 76 65 72  73 69 6f 6e 20 66 6f 72  |ke a version for|
000001a0  20 74 68 65 20 41 72 63  68 69 6d 65 64 65 73 0a  | the Archimedes.|
000001b0  2d 20 68 65 6e 63 65 20  74 68 69 73 20 70 72 6f  |- hence this pro|
000001c0  67 72 61 6d 2e 0a 0a 4c  69 6b 65 20 61 6c 6c 20  |gram...Like all |
000001d0  67 6f 6f 64 20 76 69 64  65 6f 20 67 61 6d 65 73  |good video games|
000001e0  2c 20 43 6f 6c 75 6d 6e  73 20 66 65 61 74 75 72  |, Columns featur|
000001f0  65 73 20 61 20 73 69 6e  67 6c 65 20 70 6c 61 79  |es a single play|
00000200  65 72 20 63 6f 6e 73 74  61 6e 74 6c 79 0a 62 61  |er constantly.ba|
00000210  74 74 6c 69 6e 67 20 61  67 61 69 6e 73 74 20 68  |ttling against h|
00000220  69 6d 73 65 6c 66 20 61  6e 64 20 61 20 68 69 67  |imself and a hig|
00000230  68 2d 73 63 6f 72 65 20  74 61 62 6c 65 3b 20 77  |h-score table; w|
00000240  68 69 6c 65 20 74 68 65  20 67 61 6d 65 20 69 74  |hile the game it|
00000250  73 65 6c 66 20 67 65 74  73 0a 70 72 6f 67 72 65  |self gets.progre|
00000260  73 73 69 76 65 6c 79 20  6d 6f 72 65 20 64 69 66  |ssively more dif|
00000270  66 69 63 75 6c 74 2e 20  43 6f 6e 73 65 71 75 65  |ficult. Conseque|
00000280  6e 74 6c 79 2c 20 74 68  65 20 67 61 6d 65 20 69  |ntly, the game i|
00000290  73 20 71 75 69 74 65 20  61 64 64 69 63 74 69 76  |s quite addictiv|
000002a0  65 20 61 73 0a 74 68 65  72 65 20 69 73 20 61 6c  |e as.there is al|
000002b0  77 61 79 73 20 74 68 65  20 66 65 65 6c 69 6e 67  |ways the feeling|
000002c0  20 74 68 61 74 20 27 49  20 63 61 6e 20 64 6f 20  | that 'I can do |
000002d0  62 65 74 74 65 72 20 6e  65 78 74 20 74 69 6d 65  |better next time|
000002e0  27 2e 20 54 68 65 20 6d  65 63 68 61 6e 69 63 73  |'. The mechanics|
000002f0  0a 6f 66 20 74 68 65 20  67 61 6d 65 20 61 72 65  |.of the game are|
00000300  20 76 65 72 79 20 73 69  6d 70 6c 65 20 61 6e 64  | very simple and|
00000310  20 61 72 65 20 65 61 73  69 6c 79 20 6c 65 61 72  | are easily lear|
00000320  6e 65 64 3a 20 74 68 65  20 70 6c 61 79 69 6e 67  |ned: the playing|
00000330  20 61 72 65 61 0a 63 6f  6e 73 69 73 74 73 20 6f  | area.consists o|
00000340  66 20 61 20 74 61 6c 6c  20 27 62 6f 78 27 20 73  |f a tall 'box' s|
00000350  69 78 20 75 6e 69 74 73  20 77 69 64 65 2c 20 61  |ix units wide, a|
00000360  6e 64 20 63 6f 6c 75 6d  6e 73 20 6f 66 20 77 69  |nd columns of wi|
00000370  64 74 68 20 6f 6e 65 20  75 6e 69 74 2c 0a 68 65  |dth one unit,.he|
00000380  69 67 68 74 20 74 68 72  65 65 20 75 6e 69 74 73  |ight three units|
00000390  20 66 61 6c 6c 20 66 72  6f 6d 20 74 68 65 20 74  | fall from the t|
000003a0  6f 70 20 6f 66 20 74 68  65 20 62 6f 78 20 61 6e  |op of the box an|
000003b0  64 20 73 74 61 63 6b 20  75 70 20 61 74 20 74 68  |d stack up at th|
000003c0  65 20 62 6f 74 74 6f 6d  2e 0a 49 6e 69 74 69 61  |e bottom..Initia|
000003d0  6c 6c 79 2c 20 54 68 65  20 74 68 72 65 65 20 73  |lly, The three s|
000003e0  71 75 61 72 65 73 20 77  68 69 63 68 20 63 6f 6d  |quares which com|
000003f0  70 72 69 73 65 20 74 68  65 20 63 6f 6c 75 6d 6e  |prise the column|
00000400  20 61 72 65 20 72 61 6e  64 6f 6d 6c 79 20 63 6f  | are randomly co|
00000410  6c 6f 75 72 65 64 0a 66  72 6f 6d 20 61 20 70 61  |loured.from a pa|
00000420  6c 65 74 74 65 20 6f 66  20 73 69 78 20 63 6f 6c  |lette of six col|
00000430  6f 75 72 73 2e 20 4f 6e  63 65 20 74 68 65 20 63  |ours. Once the c|
00000440  6f 6c 75 6d 6e 20 68 61  73 20 6c 61 6e 64 65 64  |olumn has landed|
00000450  2c 20 61 6e 79 20 73 65  71 75 65 6e 63 65 73 20  |, any sequences |
00000460  6f 66 0a 74 68 72 65 65  20 6f 72 20 6d 6f 72 65  |of.three or more|
00000470  20 73 71 75 61 72 65 73  20 6f 66 20 74 68 65 20  | squares of the |
00000480  73 61 6d 65 20 63 6f 6c  6f 75 72 20 61 6c 69 67  |same colour alig|
00000490  6e 65 64 20 68 6f 72 69  7a 6f 6e 74 61 6c 6c 79  |ned horizontally|
000004a0  2c 20 76 65 72 74 69 63  61 6c 6c 79 20 6f 72 0a  |, vertically or.|
000004b0  64 69 61 67 6f 6e 61 6c  6c 79 20 61 72 65 20 72  |diagonally are r|
000004c0  65 6d 6f 76 65 64 20 66  72 6f 6d 20 74 68 65 20  |emoved from the |
000004d0  62 6f 78 2c 20 74 68 75  73 20 63 61 75 73 69 6e  |box, thus causin|
000004e0  67 20 74 68 65 20 73 71  75 61 72 65 73 20 74 68  |g the squares th|
000004f0  65 79 20 73 75 70 70 6f  72 74 0a 74 6f 20 64 72  |ey support.to dr|
00000500  6f 70 20 64 6f 77 6e 2e  20 4f 66 20 63 6f 75 72  |op down. Of cour|
00000510  73 65 2c 20 74 68 69 73  20 6d 61 79 20 62 72 69  |se, this may bri|
00000520  6e 67 20 6d 6f 72 65 20  73 71 75 61 72 65 73 20  |ng more squares |
00000530  69 6e 74 6f 20 6c 69 6e  65 2c 20 77 68 69 63 68  |into line, which|
00000540  20 6d 65 61 6e 73 0a 74  68 61 74 20 74 68 65 79  | means.that they|
00000550  20 77 69 6c 6c 20 64 72  6f 70 20 6f 75 74 2c 20  | will drop out, |
00000560  74 6f 6f 20 2d 20 69 6e  20 6f 74 68 65 72 20 77  |too - in other w|
00000570  6f 72 64 73 2c 20 61 20  63 68 61 69 6e 2d 72 65  |ords, a chain-re|
00000580  61 63 74 69 6f 6e 20 64  65 76 65 6c 6f 70 73 2e  |action develops.|
00000590  0a 0a 0a 54 68 65 20 77  68 6f 6c 65 20 6f 62 6a  |...The whole obj|
000005a0  65 63 74 20 6f 66 20 74  68 65 20 67 61 6d 65 20  |ect of the game |
000005b0  69 73 20 74 6f 20 63 61  6e 63 65 6c 20 6f 75 74  |is to cancel out|
000005c0  20 61 73 20 6d 61 6e 79  20 73 71 75 61 72 65 73  | as many squares|
000005d0  20 61 73 20 70 6f 73 73  69 62 6c 65 0a 62 65 63  | as possible.bec|
000005e0  61 75 73 65 3a 0a 0a 20  20 20 20 20 69 29 20 20  |ause:..     i)  |
000005f0  20 54 68 61 74 27 73 20  68 6f 77 20 79 6f 75 20  | That's how you |
00000600  73 63 6f 72 65 20 70 6f  69 6e 74 73 21 0a 0a 20  |score points!.. |
00000610  20 20 20 20 69 69 29 20  20 54 68 65 72 65 20 69  |    ii)  There i|
00000620  73 20 6d 6f 72 65 20 72  6f 6f 6d 20 66 6f 72 20  |s more room for |
00000630  66 75 72 74 68 65 72 20  63 6f 6c 75 6d 6e 73 20  |further columns |
00000640  74 6f 20 66 61 6c 6c 2e  0a 0a 0a 54 68 65 20 67  |to fall....The g|
00000650  61 6d 65 20 65 6e 64 73  20 77 68 65 6e 20 61 20  |ame ends when a |
00000660  63 6f 6c 75 6d 6e 20 74  72 69 65 73 20 74 6f 20  |column tries to |
00000670  64 72 6f 70 20 69 6e 74  6f 20 61 20 73 70 61 63  |drop into a spac|
00000680  65 20 74 68 61 74 20 69  73 20 61 6c 72 65 61 64  |e that is alread|
00000690  79 0a 62 6c 6f 63 6b 65  64 2e 0a 0a 0a 54 68 65  |y.blocked....The|
000006a0  20 70 6c 61 79 65 72 20  63 6f 6e 74 72 6f 6c 73  | player controls|
000006b0  20 74 68 65 20 66 61 6c  6c 69 6e 67 20 63 6f 6c  | the falling col|
000006c0  75 6d 6e 20 77 69 74 68  20 74 68 65 20 74 68 72  |umn with the thr|
000006d0  65 65 20 6d 6f 75 73 65  20 62 75 74 74 6f 6e 73  |ee mouse buttons|
000006e0  20 61 73 0a 66 6f 6c 6c  6f 77 73 3a 0a 0a 20 20  | as.follows:..  |
000006f0  20 20 20 4c 45 46 54 20  20 20 20 20 20 4d 6f 76  |   LEFT      Mov|
00000700  65 20 74 68 65 20 66 61  6c 6c 69 6e 67 20 63 6f  |e the falling co|
00000710  6c 75 6d 6e 20 6c 65 66  74 20 62 79 20 6f 6e 65  |lumn left by one|
00000720  20 75 6e 69 74 0a 0a 20  20 20 20 20 43 45 4e 54  | unit..     CENT|
00000730  52 45 20 20 20 20 52 6f  74 61 74 65 20 74 68 65  |RE    Rotate the|
00000740  20 63 6f 6c 6f 75 72 73  20 61 72 6f 75 6e 64 20  | colours around |
00000750  74 68 65 20 63 6f 6c 75  6d 6e 0a 0a 20 20 20 20  |the column..    |
00000760  20 52 49 47 48 54 20 20  20 20 20 4d 6f 76 65 20  | RIGHT     Move |
00000770  74 68 65 20 66 61 6c 6c  69 6e 67 20 63 6f 6c 75  |the falling colu|
00000780  6d 6e 20 72 69 67 68 74  20 62 79 20 6f 6e 65 20  |mn right by one |
00000790  75 6e 69 74 2e 0a 0a 0a  49 6e 20 61 64 64 69 74  |unit....In addit|
000007a0  69 6f 6e 20 74 68 65 72  65 20 61 72 65 20 74 68  |ion there are th|
000007b0  72 65 65 20 66 65 61 74  75 72 65 20 27 62 75 74  |ree feature 'but|
000007c0  74 6f 6e 73 27 20 77 68  69 63 68 20 74 68 65 20  |tons' which the |
000007d0  70 6c 61 79 65 72 20 63  61 6e 20 70 72 65 73 73  |player can press|
000007e0  20 62 79 0a 70 6f 73 69  74 69 6f 6e 69 6e 67 20  | by.positioning |
000007f0  74 68 65 20 6d 6f 75 73  65 20 70 6f 69 6e 74 65  |the mouse pointe|
00000800  72 20 6f 76 65 72 20 74  68 65 6d 20 61 6e 64 20  |r over them and |
00000810  70 72 65 73 73 69 6e 67  20 61 6e 79 20 6d 6f 75  |pressing any mou|
00000820  73 65 20 62 75 74 74 6f  6e 2e 20 54 68 65 0a 65  |se button. The.e|
00000830  66 66 65 63 74 20 6f 66  20 65 61 63 68 20 62 75  |ffect of each bu|
00000840  74 74 6f 6e 20 69 73 20  64 65 73 63 72 69 62 65  |tton is describe|
00000850  64 20 62 65 6c 6f 77 2e  0a 0a 20 20 20 20 20 4c  |d below...     L|
00000860  45 56 45 4c 20 20 20 20  20 49 6e 63 72 65 61 73  |EVEL     Increas|
00000870  65 20 74 68 65 20 6c 65  76 65 6c 20 62 79 20 6f  |e the level by o|
00000880  6e 65 2e 20 54 68 65 20  65 61 73 69 65 73 74 20  |ne. The easiest |
00000890  6c 65 76 65 6c 20 69 73  20 30 20 0a 20 20 20 20  |level is 0 .    |
000008a0  20 61 6e 64 20 74 68 65  20 68 69 67 68 65 73 74  | and the highest|
000008b0  20 69 73 20 39 2e 20 41  73 20 74 68 65 20 6c 65  | is 9. As the le|
000008c0  76 65 6c 20 69 6e 63 72  65 61 73 65 73 2c 20 73  |vel increases, s|
000008d0  6f 20 64 6f 65 73 20 74  68 65 20 20 20 20 20 20  |o does the      |
000008e0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 73 70  |              sp|
000008f0  65 65 64 20 61 6e 64 20  74 68 65 20 6e 75 6d 62  |eed and the numb|
00000900  65 72 20 6f 66 20 63 6f  6c 6f 75 72 73 20 28 61  |er of colours (a|
00000910  6e 64 20 61 6c 73 6f 20  74 68 65 20 6e 75 6d 62  |nd also the numb|
00000920  65 72 20 6f 66 20 0a 20  20 20 20 20 70 6f 69 6e  |er of .     poin|
00000930  74 73 20 79 6f 75 20 73  63 6f 72 65 29 2e 0a 0a  |ts you score)...|
00000940  20 20 20 20 20 50 41 55  53 45 20 20 20 20 20 54  |     PAUSE     T|
00000950  68 65 20 6c 61 74 65 72  20 73 74 61 67 65 73 20  |he later stages |
00000960  6f 66 20 74 68 65 20 67  61 6d 65 20 63 61 6e 20  |of the game can |
00000970  73 65 72 69 6f 75 73 6c  79 20 64 61 6d 61 67 65  |seriously damage|
00000980  20 0a 20 20 20 20 20 79  6f 75 72 20 62 72 61 69  | .     your brai|
00000990  6e 2c 20 73 6f 20 74 68  65 20 70 61 75 73 65 20  |n, so the pause |
000009a0  62 75 74 74 6f 6e 20 61  6c 6c 6f 77 73 20 79 6f  |button allows yo|
000009b0  75 20 74 6f 20 66 72 65  65 7a 65 20 74 68 65 20  |u to freeze the |
000009c0  0a 20 20 20 20 20 61 63  74 69 6f 6e 20 28 61 6e  |.     action (an|
000009d0  64 20 61 6c 6c 20 66 6f  72 20 74 68 65 20 63 6f  |d all for the co|
000009e0  73 74 20 6f 66 20 6f 6e  6c 79 20 6f 6e 65 20 70  |st of only one p|
000009f0  6f 69 6e 74 29 2e 20 50  72 65 73 73 69 6e 67 20  |oint). Pressing |
00000a00  0a 0a 20 20 20 20 20 50  41 55 53 45 20 61 67 61  |..     PAUSE aga|
00000a10  69 6e 20 72 65 2d 73 74  61 72 74 73 20 74 68 65  |in re-starts the|
00000a20  20 67 61 6d 65 2e 0a 0a  20 20 20 20 20 50 4c 55  | game...     PLU|
00000a30  4e 47 45 20 20 20 20 44  72 6f 70 73 20 74 68 65  |NGE    Drops the|
00000a40  20 63 6f 6c 75 6d 6e 20  61 74 20 66 75 6c 6c 20  | column at full |
00000a50  73 70 65 65 64 2e 20 41  73 20 79 6f 75 20 62 65  |speed. As you be|
00000a60  63 6f 6d 65 20 0a 20 20  20 20 20 70 72 6f 66 69  |come .     profi|
00000a70  63 69 65 6e 74 2c 20 79  6f 75 20 6d 61 79 20 75  |cient, you may u|
00000a80  73 65 20 74 68 69 73 20  64 75 72 69 6e 67 20 74  |se this during t|
00000a90  68 65 20 65 61 72 6c 69  65 72 20 6c 65 76 65 6c  |he earlier level|
00000aa0  73 20 74 6f 20 0a 20 20  20 20 20 73 70 65 65 64  |s to .     speed|
00000ab0  20 74 68 65 20 67 61 6d  65 20 75 70 2c 20 62 75  | the game up, bu|
00000ac0  74 20 74 68 65 20 72 65  61 6c 20 61 64 76 61 6e  |t the real advan|
00000ad0  74 61 67 65 20 6f 66 20  70 72 65 73 73 69 6e 67  |tage of pressing|
00000ae0  20 74 68 69 73 20 0a 20  20 20 20 20 62 75 74 74  | this .     butt|
00000af0  6f 6e 20 69 73 20 74 68  61 74 20 74 68 65 20 70  |on is that the p|
00000b00  6f 69 6e 74 73 20 61 77  61 72 64 65 64 20 66 6f  |oints awarded fo|
00000b10  72 20 61 6e 79 20 73 71  75 61 72 65 73 20 74 68  |r any squares th|
00000b20  61 74 20 66 61 6c 6c 20  0a 20 20 20 20 20 6f 75  |at fall .     ou|
00000b30  74 20 77 69 6c 6c 20 62  65 20 69 6e 63 72 65 61  |t will be increa|
00000b40  73 65 64 2e 0a 0a 0a 4e  6f 74 65 20 74 68 61 74  |sed....Note that|
00000b50  20 61 66 74 65 72 20 70  72 65 73 73 69 6e 67 20  | after pressing |
00000b60  61 6e 79 20 62 75 74 74  6f 6e 2c 20 74 68 65 20  |any button, the |
00000b70  70 6f 69 6e 74 65 72 20  69 73 20 6d 6f 76 65 64  |pointer is moved|
00000b80  20 75 70 20 74 68 65 20  73 63 72 65 65 6e 20 6f  | up the screen o|
00000b90  75 74 0a 6f 66 20 74 68  65 20 77 61 79 20 6f 66  |ut.of the way of|
00000ba0  20 74 68 65 20 62 75 74  74 6f 6e 73 2e 0a 0a 0a  | the buttons....|
00000bb0  49 66 20 79 6f 75 20 61  72 65 20 73 6b 69 6c 6c  |If you are skill|
00000bc0  65 64 20 28 6f 72 20 6c  75 63 6b 79 21 29 20 65  |ed (or lucky!) e|
00000bd0  6e 6f 75 67 68 20 74 6f  20 6d 61 6b 65 20 74 68  |nough to make th|
00000be0  65 20 68 69 67 68 2d 73  63 6f 72 65 20 74 61 62  |e high-score tab|
00000bf0  6c 65 2c 20 65 6e 74 65  72 0a 79 6f 75 72 20 6e  |le, enter.your n|
00000c00  61 6d 65 20 62 79 20 75  73 69 6e 67 20 74 68 65  |ame by using the|
00000c10  20 6d 6f 75 73 65 20 74  6f 20 70 6f 69 6e 74 20  | mouse to point |
00000c20  61 74 20 61 20 6c 65 74  74 65 72 20 61 6e 64 20  |at a letter and |
00000c30  74 68 65 6e 20 73 65 6c  65 63 74 69 6e 67 20 62  |then selecting b|
00000c40  79 0a 75 73 69 6e 67 20  74 68 65 20 6d 6f 75 73  |y.using the mous|
00000c50  65 20 62 75 74 74 6f 6e  73 3a 0a 0a 20 20 20 20  |e buttons:..    |
00000c60  20 20 20 20 20 20 4c 45  46 54 20 20 20 20 20 20  |      LEFT      |
00000c70  4d 6f 76 65 20 62 61 63  6b 20 61 20 6c 65 74 74  |Move back a lett|
00000c80  65 72 20 28 41 20 67 6f  65 73 20 74 6f 20 73 70  |er (A goes to sp|
00000c90  61 63 65 29 0a 20 20 20  20 0a 20 20 20 20 20 20  |ace).    .      |
00000ca0  20 20 20 20 43 45 4e 54  52 45 20 20 20 20 43 6c  |    CENTRE    Cl|
00000cb0  65 61 72 20 6c 65 74 74  65 72 20 74 6f 20 73 70  |ear letter to sp|
00000cc0  61 63 65 0a 0a 20 20 20  20 20 20 20 20 20 20 52  |ace..          R|
00000cd0  49 47 48 54 20 20 20 20  20 4d 6f 76 65 20 66 6f  |IGHT     Move fo|
00000ce0  72 77 61 72 64 20 61 20  6c 65 74 74 65 72 20 28  |rward a letter (|
00000cf0  73 70 61 63 65 20 67 6f  65 73 20 74 6f 20 41 29  |space goes to A)|
00000d00  0a 0a 0a 57 68 65 6e 20  79 6f 75 20 77 61 6e 74  |...When you want|
00000d10  20 74 6f 20 71 75 69 74  20 70 6c 61 79 69 6e 67  | to quit playing|
00000d20  20 74 68 65 20 67 61 6d  65 2c 20 70 72 65 73 73  | the game, press|
00000d30  20 45 53 43 41 50 45 20  61 6e 64 20 74 68 65 20  | ESCAPE and the |
00000d40  68 69 67 68 2d 73 63 6f  72 65 0a 74 61 62 6c 65  |high-score.table|
00000d50  20 77 69 6c 6c 20 61 75  74 6f 6d 61 74 69 63 61  | will automatica|
00000d60  6c 6c 79 20 62 65 20 73  61 76 65 64 20 74 6f 20  |lly be saved to |
00000d70  64 69 73 63 20 61 6e 64  20 6c 6f 61 64 65 64 20  |disc and loaded |
00000d80  61 67 61 69 6e 20 6e 65  78 74 20 74 69 6d 65 20  |again next time |
00000d90  79 6f 75 0a 70 6c 61 79  2e 20 54 68 65 20 66 69  |you.play. The fi|
00000da0  72 73 74 20 74 69 6d 65  20 79 6f 75 20 70 6c 61  |rst time you pla|
00000db0  79 2c 20 74 68 65 20 68  69 67 68 2d 73 63 6f 72  |y, the high-scor|
00000dc0  65 20 74 61 62 6c 65 20  77 69 6c 6c 20 62 65 20  |e table will be |
00000dd0  63 72 65 61 74 65 64 20  61 6e 64 0a 77 72 69 74  |created and.writ|
00000de0  74 65 6e 20 74 6f 20 64  69 73 63 2e 0a 0a 0a 50  |ten to disc....P|
00000df0  72 6f 67 72 61 6d 20 4e  6f 74 65 73 0a 0a 54 68  |rogram Notes..Th|
00000e00  65 20 67 61 6d 65 20 69  73 20 77 72 69 74 74 65  |e game is writte|
00000e10  6e 20 69 6e 20 42 41 53  49 43 20 75 73 69 6e 67  |n in BASIC using|
00000e20  20 61 20 73 74 61 6e 64  61 72 64 20 49 6e 69 74  | a standard Init|
00000e30  69 61 6c 2d 4c 6f 6f 70  2d 46 69 6e 61 6c 20 73  |ial-Loop-Final s|
00000e40  74 72 75 63 74 75 72 65  2c 0a 77 68 65 72 65 20  |tructure,.where |
00000e50  74 68 65 20 66 69 6e 61  6c 20 70 68 61 73 65 20  |the final phase |
00000e60  63 61 6e 20 6f 6e 6c 79  20 62 65 20 65 6e 74 65  |can only be ente|
00000e70  72 65 64 20 77 68 65 6e  20 61 6e 20 65 72 72 6f  |red when an erro|
00000e80  72 20 69 73 20 64 65 74  65 63 74 65 64 0a 28 68  |r is detected.(h|
00000e90  6f 70 65 66 75 6c 6c 79  20 62 65 63 61 75 73 65  |opefully because|
00000ea0  20 74 68 65 20 70 6c 61  79 65 72 20 68 61 73 20  | the player has |
00000eb0  70 72 65 73 73 65 64 20  45 53 43 41 50 45 29 2e  |pressed ESCAPE).|
00000ec0  0a 0a 0a 4f 6e 65 20 66  65 61 74 75 72 65 20 6f  |...One feature o|
00000ed0  66 20 74 68 65 20 70 6c  61 79 20 69 73 20 74 68  |f the play is th|
00000ee0  65 20 73 65 74 20 6f 66  20 6c 61 72 67 65 20 64  |e set of large d|
00000ef0  69 67 69 74 73 20 74 68  61 74 20 61 72 65 20 75  |igits that are u|
00000f00  73 65 64 20 74 6f 20 64  69 73 70 6c 61 79 0a 74  |sed to display.t|
00000f10  68 65 20 73 63 6f 72 65  2e 20 4f 6e 20 74 68 65  |he score. On the|
00000f20  20 73 74 61 72 74 2d 75  70 20 73 63 72 65 65 6e  | start-up screen|
00000f30  20 74 68 65 20 64 65 66  69 6e 69 74 69 6f 6e 20  | the definition |
00000f40  6f 66 20 65 61 63 68 20  64 69 67 69 74 20 69 73  |of each digit is|
00000f50  20 72 65 61 64 20 75 73  69 6e 67 0a 4f 53 57 4f  | read using.OSWO|
00000f60  52 44 20 31 30 2c 20 74  68 65 20 64 69 67 69 74  |RD 10, the digit|
00000f70  20 69 73 20 74 68 65 6e  20 64 72 61 77 6e 20 69  | is then drawn i|
00000f80  6e 20 6c 61 72 67 65 20  73 71 75 61 72 65 73 2c  |n large squares,|
00000f90  20 61 6e 64 20 27 67 72  61 62 62 65 64 27 20 66  | and 'grabbed' f|
00000fa0  72 6f 6d 20 74 68 65 0a  73 63 72 65 65 6e 20 61  |rom the.screen a|
00000fb0  73 20 61 20 73 70 72 69  74 65 2e 20 54 68 65 20  |s a sprite. The |
00000fc0  75 73 65 20 6f 66 20 73  70 72 69 74 65 73 20 6d  |use of sprites m|
00000fd0  61 6b 65 73 20 74 68 65  20 70 6c 6f 74 74 69 6e  |akes the plottin|
00000fe0  67 20 6f 66 20 74 68 65  20 73 63 6f 72 65 20 6d  |g of the score m|
00000ff0  75 63 68 0a 66 61 73 74  65 72 20 74 68 61 6e 20  |uch.faster than |
00001000  69 66 20 74 68 65 20 64  65 66 69 6e 69 74 69 6f  |if the definitio|
00001010  6e 20 68 61 64 20 74 6f  20 62 65 20 72 65 61 64  |n had to be read|
00001020  20 65 61 63 68 20 74 69  6d 65 20 61 20 64 69 67  | each time a dig|
00001030  69 74 20 77 61 73 20 75  73 65 64 2e 20 54 68 65  |it was used. The|
00001040  0a 61 6d 6f 75 6e 74 20  6f 66 20 73 70 61 63 65  |.amount of space|
00001050  20 72 65 71 75 69 72 65  64 20 69 6e 20 74 68 65  | required in the|
00001060  20 73 70 72 69 74 65 20  61 72 65 61 20 69 73 20  | sprite area is |
00001070  61 20 6d 6f 64 65 73 74  20 34 6b 20 62 79 74 65  |a modest 4k byte|
00001080  73 2e 0a 0a 0a 49 74 20  77 6f 75 6c 64 20 61 70  |s....It would ap|
00001090  70 65 61 72 20 74 68 61  74 20 74 68 65 20 63 6f  |pear that the co|
000010a0  6c 6f 75 72 20 27 72 6f  74 61 74 65 27 20 66 75  |lour 'rotate' fu|
000010b0  6e 63 74 69 6f 6e 20 69  73 20 74 61 69 6c 6f 72  |nction is tailor|
000010c0  2d 6d 61 64 65 20 66 6f  72 20 61 0a 70 61 6c 65  |-made for a.pale|
000010d0  74 74 65 20 73 77 69 74  63 68 69 6e 67 20 61 70  |tte switching ap|
000010e0  70 72 6f 61 63 68 2e 20  48 6f 77 65 76 65 72 2c  |proach. However,|
000010f0  20 74 68 65 20 67 72 65  61 74 20 73 70 65 65 64  | the great speed|
00001100  20 6f 66 20 74 68 65 20  41 72 63 68 69 6d 65 64  | of the Archimed|
00001110  65 73 0a 28 74 6f 67 65  74 68 65 72 20 77 69 74  |es.(together wit|
00001120  68 20 74 68 65 20 66 61  69 72 6c 79 20 73 6c 6f  |h the fairly slo|
00001130  77 20 73 70 65 65 64 20  6f 66 20 74 68 65 20 67  |w speed of the g|
00001140  61 6d 65 29 2c 20 6d 61  6b 65 73 20 69 74 20 70  |ame), makes it p|
00001150  6f 73 73 69 62 6c 65 20  74 6f 0a 73 69 6d 70 6c  |ossible to.simpl|
00001160  79 20 72 65 64 72 61 77  20 74 68 65 20 66 6f 75  |y redraw the fou|
00001170  72 20 73 71 75 61 72 65  73 20 77 68 69 63 68 20  |r squares which |
00001180  6d 61 6b 65 20 75 70 20  74 68 65 20 63 6f 6c 75  |make up the colu|
00001190  6d 6e 2e 20 46 6f 75 72  20 73 71 75 61 72 65 73  |mn. Four squares|
000011a0  3f 20 59 65 73 2c 0a 65  61 63 68 20 66 61 6c 6c  |? Yes,.each fall|
000011b0  69 6e 67 20 63 6f 6c 75  6d 6e 20 64 72 61 67 73  |ing column drags|
000011c0  20 61 72 6f 75 6e 64 20  77 69 74 68 20 69 74 20  | around with it |
000011d0  61 20 74 72 61 69 6c 69  6e 67 20 73 71 75 61 72  |a trailing squar|
000011e0  65 20 6f 66 20 74 68 65  20 62 61 63 6b 67 72 6f  |e of the backgro|
000011f0  75 6e 64 0a 63 6f 6c 6f  75 72 2c 20 73 6f 20 74  |und.colour, so t|
00001200  68 61 74 20 69 74 20 64  6f 65 73 20 6e 6f 74 20  |hat it does not |
00001210  6c 65 61 76 65 20 61 20  74 72 61 69 6c 20 61 73  |leave a trail as|
00001220  20 69 74 20 66 61 6c 6c  73 2e 20 57 68 65 6e 20  | it falls. When |
00001230  74 68 65 20 63 6f 6c 75  6d 6e 20 69 73 0a 6d 6f  |the column is.mo|
00001240  76 65 64 20 6c 65 66 74  20 6f 72 20 72 69 67 68  |ved left or righ|
00001250  74 2c 20 69 74 20 69 73  20 73 69 6d 70 6c 79 20  |t, it is simply |
00001260  6f 76 65 72 64 72 61 77  6e 20 62 79 20 61 20 72  |overdrawn by a r|
00001270  65 63 74 61 6e 67 6c 65  20 6f 66 20 74 68 65 20  |ectangle of the |
00001280  62 61 63 6b 67 72 6f 75  6e 64 0a 63 6f 6c 6f 75  |background.colou|
00001290  72 20 61 6e 64 20 74 68  65 6e 20 72 65 64 72 61  |r and then redra|
000012a0  77 6e 20 69 6e 20 69 74  73 20 6e 65 77 20 70 6f  |wn in its new po|
000012b0  73 69 74 69 6f 6e 2e 0a  0a 0a 41 67 61 69 6e 20  |sition....Again |
000012c0  66 6f 72 20 72 65 61 73  6f 6e 73 20 6f 66 20 73  |for reasons of s|
000012d0  69 6d 70 6c 69 63 69 74  79 2c 20 74 68 65 20 70  |implicity, the p|
000012e0  6c 61 79 69 6e 67 20 61  72 65 61 20 69 73 20 61  |laying area is a|
000012f0  63 74 75 61 6c 6c 79 20  64 65 66 69 6e 65 64 20  |ctually defined |
00001300  61 73 0a 62 65 69 6e 67  20 31 30 20 75 6e 69 74  |as.being 10 unit|
00001310  73 20 74 61 6c 6c 65 72  20 74 68 61 6e 20 69 74  |s taller than it|
00001320  20 72 65 61 6c 6c 79 20  69 73 20 2d 20 69 65 2e  | really is - ie.|
00001330  20 31 38 20 75 6e 69 74  73 2e 20 54 68 65 73 65  | 18 units. These|
00001340  20 65 78 74 72 61 20 73  71 75 61 72 65 73 0a 61  | extra squares.a|
00001350  72 65 20 64 65 66 69 6e  65 64 20 61 73 20 65 6d  |re defined as em|
00001360  70 74 79 20 61 6e 64 20  73 74 61 79 20 74 68 61  |pty and stay tha|
00001370  74 20 77 61 79 20 74 68  72 6f 75 67 68 6f 75 74  |t way throughout|
00001380  20 74 68 65 20 67 61 6d  65 3b 20 74 68 65 69 72  | the game; their|
00001390  20 66 75 6e 63 74 69 6f  6e 0a 69 73 20 74 6f 20  | function.is to |
000013a0  27 64 72 6f 70 27 20 69  6e 74 6f 20 70 6c 61 63  |'drop' into plac|
000013b0  65 20 77 68 65 6e 20 6d  61 74 63 68 69 6e 67 20  |e when matching |
000013c0  62 6c 6f 63 6b 73 20 61  72 65 20 72 65 6d 6f 76  |blocks are remov|
000013d0  65 64 20 66 72 6f 6d 20  74 68 65 20 67 61 6d 65  |ed from the game|
000013e0  2e 20 54 68 69 73 0a 69  73 20 69 6e 65 66 66 69  |. This.is ineffi|
000013f0  63 69 65 6e 74 2c 20 62  75 74 20 69 74 20 6d 65  |cient, but it me|
00001400  61 6e 73 20 74 68 61 74  20 61 6c 6c 20 73 71 75  |ans that all squ|
00001410  61 72 65 73 20 63 61 6e  20 62 65 20 70 72 6f 63  |ares can be proc|
00001420  65 73 73 65 64 20 69 6e  20 74 68 65 20 73 61 6d  |essed in the sam|
00001430  65 0a 77 61 79 20 77 69  74 68 6f 75 74 20 68 61  |e.way without ha|
00001440  76 69 6e 67 20 74 6f 20  6d 61 6b 65 20 73 70 65  |ving to make spe|
00001450  63 69 61 6c 20 63 6f 6e  73 69 64 65 72 61 74 69  |cial considerati|
00001460  6f 6e 73 20 66 6f 72 20  73 71 75 61 72 65 73 20  |ons for squares |
00001470  61 74 20 74 68 65 20 74  6f 70 73 20 6f 66 0a 74  |at the tops of.t|
00001480  68 65 20 63 6f 6c 75 6d  6e 73 2e 0a 0a 0a 52 65  |he columns....Re|
00001490  61 64 65 72 73 20 77 68  6f 20 61 72 65 20 66 61  |aders who are fa|
000014a0  6d 69 6c 69 61 72 20 77  69 74 68 20 62 6f 61 72  |miliar with boar|
000014b0  64 2d 67 61 6d 65 20 74  79 70 65 20 70 72 6f 67  |d-game type prog|
000014c0  72 61 6d 73 20 77 69 6c  6c 20 72 65 63 6f 67 6e  |rams will recogn|
000014d0  69 73 65 20 74 68 69 73  0a 61 70 70 72 6f 61 63  |ise this.approac|
000014e0  68 3b 20 74 68 65 20 77  68 6f 6c 65 20 69 64 65  |h; the whole ide|
000014f0  61 20 62 65 69 6e 67 20  74 6f 20 6d 69 6e 69 6d  |a being to minim|
00001500  69 73 65 20 27 65 64 67  65 20 65 66 66 65 63 74  |ise 'edge effect|
00001510  73 27 2e 20 46 6f 72 20  74 68 6f 73 65 20 77 68  |s'. For those wh|
00001520  6f 0a 61 72 65 6e 27 74  20 69 74 20 6d 61 79 20  |o.aren't it may |
00001530  62 65 20 68 65 6c 70 66  75 6c 20 74 6f 20 65 78  |be helpful to ex|
00001540  70 6c 61 69 6e 20 77 68  79 20 74 68 65 20 70 6c  |plain why the pl|
00001550  61 79 69 6e 67 20 61 72  65 61 20 69 73 20 32 20  |aying area is 2 |
00001560  75 6e 69 74 73 20 77 69  64 65 72 0a 74 68 61 6e  |units wider.than|
00001570  20 69 74 20 61 70 70 65  61 72 73 20 28 63 6f 6c  | it appears (col|
00001580  75 6d 6e 73 20 41 72 72  61 79 25 28 30 2c 78 29  |umns Array%(0,x)|
00001590  20 61 6e 64 20 41 72 72  61 79 25 28 37 2c 78 29  | and Array%(7,x)|
000015a0  20 74 61 6b 65 20 6e 6f  20 70 61 72 74 20 69 6e  | take no part in|
000015b0  20 74 68 65 0a 67 61 6d  65 29 2e 20 54 68 65 73  | the.game). Thes|
000015c0  65 20 73 75 72 70 6c 75  73 20 63 6f 6c 75 6d 6e  |e surplus column|
000015d0  73 20 61 72 65 20 27 66  69 6c 6c 65 64 27 20 77  |s are 'filled' w|
000015e0  69 74 68 20 73 71 75 61  72 65 73 20 6f 66 20 61  |ith squares of a|
000015f0  6e 20 75 6e 6d 61 74 63  68 61 62 6c 65 0a 63 6f  |n unmatchable.co|
00001600  6c 6f 75 72 20 73 6f 20  74 68 61 74 20 74 68 65  |lour so that the|
00001610  20 6c 6f 67 69 63 20 66  6f 72 20 6d 6f 76 69 6e  | logic for movin|
00001620  67 20 74 68 65 20 63 6f  6c 75 6d 6e 20 77 69 74  |g the column wit|
00001630  68 20 74 68 65 20 6d 6f  75 73 65 20 62 65 63 6f  |h the mouse beco|
00001640  6d 65 73 3a 0a 0a 20 20  20 20 20 20 20 20 20 27  |mes:..         '|
00001650  49 73 20 74 68 65 20 73  71 75 61 72 65 20 49 20  |Is the square I |
00001660  77 61 6e 74 20 74 6f 20  6d 6f 76 65 20 74 6f 20  |want to move to |
00001670  6f 63 63 75 70 69 65 64  3f 27 0a 0a 61 73 20 6f  |occupied?'..as o|
00001680  70 70 6f 73 65 64 20 74  6f 20 28 66 6f 72 20 6d  |pposed to (for m|
00001690  6f 76 69 6e 67 20 6c 65  66 74 29 3a 0a 0a 20 20  |oving left):..  |
000016a0  27 49 66 20 49 27 6d 20  6e 6f 74 20 69 6e 20 63  |'If I'm not in c|
000016b0  6f 6c 75 6d 6e 20 31 2c  20 69 73 20 6d 79 20 64  |olumn 1, is my d|
000016c0  65 73 74 69 6e 61 74 69  6f 6e 20 73 71 75 61 72  |estination squar|
000016d0  65 20 6f 63 63 75 70 69  65 64 3f 27 0a 0a 77 68  |e occupied?'..wh|
000016e0  69 63 68 20 69 73 20 6f  62 76 69 6f 75 73 6c 79  |ich is obviously|
000016f0  20 6d 6f 72 65 20 63 6f  6d 70 6c 69 63 61 74 65  | more complicate|
00001700  64 2e 20 48 6f 77 65 76  65 72 20 74 68 65 20 72  |d. However the r|
00001710  65 61 6c 20 67 61 69 6e  20 63 6f 6d 65 73 20 77  |eal gain comes w|
00001720  68 65 6e 20 61 0a 63 6f  6c 75 6d 6e 20 68 61 73  |hen a.column has|
00001730  20 6c 61 6e 64 65 64 20  61 6e 64 20 74 68 65 20  | landed and the |
00001740  70 72 6f 67 72 61 6d 20  6e 65 65 64 73 20 74 6f  |program needs to|
00001750  20 73 63 61 6e 20 66 6f  72 20 72 75 6e 73 20 6f  | scan for runs o|
00001760  66 20 74 68 72 65 65 20  6f 72 20 6d 6f 72 65 0a  |f three or more.|
00001770  73 71 75 61 72 65 73 2e  20 54 68 65 20 6c 6f 67  |squares. The log|
00001780  69 63 20 66 6f 72 20 74  68 69 73 20 69 73 20 69  |ic for this is i|
00001790  6e 76 6f 6c 76 65 64 20  61 6e 64 20 77 6f 75 6c  |nvolved and woul|
000017a0  64 20 62 65 20 6d 6f 72  65 20 74 68 61 6e 20 74  |d be more than t|
000017b0  77 69 63 65 20 61 73 20  6c 6f 6e 67 0a 69 66 20  |wice as long.if |
000017c0  77 65 20 68 61 64 20 74  6f 20 6d 61 6b 65 20 73  |we had to make s|
000017d0  70 65 63 69 61 6c 20 70  72 6f 76 69 73 69 6f 6e  |pecial provision|
000017e0  20 66 6f 72 20 73 71 75  61 72 65 73 20 6e 65 61  | for squares nea|
000017f0  72 20 74 68 65 20 65 64  67 65 20 6f 66 20 74 68  |r the edge of th|
00001800  65 20 70 6c 61 79 69 6e  67 0a 61 72 65 61 2e 20  |e playing.area. |
00001810  41 73 20 69 74 20 69 73  2c 20 73 75 72 72 6f 75  |As it is, surrou|
00001820  6e 64 69 6e 67 20 74 68  65 20 62 6f 78 20 6f 6e  |nding the box on|
00001830  20 74 68 72 65 65 20 73  69 64 65 73 20 28 74 68  | three sides (th|
00001840  65 20 62 6f 74 74 6f 6d  20 72 6f 77 20 41 25 28  |e bottom row A%(|
00001850  78 2c 30 29 0a 6c 69 65  73 20 6a 75 73 74 20 27  |x,0).lies just '|
00001860  62 65 6e 65 61 74 68 27  20 74 68 65 20 76 69 73  |beneath' the vis|
00001870  69 62 6c 65 20 72 6f 77  20 6f 6e 20 74 68 65 20  |ible row on the |
00001880  73 63 72 65 65 6e 29 20  77 69 74 68 20 68 6f 73  |screen) with hos|
00001890  74 69 6c 65 20 73 71 75  61 72 65 73 0a 6d 61 6b  |tile squares.mak|
000018a0  65 73 20 69 74 20 65 61  73 79 20 74 6f 20 63 68  |es it easy to ch|
000018b0  65 63 6b 20 66 6f 72 20  72 75 6e 73 20 77 69 74  |eck for runs wit|
000018c0  68 6f 75 74 20 68 61 76  69 6e 67 20 74 6f 20 77  |hout having to w|
000018d0  6f 72 72 79 20 61 62 6f  75 74 20 65 64 67 65 20  |orry about edge |
000018e0  65 66 66 65 63 74 73 2e  0a 0a 46 69 6e 61 6c 6c  |effects...Finall|
000018f0  79 20 69 74 20 73 68 6f  75 6c 64 20 62 65 20 6e  |y it should be n|
00001900  6f 74 65 64 20 74 68 61  74 20 69 66 20 79 6f 75  |oted that if you|
00001910  20 6d 61 6e 61 67 65 20  74 6f 20 6d 61 6b 65 20  | manage to make |
00001920  74 68 65 20 68 69 67 68  2d 73 63 6f 72 65 20 74  |the high-score t|
00001930  61 62 6c 65 2c 0a 45 53  43 41 50 45 69 6e 67 20  |able,.ESCAPEing |
00001940  66 6f 72 6d 20 74 68 65  20 67 61 6d 65 20 77 69  |form the game wi|
00001950  6c 6c 20 63 61 75 73 65  20 74 68 65 20 70 72 6f  |ll cause the pro|
00001960  67 72 61 6d 20 74 6f 20  61 74 74 65 6d 70 74 20  |gram to attempt |
00001970  74 6f 20 73 61 76 65 20  74 68 65 20 66 69 6c 65  |to save the file|
00001980  0a 27 48 69 53 63 6f 72  65 73 27 20 61 6e 64 20  |.'HiScores' and |
00001990  73 6f 20 74 68 65 20 64  69 73 63 20 73 68 6f 75  |so the disc shou|
000019a0  6c 64 20 62 65 20 6c 65  66 74 20 69 6e 20 74 68  |ld be left in th|
000019b0  65 20 64 72 69 76 65 20  77 68 69 6c 65 20 74 68  |e drive while th|
000019c0  65 20 67 61 6d 65 20 69  73 20 69 6e 0a 70 72 6f  |e game is in.pro|
000019d0  67 72 65 73 73 2e 0a 0a  4d 79 20 68 69 67 68 65  |gress...My highe|
000019e0  73 74 20 73 63 6f 72 65  20 69 73 20 31 30 33 38  |st score is 1038|
000019f0  20 2d 20 63 61 6e 20 61  6e 79 62 6f 64 79 20 62  | - can anybody b|
00001a00  65 61 74 20 74 68 61 74  3f 0a 0a 0a 0a           |eat that?....|
00001a0d