HEXAGON PUZZLE


You are really up against the clock on this one as you must solve as many puzzles as possible, in just 200 seconds. A series of numbers, or letters, will be positioned around five of the sides of a hexagon and you will be asked to provide the missing letter or number. The relationship between the numbers or letters may be with their corresponding number or letter on the opposite side of the hexagon, or it may follow in sequence from an adjacent number.

The decision is yours.


How to play

Key in the number, or letter, of your choice and press RETURN key.

Programming hints

The program has a tuner that displays the time in seconds on the screen while the computer is waiting for the player to key in something. This is a very useful facility and is done by setting the system variable TIME to zero at the start of the program. Time will then hold the time in seconds multiplied by 100. This can be displayed on occasions throughout the program but is more effective being displayed constantly, especially when the program is waiting for the player to key in something. This is done by using INKEY$(10) in a loop which keeps checking if a key has been pressed and if it has not, it displays the time (see line 470). When a key has been found to be pressed, the program waits for the rest of the digits to be keyed and knows you have finished when the return key is pressed, i.e. GET$=CHR$(13).

One change to make the puzzle easier, is to reduce the size of the numbers used. S(2) on line 150 is the value of the first number in the sequence if the pattern is a sequence of numbers going round the hexagon. IC on line 160 is related to the interval between the numbers going round the hexagon. So if the 9 in line 150 is changed to a smaller number and IC is always 1 this will make the puzzle easier.

If you wish to make the puzzle more difficult (and you must be brave or a genius to want to do so), then you could either increase the possible values of S(2) or IC or increase the number of different types of sequence. At present there are five different types of sequences depending on whether W is 0 to 4. If you allow W to become 5 or larger in line 170, you could add a new sequence for W=5 after line 230.

   10 REM HEXAGON PUZZLE
   20 REM COPYRIGHT (C) G.LUDINSKI 1983
   30 MODE 4
   40 DIM S(8),IP$(255)
   50 CLS
   60 VDU23,224,0,1,2,4,136,80,32,0
   70 TE=0:CR=0:TIME=0
   80 CLS
   90 TE=TE+1
  100 IF TE=11 OR TIME >=20000 THEN GOTO
 670
  110 REM
  120 REM WORK OUT SEQUENCE
  130 REM
  140 S(1)=0
  150 S(2)=INT(RND(1)*9+1)
  160 IC=INT(RND(1)*4+1)
  170 W=INT(RND(1)*5)
  180 FOR I=3 TO 8
  190 IF W=0 THEN S(I)=2*S(I-1)-S(I-2)+I
C:MS$="The interval increases by "+STR$(
IC)+" each time"
  200 IF W=1 THEN S(I)=S(I-1)-S(I-2)+IC:
MS$="Each number is the sum of the previ
ous  two plus "+STR$(IC)
  210 IF W=2 THEN S(I)=S(2)^(I-1):MS$="E
ach number is "+STR$(S(2))+" to the powe
r of 2,3,4, 5,6 and 7"
  220 IF W=3 AND I > 5 THEN S(3)=S(2):S(
4)=IC:S(5)=INT((S(2)+IC)/2):S(I)=S(2)*S(
I-3):MS$="Each number is "+STR$(S(2))+" 
times the number       opposite it"
  230 IF W=4 AND I > 5 THEN S(3)=S(2):S(
4)=IC:S(5)=INT((S(2)+IC)/2):S(I)=IC*S(11
-I):MS$="The numbers on the left hand si
de of thewheel are "+STR$(IC)+" times th
e numbers on the    right hand side"
  240 NEXTI
  250 FORI=1TO13:PRINT:NEXTI
  260 REM
  270 REM DISPLAY NUMBER WHEEL
  280 REM
  290 X1=640:Y1=704
  300 X2=X1+259.81:Y2=Y1+150:Y3=Y1-150:X
3=X1-259.81
  310 MOVE X1,Y1+300
  320 DRAW X2,Y2
  330 DRAW X2,Y3
  340 DRAW X1,Y1-300
  350 DRAW X3,Y3
  360 DRAW X3,Y2
  370 DRAW X1,Y1+300
  380 DRAW X1,Y1-300
  390 MOVE X2,Y2:DRAW X3,Y3
  400 MOVE X2,Y3:DRAW X3,Y2
  410 IF S(8) > 26 THEN LE=0:PRINTTAB(21
,5);S(3):PRINTTAB(23,10);S(4):PRINTTAB(2
1,14);S(5):PRINTTAB(14,14);S(6):PRINTTAB
(12,10);S(7)
  420 IF S(8) <= 26 THEN LE=1:PRINTTAB(2
1,5);CHR$(64+S(3)):PRINTTAB(23,10);CHR$(
64+S(4)):PRINTTAB(21,14);CHR$(64+S(5)):P
RINTTAB(18,14);CHR$(64+S(6)):PRINTTAB(16
,10);CHR$(64+S(7))
  430 REM
  440 REM INPUT ANSWER
  450 REM
  460 IX=1
  470 IP$(IX)=INKEY$(10):IF IP$(IX)="" T
HEN PRINTTAB(0,1);INT(TIME/100):GOTO 470
  480 PRINTTAB(IX+13,5);IP$(IX);:IX=IX+1
:IP$(IX)=GET$:IF IP$(IX) <> CHR$(13) THE
N GOTO 480
  490 I$="":FOR I=1 TO IX-1:I$=I$+IP$(I)
:NEXTI
  500 REM
  510 REM CHECK ANSWER
  520 REM
  530 *FX 15,1
  540 IF LE=0 AND ABS(VAL(I$) - S(8)) <=
 LEN(I$)/2 THEN COLOUR1:VDU8:PRINTTAB(19
,5);CHR$(224):CR=CR+1:COLOUR3:GOTO 610
  550 IF LE=1 AND (I$=CHR$(64+S(8)) OR I
$=CHR$(65+S(8))) THEN COLOUR1:VDU8:PRINT
TAB(19,5);CHR$(224):CR=CR+1:COLOUR3:GOTO
610
  560 PRINTTAB(0,21)"No, the answer = ";
  570 IF LE=0 THEN PRINT S(8)
  580 IF LE=1 THEN PRINT CHR$(64+S(8))
  590 IF LE=1 THEN PRINT'"Replace each l
etter by its position     number e.g. 1 
for A, 2 for B etc."
  600 PRINT:PRINT MS$
  610 PRINTTAB(0,30)"Press <RETURN> to c
ontinue"
  620 REPEATUNTILGET=13
  630 GOTO80
  640 REM
  650 REM SCORE SHEET
  660 REM
  670 CLS:PRINT
  680 PRINT"Number of puzzles completed 
= ";TE
  690 PRINT'"Number correct = ";CR
  700 PRINT'"Time taken = ";INT(TIME/100
);" seconds"
  710 IQ=INT(CR*100/5.3)
  720 PRINT'"Your IQ level (numeracy) = 
";IQ
  730 PRINT
  740 IF CR >= 7 THEN PRINT"This is clas
sed as SUPERIOR (upper 10%)":GOTO770
  750 IF CR = 6 THEN PRINT"This is class
ed as GOOD (upper 20%)":GOTO770
  760 IF CR = 5 THEN PRINT"This is class
ed as FAIR (upper 60%)"
  770 REM