5 KEY(10) ON:ON KEY(10) GOSUB 600:KEY(9) ON:ON KEY(9) GOSUB 700:DIM A(18):FOR I=1 TO 18:A(I)=I:NEXT I
10 CLS:R=0:N=0:GOSUB 59980:FOR I=1 TO 100:SWAP A(INT(RND*18+1)),A(INT(RND*18+1)):NEXT I
20 CLS:LOCATE 1,34:COLOR 0,15:PRINT" IQ Builder ":COLOR 15,0
30 LOCATE 2,34:PRINT"Analogies 3":COLOR 7,0
40 XX=1:C=A(XX):R=0:N=0
50 RESTORE:IF C>1 THEN FOR L=1 TO C-1:FOR X=1 TO 10:READ A$:NEXT X,L
60 GOSUB 7000
70 READ A$,B$
80 PRINT:PRINT"Problem" C
90 PRINT:PRINT"Complete the second analogy so that it is most like the first:"
100 PRINT:PRINT A$ " is to " B$ " as":PRINT
110 READ A$:PRINT A$ " is to which of these:"
120 FOR X=1 TO 5:PRINT"(";:COLOR 15:PRINT X;:COLOR 7:PRINT") ";:READ A$:PRINTA$:NEXT X
130 READ K, A$
140 BEEP:LOCATE 25,1:PRINT"Your choice is - ";:N=N+1:Z=Z+1
150 GOSUB 59990:IF INSTR("12345",IKEY$)=0 THEN 150 ELSE A=VAL(IKEY$)
160 IF (A<>K)*(Z>1) THEN PLAY "mbn50n25":LOCATE 25,1:PRINT SPC(79);:LOCATE 25,1:PRINT"No! The answer was " K ".";:TIMEOUT=3:GOSUB 59950:LOCATE 25,1:PRINT SPC(79);:GOTO 200
170 IF (A=K)*(Z=1) THEN PLAY "mbc16c16c16ge8g":LOCATE 25,1:PRINT SPC(79);:LOCATE 25,1:PRINT"Correct!";:TIMEOUT=3:GOSUB 59950:LOCATE 25,1:PRINT SPC(79);:R=R+1:GOTO 200
180 IF (A=K)*(Z>1) THEN PLAY "mbc16c16c16ge8g":LOCATE 25,1:PRINT SPC(79);:LOCATE 25,1:PRINT"Right...";:TIMEOUT=3:GOSUB 59950:LOCATE 25,1:PRINT SPC(79);:R=R+0.7:GOTO 200
190 PLAY "mbn50n25":LOCATE 25,1:PRINT SPC(79);:LOCATE 25,1:PRINT"No, but here is a hint: " A$;:TIMEOUT=3:GOSUB 59950:LOCATE 25,1:PRINT SPC(79);:GOTO 140
200 XX=XX+1:Z=0
210 IF XX<18 THEN C=A(XX):GOTO 50
220 GOSUB 7000:PRINT"You scored" R "right out of" N " or" INT(100*R/N) "percent."
230 IF R/N<0.6 THEN PRINT"Why don't you look at this program again.":TIMEOUT=3:GOSUB 59950:RUN
240 IF R/N<=0.8 THEN PRINT"Good score"
250 IF R/N<=0.9 THEN PRINT"Excellent!"
260 IF R/N>0.9 THEN PRINT"100 percent! What else can I say!!"
270 TIMEOUT=3:GOSUB 59950:GOTO 700
600 RUN "iqbuild"
700 CHAIN MERGE "analog4",5
5500 DATA cat, kitten, lion, tiger, lioness, baby, young, cub, 5, parent to offspring