10 REM *Simon By Alistair Young (13)*
20 INK 0,0:PAPER 0:BORDER 0:INK 1,3:INK 2,9:INK 3,1:INK 4,13:INK 5,26:MODE 0:CLS:PEN 5:LOCATE 6,25:PRINT"Please Wait":x=320:y=300:r=75:c=1:GOSUB 90:x=320:y=100:r=75:c=2:GOSUB 90:x=150:y=200:r=75:c=3:GOSUB 90:x=488:y=200:r=75:c=4:GOSUB 90
30 LOCATE 6,25:PRINT SPACE$(11):ik(1)=6:ik(2)=18:ik(3)=20:ik(4)=26:oik(1)=3:oik(2)=9:oik(3)=1:oik(4)=13:LOCATE 2,1:PRINT"SIMON By A. Young"
40 n=INT(RND*4)+1:n$=STR$(n):n$=RIGHT$(n$,LEN(n$)-1):seq$=seq$+n$:ln=LEN(seq$):FOR a=1 TO ln:s=VAL(MID$(seq$,a,1)):INK s,ik(s):FOR p=1 TO 100:SOUND 1,500-s*100,1,15:NEXT:SOUND 1,0,1,0:INK s,oik(s):NEXT:at=1:WHILE INKEY$<>"":WEND
50 a=0:WHILE a<1 OR a>4:a=ASC(INKEY$+" ")-239:WEND:a$=STR$(a):a$=RIGHT$(a$,LEN(a$)-1):INK a,ik(a):FOR p=1 TO 100:SOUND 1,500-a*100,1,15:NEXT:INK a,oik(a):SOUND 1,0,1,0:IF a$<>MID$(seq$,at,1) THEN GOTO 70
60 IF at=ln THEN FOR z=100 TO 1 STEP -1:SOUND 1,z,1,15:NEXT:GOTO 40 ELSE at=at+1:GOTO 50
70 FOR n=1 TO 100:SOUND 1,n,1,15:NEXT:LOCATE 1,25:PRINT SPACE$(20);:LOCATE 1,25:PEN 5:PRINT"No! The sequence is:";:FOR a=1 TO ln:s=VAL(MID$(seq$,a,1)):INK s,ik(s):FOR p=1 TO 100:SOUND 1,500-s*100,1,15:NEXT:INK s,oik(s):SOUND 1,0,1,0:NEXT
80 LOCATE 1,25:PRINT SPACE$(20);:LOCATE 1,25:PRINT"You scored:";ln-1:WHILE INKEY(47)<>0:WEND:CLEAR:LOCATE 1,25:PRINT SPACE$(20);:GOTO 30
90 FOR i=-r TO r STEP 2:h=SQR(r*r-i*i):MOVE x-h,i+y:DRAW x+h,i+y,c:NEXT:RETURN