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