Nine patterns are displayed on the screen and you are given only a few seconds to compare them and identify the odd one out.
A score sheet will be displayed, showing the number of puzzles completed, number correct and the time and average time taken.
How to play
Each of the patterns on the screen will be identified by a number, and you must key in the appropriate number as your guess.
If you get the answer wrong, you will be told the correct answer, to the accompaniment of a rather low pitched little tune. Get it right, however, and you will hear a pleasant little tune.
After each attempt you will be asked if you wish more (Y for Yes) or wish to stop (N for No).
Remember to press RETURN.
Programming hints
The filled triangles are drawn by MOVEing to one point, them MOVEing to another point, then drawing a line to a third point using PLOT 85, and this fills in the space between the first point and the line between the second and third points. This is done in the procedure PROC_PATTERN. The pattern is transferred across and down the screen by adding the appropriate XD or YD or both, depending on the position of the screen.
You could put some more triangles into each pattern by increasing the maximum value of VL in procedure PROC_PATTERN. You would also have to reDIMension arrays X, Y and C in line 30. Also the maximum value of I should be increased in line 230.
10 REM ODD ONE OUT 20 REM COPYRIGHT (C) G.LUDINSKI 1983 30 DIM X(4,3),Y(4,3),C(4) 40 MODE 5 50 NU=0:CR=0 60 TIME=0 70 CLS 80 NU=NU+1 90 PT=0 100 REM 110 REM DRAW FRAMEWORK 120 REM 130 GCOL0,2:COLOUR3 140 MOVE426,255:DRAW426,1023 150 MOVE852,255:DRAW852,1023 160 MOVE0,255:DRAW1279,255 170 MOVE0,510:DRAW1279,510 180 MOVE0,765:DRAW1279,765 190 REM 200 REM GENERATE SHAPES 210 REM 220 W=INT(RND(1)*6+1) 230 FORI=1TO4 240 C(I)=INT(RND(1)*3+1) 250 FORJ=1TO3 260 X(I,J)=INT(RND(1)*370+30) 270 Y(I,J)=INT(RND(1)*200+30) 280 NEXTJ 290 NEXTI 300 REM 310 REM DRAW PATTERNS 320 REM 330 FORJ=765TO255STEP-255 340 FORI=0TO852STEP426 350 PROC_PATTERN(I,J) 360 NEXTI 370 NEXTJ 380 REM 390 REM QUESTION 400 REM 410 PRINTTAB(0,25)"Which is different "; 420 VDU19,1,1;0;19,2,3;0;19,3,7;0;:I$= "":I=0 430 I$=INKEY$(0):IFI$="" AND I<800 THE N I=I+1:GOTO430 440 IF I$<>"" AND (I$<STR$(1) OR I$>ST R$(9)) THEN GOTO430 450 IF VAL(I$)=W THEN PRINT'"Yes, you' re right":SOUND1,-15,101,30:CR=CR+1:GOTO 470 460 PRINT'"No, ";W;" is different":SOU ND1,-15,73,10:SOUND1,-15,69,5 470 PRINT'"More (Y/N)"; 480 INPUTR$ 490 IF R$<>"N" THEN GOTO70 500 REM 510 REM SCORE SHEET 520 REM 530 CLS 540 PRINT:PRINT" Odd one out" 550 FOR I=1 TO 9:PRINT:NEXT I 560 PRINT:PRINT"Problems completed = " ;NU 570 TM=INT(TIME/100) 580 PRINT:PRINT"Problems correct = ";C R 590 PRINT:PRINT"Time taken = ";TM:PRIN T"secs" 600 IF CR<>0 THEN PRINT'"Time/problem = ";INT(TM/CR);" secs" 610 GOTO 750 620 REM 630 DEFPROC_PATTERN(XD,YD) 640 PT=PT+1 650 PRINTTAB(((20*XD)/1279)+1,31-(32*Y D)/1023);PT 660 H1=0:H2=0:H3=0 670 IF PT=W THEN H1=INT(RND(1)*25+10): H2=INT(RND(1)*25+10):H3=INT(RND(1)*25+10 ) 680 FORL=1TO4 690 GCOL0,C(L) 700 MOVE(X(L,1)+XD+H1),(Y(L,1)+YD+H1 ) 710 MOVE(X(L,2)+XD+H2),(Y(L,2)+YD+H1 ) 720 PLOT 85,(X(L,3)+XD+H3),(Y(L,3)+Y D-H1) 730 NEXTL 740 ENDPROC 750 REM END