Program listing on 48K Spectrum.
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 |
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". Miskox's suggested improvement was that you can now see the first letter of a pair immediatly after selecting it, even before the second letter of the pair is selected. I also succesively reduced the number of available lives down to 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.