1 ' Memory
2 ' by James Church 3 ' Amstrad Action September 87 10 GOSUB 70 ' initialize 20 GOSUB 150 ' random selection 30 GOSUB 280 ' print board 40 GOSUB 360 ' play game 50 GOSUB 550 ' end of game 60 ERACE place$,char$: GOTO 10 70 ' intialize 80 RANDOMIZE TIME: PAPER 0: PEN 1 90 INK 0,0: INK 1,26: INK 2,6: BORDER 26 100 MODE 1: WINDOW#1,1,40,22,25 110 DIM char$(25),place$(10,5) 120 DEFINT a-z: turn=0: sc=0 130 FOR n=231 TO 255: char$(n-230)=CHR$(n): NEXT 140 RETURN 150 ' random selection 160 LOCATE 15,12: PRINT "Please wait" 170 FOR n=1 TO 25 180 x=RND*10: y=RND*5: IF x=0 OR y=0 THEN 180 190 z=RND*25: IF z=0 THEN 190 200 IF place$(x,y)<>"" THEN 180 210 IF char$(z)="" THEN 190 220 place$(x,y)=char$(z) 230 xx=RND*10: yy=RND*5: IF xx=0 OR yy=0 THEN 230 240 IF place$(xx,yy)<>"" THEN 230 250 place$(xx,yy)=char$(z): char$(z)="": NEXT n 260 SOUND 1,200,10,7: SOUND 2,300,10,1: SOUND 4,100,10,7 270 RETURN 280 'print board 290 CLS: c=1: FOR n=2 TO 40 STEP 4: LOCATE n,1 300 PRINT c: c=c+1: NEXT: LOCATE 37,1: PRINT 10 310 c=1: FOR n=2 TO 20 STEP 4: LOCATE 1,n 320 PRINT c: c=c+1: NEXT 330 FOR n=3 TO 40 STEP 4: FOR m=2 TO 20 STEP 4 340 LOCATE n,m: PRINT CHR$(143): NEXT m,n 350 RETURN 360 'play game 370 PEN#1,2: LOCATE 16,21: PRINT "Turns=";turn 380 LOCATE#1,1,1: PRINT#1, "Co-ordinates: " 390 CALL &BB03: INPUT#1,"Square 1 ";a,b 400 IF a>10 OR a<1 OR b>5 OR b<1 THEN 390 410 a1=(a*4)-1: b1=(b*4)-2: PAPER 1: PEN 0 420 LOCATE a1,b1: PRINT place$(a,b): PAPER 0: PEN 1 430 INPUT#1,"and square 2 ";c,d 440 IF c>10 OR c<1 OR d>5 OR d<1 THEN 430 450 CLS#1: c1=(c*4)-1: d1=(d*4)-2 460 PAPER 1: PEN 0: LOCATE c1,d1 470 PRINT place$(c,d): PAPER 0: PEN 1 480 IF place$(a,b)=place$(c,d) THEN sc=sc+1: GOTO 530 490 turn=turn+1 500 FOR n=1 TO 2000: NEXT 510 LOCATE a1,b1: PRINT CHR$(143): LOCATE c1,d1 520 PRINT CHR$(143): GOTO 370 530 'test to see if finished 540 IF sc=25 THEN RETURN ELSE GOTO 370 550 'end of game 560 CLS: LOCATE 14,2: PRINT "You've finished!" 570 IF hiturn=0 THEN hiturn=1000 580 IF hiturn>turn THEN hiturn=turn 590 LOCATE 13,5: PRINT "You took ";turn;" turns" 600 LOCATE 9,7: PRINT "Your best is ";hiturn;" turns" 610 LOCATE 11,20: PRINT "Another go?(Y/N) " 620 IF INKEY(43)<>-1 RETURN ELSE IF INKEY(46)<>-1 END 630 GOTO 620 |