Memory

In-game screen.

Program listing on 48K Spectrum.

Text Listing

1 BORDER 0:
 POKE 23693,6:
 CLS :
 RANDOMIZE :
 DIM c(52):
 FOR b=0 TO 51:
 PRINT INK 7;AT INT (b/10)*3+1,3*b-30*INT (b/10);b+1:
 LET f=.5+RND*(b+1):
 LET c(b+1)=c(f):
 LET c(f)=65+INT (b/2):
 NEXT b:
 LET t=0:
 LET l=36:
 PRINT INK 5;AT 21,0;"Lives:";l,"Score:";t;"  Won!" AND t=26,:
 LET f=f=0:
 IF l*(t<26) THEN INPUT STR$ b+CHR$ 6 AND f;a:
 POKE (a<1 OR a>52 OR a=b*f)*23620,16:
 POKE (c(a)=0)*23620,16:
 RESTORE :
 READ q,r,w,v,y,x,m,s,c(a),c(b),l,t,b:
 PRINT INVERSE m;AT w*3,v*3;CHR$ q;AT y*3,x*3;CHR$ r AND m:
 BEEP f/2,24*m-12:
 FOR d=1 TO 150*f:
 NEXT d:
 PRINT OVER f=m;AT w*3,v*3;" ";AT y*3,x*3;" ":
 POKE 23620,14:
 DATA c(a),c(b),INT (a/10-.1),a-10*w-1,INT (b/10-.1),b-10*y-1,q=r*f,m=0,s*q,s*r,l-s*f,t+m,a

Instructions

Your goal is to find matching pairs of hidden letters until every matched pair is found. There are 52 letters comprising of two scrambled alphabets arranged in a numbered grid. To select a pair of letters, input a pair of numbers between 1 and 52, pressing ENTER after each number. If the pair of selected letters matches then the score will increase by one, and the letters will be permanently displayed in INVERSE video. Otherwise, the number of lives will decrease by one, and the letters will be hidden again after a pause of a couple of seconds.

The game ends when either there are no lives left (game lost), or all pairs have been found yielding a score of 26 points (game won). The initial number of available lives is 36, which makes the game challenging to a first time player, but not too difficult. More experienced players should focus on preserving a high number of lives on completion.

Credits

The development of this game (again a collaboration between Digital Prawn and Einar Saukas) has a long history of many different revisions and optimisations. The version finally settled on was due to alterations based on user feedback from World of Spectrum forum member "miskox", whose main suggestion was to show the first letter of a pair immediatly after selecting it, even before the second letter of the pair is selected.

Back to documentation index