Home » Personal collection » Acorn ADFS disks » Electron_User_Group » EUG_50.ADF » V/+SOLITA

V/+SOLITA

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 » Personal collection » Acorn ADFS disks » Electron_User_Group » EUG_50.ADF
Filename: V/+SOLITA
Read OK:
File size: 0B13 bytes
Load address: 56204556
Exec address: 4F532B2E
Duplicates

There are 2 duplicate copies of this file in the archive:

File contents
                               SOLITAIRE
                   by Dave Robinson and Roy Walmsley

SOLITAIRE is a computerised version of the one player game of the same
name. Rather than use the normal pegs and board, this version makes good
use of your Electron's graphics capabilities.
   The aim of the game is to finish with a single 'peg' in the centre of
the board, the only position at the start that is unoccupied by a peg.
Pegs are removed by hopping over them with other pegs. Moves can only be
made vertically or horizontally - not diagonally.
   The only legal move is to hop one peg over another into a hole. The
peg hopped over is then removed.
   Although this may sound easy, it is in fact very difficult! You tend
to end up with several pegs out on a limb, with no hope of removing 
them!
   In this Electron version, the pegs are in fact space invaders - all
the more reason to remove them! You hop an invader by moving a cursor
to it using the usual keys, and then hit the space bar. This 'picks up'
the invader. You then move the cursor to the target hole and press the
space bar again. If it is a legal move then the invader you have jumped
over is banished forever to the very darkest corners of your Electron's
memory.
   If you pick up an invader and then change your mind about the whole
move, you can reverse matters by simply returning it to its position and
pressing the space bar again.
   When you have won or (shame) you have moved all that you are able, 
the program will detect this and finish with a suitable congratulatory
or consolatory message.

Program notes
THE bulk of the game is in, or called from, PROCplay, at line 2020. This
procedure looks after the movement keys and calls another procedure,
PROCcursor, to move the cursor around the board. PROCcursor simply 
deletes the cursor in the old position, by printing a space, and dis-
plays the cursor in the new position. There is also a check to see if
you have tried to move the cursor off the edhe of the cross-shaped 
playing area (line 1790).
   The rest of PROCplay checks the state of the flag, up%. This reflects
whether you are in the middle of a 'hop' or just moving around the board
prior to one. Either of the procedures PROCpick and PROCputdown are 
called depending on ths flag.
   The procedure PROCcheck is called each time that PROCplay is executed
after a hop, to check if the game is over yet.
   You'll never find a more peaceful way to zap the aliens! Good luck.


SOLITAIRE is included on this disk by special request. Several versions
of the game exist; this one coming from ELBUG Magazine 2.2. Similarly,
these documents have also been reproduced from the accompanying article.
If you have a better version then submit it for inclusion in EUG #51.
                                                              (The) Dave
00000000  20 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 53  |               S|
00000020  4f 4c 49 54 41 49 52 45  0d 20 20 20 20 20 20 20  |OLITAIRE.       |
00000030  20 20 20 20 20 20 20 20  20 20 20 20 62 79 20 44  |            by D|
00000040  61 76 65 20 52 6f 62 69  6e 73 6f 6e 20 61 6e 64  |ave Robinson and|
00000050  20 52 6f 79 20 57 61 6c  6d 73 6c 65 79 0d 0d 53  | Roy Walmsley..S|
00000060  4f 4c 49 54 41 49 52 45  20 69 73 20 61 20 63 6f  |OLITAIRE is a co|
00000070  6d 70 75 74 65 72 69 73  65 64 20 76 65 72 73 69  |mputerised versi|
00000080  6f 6e 20 6f 66 20 74 68  65 20 6f 6e 65 20 70 6c  |on of the one pl|
00000090  61 79 65 72 20 67 61 6d  65 20 6f 66 20 74 68 65  |ayer game of the|
000000a0  20 73 61 6d 65 0d 6e 61  6d 65 2e 20 52 61 74 68  | same.name. Rath|
000000b0  65 72 20 74 68 61 6e 20  75 73 65 20 74 68 65 20  |er than use the |
000000c0  6e 6f 72 6d 61 6c 20 70  65 67 73 20 61 6e 64 20  |normal pegs and |
000000d0  62 6f 61 72 64 2c 20 74  68 69 73 20 76 65 72 73  |board, this vers|
000000e0  69 6f 6e 20 6d 61 6b 65  73 20 67 6f 6f 64 0d 75  |ion makes good.u|
000000f0  73 65 20 6f 66 20 79 6f  75 72 20 45 6c 65 63 74  |se of your Elect|
00000100  72 6f 6e 27 73 20 67 72  61 70 68 69 63 73 20 63  |ron's graphics c|
00000110  61 70 61 62 69 6c 69 74  69 65 73 2e 0d 20 20 20  |apabilities..   |
00000120  54 68 65 20 61 69 6d 20  6f 66 20 74 68 65 20 67  |The aim of the g|
00000130  61 6d 65 20 69 73 20 74  6f 20 66 69 6e 69 73 68  |ame is to finish|
00000140  20 77 69 74 68 20 61 20  73 69 6e 67 6c 65 20 27  | with a single '|
00000150  70 65 67 27 20 69 6e 20  74 68 65 20 63 65 6e 74  |peg' in the cent|
00000160  72 65 20 6f 66 0d 74 68  65 20 62 6f 61 72 64 2c  |re of.the board,|
00000170  20 74 68 65 20 6f 6e 6c  79 20 70 6f 73 69 74 69  | the only positi|
00000180  6f 6e 20 61 74 20 74 68  65 20 73 74 61 72 74 20  |on at the start |
00000190  74 68 61 74 20 69 73 20  75 6e 6f 63 63 75 70 69  |that is unoccupi|
000001a0  65 64 20 62 79 20 61 20  70 65 67 2e 0d 50 65 67  |ed by a peg..Peg|
000001b0  73 20 61 72 65 20 72 65  6d 6f 76 65 64 20 62 79  |s are removed by|
000001c0  20 68 6f 70 70 69 6e 67  20 6f 76 65 72 20 74 68  | hopping over th|
000001d0  65 6d 20 77 69 74 68 20  6f 74 68 65 72 20 70 65  |em with other pe|
000001e0  67 73 2e 20 4d 6f 76 65  73 20 63 61 6e 20 6f 6e  |gs. Moves can on|
000001f0  6c 79 20 62 65 0d 6d 61  64 65 20 76 65 72 74 69  |ly be.made verti|
00000200  63 61 6c 6c 79 20 6f 72  20 68 6f 72 69 7a 6f 6e  |cally or horizon|
00000210  74 61 6c 6c 79 20 2d 20  6e 6f 74 20 64 69 61 67  |tally - not diag|
00000220  6f 6e 61 6c 6c 79 2e 0d  20 20 20 54 68 65 20 6f  |onally..   The o|
00000230  6e 6c 79 20 6c 65 67 61  6c 20 6d 6f 76 65 20 69  |nly legal move i|
00000240  73 20 74 6f 20 68 6f 70  20 6f 6e 65 20 70 65 67  |s to hop one peg|
00000250  20 6f 76 65 72 20 61 6e  6f 74 68 65 72 20 69 6e  | over another in|
00000260  74 6f 20 61 20 68 6f 6c  65 2e 20 54 68 65 0d 70  |to a hole. The.p|
00000270  65 67 20 68 6f 70 70 65  64 20 6f 76 65 72 20 69  |eg hopped over i|
00000280  73 20 74 68 65 6e 20 72  65 6d 6f 76 65 64 2e 0d  |s then removed..|
00000290  20 20 20 41 6c 74 68 6f  75 67 68 20 74 68 69 73  |   Although this|
000002a0  20 6d 61 79 20 73 6f 75  6e 64 20 65 61 73 79 2c  | may sound easy,|
000002b0  20 69 74 20 69 73 20 69  6e 20 66 61 63 74 20 76  | it is in fact v|
000002c0  65 72 79 20 64 69 66 66  69 63 75 6c 74 21 20 59  |ery difficult! Y|
000002d0  6f 75 20 74 65 6e 64 0d  74 6f 20 65 6e 64 20 75  |ou tend.to end u|
000002e0  70 20 77 69 74 68 20 73  65 76 65 72 61 6c 20 70  |p with several p|
000002f0  65 67 73 20 6f 75 74 20  6f 6e 20 61 20 6c 69 6d  |egs out on a lim|
00000300  62 2c 20 77 69 74 68 20  6e 6f 20 68 6f 70 65 20  |b, with no hope |
00000310  6f 66 20 72 65 6d 6f 76  69 6e 67 20 0d 74 68 65  |of removing .the|
00000320  6d 21 0d 20 20 20 49 6e  20 74 68 69 73 20 45 6c  |m!.   In this El|
00000330  65 63 74 72 6f 6e 20 76  65 72 73 69 6f 6e 2c 20  |ectron version, |
00000340  74 68 65 20 70 65 67 73  20 61 72 65 20 69 6e 20  |the pegs are in |
00000350  66 61 63 74 20 73 70 61  63 65 20 69 6e 76 61 64  |fact space invad|
00000360  65 72 73 20 2d 20 61 6c  6c 0d 74 68 65 20 6d 6f  |ers - all.the mo|
00000370  72 65 20 72 65 61 73 6f  6e 20 74 6f 20 72 65 6d  |re reason to rem|
00000380  6f 76 65 20 74 68 65 6d  21 20 59 6f 75 20 68 6f  |ove them! You ho|
00000390  70 20 61 6e 20 69 6e 76  61 64 65 72 20 62 79 20  |p an invader by |
000003a0  6d 6f 76 69 6e 67 20 61  20 63 75 72 73 6f 72 0d  |moving a cursor.|
000003b0  74 6f 20 69 74 20 75 73  69 6e 67 20 74 68 65 20  |to it using the |
000003c0  75 73 75 61 6c 20 6b 65  79 73 2c 20 61 6e 64 20  |usual keys, and |
000003d0  74 68 65 6e 20 68 69 74  20 74 68 65 20 73 70 61  |then hit the spa|
000003e0  63 65 20 62 61 72 2e 20  54 68 69 73 20 27 70 69  |ce bar. This 'pi|
000003f0  63 6b 73 20 75 70 27 0d  74 68 65 20 69 6e 76 61  |cks up'.the inva|
00000400  64 65 72 2e 20 59 6f 75  20 74 68 65 6e 20 6d 6f  |der. You then mo|
00000410  76 65 20 74 68 65 20 63  75 72 73 6f 72 20 74 6f  |ve the cursor to|
00000420  20 74 68 65 20 74 61 72  67 65 74 20 68 6f 6c 65  | the target hole|
00000430  20 61 6e 64 20 70 72 65  73 73 20 74 68 65 0d 73  | and press the.s|
00000440  70 61 63 65 20 62 61 72  20 61 67 61 69 6e 2e 20  |pace bar again. |
00000450  49 66 20 69 74 20 69 73  20 61 20 6c 65 67 61 6c  |If it is a legal|
00000460  20 6d 6f 76 65 20 74 68  65 6e 20 74 68 65 20 69  | move then the i|
00000470  6e 76 61 64 65 72 20 79  6f 75 20 68 61 76 65 20  |nvader you have |
00000480  6a 75 6d 70 65 64 0d 6f  76 65 72 20 69 73 20 62  |jumped.over is b|
00000490  61 6e 69 73 68 65 64 20  66 6f 72 65 76 65 72 20  |anished forever |
000004a0  74 6f 20 74 68 65 20 76  65 72 79 20 64 61 72 6b  |to the very dark|
000004b0  65 73 74 20 63 6f 72 6e  65 72 73 20 6f 66 20 79  |est corners of y|
000004c0  6f 75 72 20 45 6c 65 63  74 72 6f 6e 27 73 0d 6d  |our Electron's.m|
000004d0  65 6d 6f 72 79 2e 0d 20  20 20 49 66 20 79 6f 75  |emory..   If you|
000004e0  20 70 69 63 6b 20 75 70  20 61 6e 20 69 6e 76 61  | pick up an inva|
000004f0  64 65 72 20 61 6e 64 20  74 68 65 6e 20 63 68 61  |der and then cha|
00000500  6e 67 65 20 79 6f 75 72  20 6d 69 6e 64 20 61 62  |nge your mind ab|
00000510  6f 75 74 20 74 68 65 20  77 68 6f 6c 65 0d 6d 6f  |out the whole.mo|
00000520  76 65 2c 20 79 6f 75 20  63 61 6e 20 72 65 76 65  |ve, you can reve|
00000530  72 73 65 20 6d 61 74 74  65 72 73 20 62 79 20 73  |rse matters by s|
00000540  69 6d 70 6c 79 20 72 65  74 75 72 6e 69 6e 67 20  |imply returning |
00000550  69 74 20 74 6f 20 69 74  73 20 70 6f 73 69 74 69  |it to its positi|
00000560  6f 6e 20 61 6e 64 0d 70  72 65 73 73 69 6e 67 20  |on and.pressing |
00000570  74 68 65 20 73 70 61 63  65 20 62 61 72 20 61 67  |the space bar ag|
00000580  61 69 6e 2e 0d 20 20 20  57 68 65 6e 20 79 6f 75  |ain..   When you|
00000590  20 68 61 76 65 20 77 6f  6e 20 6f 72 20 28 73 68  | have won or (sh|
000005a0  61 6d 65 29 20 79 6f 75  20 68 61 76 65 20 6d 6f  |ame) you have mo|
000005b0  76 65 64 20 61 6c 6c 20  74 68 61 74 20 79 6f 75  |ved all that you|
000005c0  20 61 72 65 20 61 62 6c  65 2c 20 0d 74 68 65 20  | are able, .the |
000005d0  70 72 6f 67 72 61 6d 20  77 69 6c 6c 20 64 65 74  |program will det|
000005e0  65 63 74 20 74 68 69 73  20 61 6e 64 20 66 69 6e  |ect this and fin|
000005f0  69 73 68 20 77 69 74 68  20 61 20 73 75 69 74 61  |ish with a suita|
00000600  62 6c 65 20 63 6f 6e 67  72 61 74 75 6c 61 74 6f  |ble congratulato|
00000610  72 79 0d 6f 72 20 63 6f  6e 73 6f 6c 61 74 6f 72  |ry.or consolator|
00000620  79 20 6d 65 73 73 61 67  65 2e 0d 0d 50 72 6f 67  |y message...Prog|
00000630  72 61 6d 20 6e 6f 74 65  73 0d 54 48 45 20 62 75  |ram notes.THE bu|
00000640  6c 6b 20 6f 66 20 74 68  65 20 67 61 6d 65 20 69  |lk of the game i|
00000650  73 20 69 6e 2c 20 6f 72  20 63 61 6c 6c 65 64 20  |s in, or called |
00000660  66 72 6f 6d 2c 20 50 52  4f 43 70 6c 61 79 2c 20  |from, PROCplay, |
00000670  61 74 20 6c 69 6e 65 20  32 30 32 30 2e 20 54 68  |at line 2020. Th|
00000680  69 73 0d 70 72 6f 63 65  64 75 72 65 20 6c 6f 6f  |is.procedure loo|
00000690  6b 73 20 61 66 74 65 72  20 74 68 65 20 6d 6f 76  |ks after the mov|
000006a0  65 6d 65 6e 74 20 6b 65  79 73 20 61 6e 64 20 63  |ement keys and c|
000006b0  61 6c 6c 73 20 61 6e 6f  74 68 65 72 20 70 72 6f  |alls another pro|
000006c0  63 65 64 75 72 65 2c 0d  50 52 4f 43 63 75 72 73  |cedure,.PROCcurs|
000006d0  6f 72 2c 20 74 6f 20 6d  6f 76 65 20 74 68 65 20  |or, to move the |
000006e0  63 75 72 73 6f 72 20 61  72 6f 75 6e 64 20 74 68  |cursor around th|
000006f0  65 20 62 6f 61 72 64 2e  20 50 52 4f 43 63 75 72  |e board. PROCcur|
00000700  73 6f 72 20 73 69 6d 70  6c 79 20 0d 64 65 6c 65  |sor simply .dele|
00000710  74 65 73 20 74 68 65 20  63 75 72 73 6f 72 20 69  |tes the cursor i|
00000720  6e 20 74 68 65 20 6f 6c  64 20 70 6f 73 69 74 69  |n the old positi|
00000730  6f 6e 2c 20 62 79 20 70  72 69 6e 74 69 6e 67 20  |on, by printing |
00000740  61 20 73 70 61 63 65 2c  20 61 6e 64 20 64 69 73  |a space, and dis|
00000750  2d 0d 70 6c 61 79 73 20  74 68 65 20 63 75 72 73  |-.plays the curs|
00000760  6f 72 20 69 6e 20 74 68  65 20 6e 65 77 20 70 6f  |or in the new po|
00000770  73 69 74 69 6f 6e 2e 20  54 68 65 72 65 20 69 73  |sition. There is|
00000780  20 61 6c 73 6f 20 61 20  63 68 65 63 6b 20 74 6f  | also a check to|
00000790  20 73 65 65 20 69 66 0d  79 6f 75 20 68 61 76 65  | see if.you have|
000007a0  20 74 72 69 65 64 20 74  6f 20 6d 6f 76 65 20 74  | tried to move t|
000007b0  68 65 20 63 75 72 73 6f  72 20 6f 66 66 20 74 68  |he cursor off th|
000007c0  65 20 65 64 68 65 20 6f  66 20 74 68 65 20 63 72  |e edhe of the cr|
000007d0  6f 73 73 2d 73 68 61 70  65 64 20 0d 70 6c 61 79  |oss-shaped .play|
000007e0  69 6e 67 20 61 72 65 61  20 28 6c 69 6e 65 20 31  |ing area (line 1|
000007f0  37 39 30 29 2e 0d 20 20  20 54 68 65 20 72 65 73  |790)..   The res|
00000800  74 20 6f 66 20 50 52 4f  43 70 6c 61 79 20 63 68  |t of PROCplay ch|
00000810  65 63 6b 73 20 74 68 65  20 73 74 61 74 65 20 6f  |ecks the state o|
00000820  66 20 74 68 65 20 66 6c  61 67 2c 20 75 70 25 2e  |f the flag, up%.|
00000830  20 54 68 69 73 20 72 65  66 6c 65 63 74 73 0d 77  | This reflects.w|
00000840  68 65 74 68 65 72 20 79  6f 75 20 61 72 65 20 69  |hether you are i|
00000850  6e 20 74 68 65 20 6d 69  64 64 6c 65 20 6f 66 20  |n the middle of |
00000860  61 20 27 68 6f 70 27 20  6f 72 20 6a 75 73 74 20  |a 'hop' or just |
00000870  6d 6f 76 69 6e 67 20 61  72 6f 75 6e 64 20 74 68  |moving around th|
00000880  65 20 62 6f 61 72 64 0d  70 72 69 6f 72 20 74 6f  |e board.prior to|
00000890  20 6f 6e 65 2e 20 45 69  74 68 65 72 20 6f 66 20  | one. Either of |
000008a0  74 68 65 20 70 72 6f 63  65 64 75 72 65 73 20 50  |the procedures P|
000008b0  52 4f 43 70 69 63 6b 20  61 6e 64 20 50 52 4f 43  |ROCpick and PROC|
000008c0  70 75 74 64 6f 77 6e 20  61 72 65 20 0d 63 61 6c  |putdown are .cal|
000008d0  6c 65 64 20 64 65 70 65  6e 64 69 6e 67 20 6f 6e  |led depending on|
000008e0  20 74 68 73 20 66 6c 61  67 2e 0d 20 20 20 54 68  | ths flag..   Th|
000008f0  65 20 70 72 6f 63 65 64  75 72 65 20 50 52 4f 43  |e procedure PROC|
00000900  63 68 65 63 6b 20 69 73  20 63 61 6c 6c 65 64 20  |check is called |
00000910  65 61 63 68 20 74 69 6d  65 20 74 68 61 74 20 50  |each time that P|
00000920  52 4f 43 70 6c 61 79 20  69 73 20 65 78 65 63 75  |ROCplay is execu|
00000930  74 65 64 0d 61 66 74 65  72 20 61 20 68 6f 70 2c  |ted.after a hop,|
00000940  20 74 6f 20 63 68 65 63  6b 20 69 66 20 74 68 65  | to check if the|
00000950  20 67 61 6d 65 20 69 73  20 6f 76 65 72 20 79 65  | game is over ye|
00000960  74 2e 0d 20 20 20 59 6f  75 27 6c 6c 20 6e 65 76  |t..   You'll nev|
00000970  65 72 20 66 69 6e 64 20  61 20 6d 6f 72 65 20 70  |er find a more p|
00000980  65 61 63 65 66 75 6c 20  77 61 79 20 74 6f 20 7a  |eaceful way to z|
00000990  61 70 20 74 68 65 20 61  6c 69 65 6e 73 21 20 47  |ap the aliens! G|
000009a0  6f 6f 64 20 6c 75 63 6b  2e 0d 0d 0d 53 4f 4c 49  |ood luck....SOLI|
000009b0  54 41 49 52 45 20 69 73  20 69 6e 63 6c 75 64 65  |TAIRE is include|
000009c0  64 20 6f 6e 20 74 68 69  73 20 64 69 73 6b 20 62  |d on this disk b|
000009d0  79 20 73 70 65 63 69 61  6c 20 72 65 71 75 65 73  |y special reques|
000009e0  74 2e 20 53 65 76 65 72  61 6c 20 76 65 72 73 69  |t. Several versi|
000009f0  6f 6e 73 0d 6f 66 20 74  68 65 20 67 61 6d 65 20  |ons.of the game |
00000a00  65 78 69 73 74 3b 20 74  68 69 73 20 6f 6e 65 20  |exist; this one |
00000a10  63 6f 6d 69 6e 67 20 66  72 6f 6d 20 45 4c 42 55  |coming from ELBU|
00000a20  47 20 4d 61 67 61 7a 69  6e 65 20 32 2e 32 2e 20  |G Magazine 2.2. |
00000a30  53 69 6d 69 6c 61 72 6c  79 2c 0d 74 68 65 73 65  |Similarly,.these|
00000a40  20 64 6f 63 75 6d 65 6e  74 73 20 68 61 76 65 20  | documents have |
00000a50  61 6c 73 6f 20 62 65 65  6e 20 72 65 70 72 6f 64  |also been reprod|
00000a60  75 63 65 64 20 66 72 6f  6d 20 74 68 65 20 61 63  |uced from the ac|
00000a70  63 6f 6d 70 61 6e 79 69  6e 67 20 61 72 74 69 63  |companying artic|
00000a80  6c 65 2e 0d 49 66 20 79  6f 75 20 68 61 76 65 20  |le..If you have |
00000a90  61 20 62 65 74 74 65 72  20 76 65 72 73 69 6f 6e  |a better version|
00000aa0  20 74 68 65 6e 20 73 75  62 6d 69 74 20 69 74 20  | then submit it |
00000ab0  66 6f 72 20 69 6e 63 6c  75 73 69 6f 6e 20 69 6e  |for inclusion in|
00000ac0  20 45 55 47 20 23 35 31  2e 0d 20 20 20 20 20 20  | EUG #51..      |
00000ad0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00000b00  20 20 20 20 20 20 20 20  28 54 68 65 29 20 44 61  |        (The) Da|
00000b10  76 65 0d                                          |ve.|
00000b13
V/+SOLITA.m0
V/+SOLITA.m1
V/+SOLITA.m2
V/+SOLITA.m4
V/+SOLITA.m5