ODD ONE OUT


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