In the popular game of
Boggle, each of 16 dice has six different letters (QU substitutes for a single letter on one cube face) on it. The dice are shaken and fall into a 4x4 square, so that one letter on each cube shows. Players have three minutes to form as many words of length three or longer by moving from letter to adjacent letter either vertically, horizontally, or diagonally. In this game, players may return to a letter in forming a word but may not pause on a letter. Given the sample board:
F B U P
T M E O
R S H I
E T B W
possible words are POEM, PESTER, HOPE, THEME, and RESETS, but not MESS.
In a recent game of Boggle, Chad and his dad formed the words given in the clues below, as well as many others. The following observations were made:
-
Both Chad and his dad got the words AGE and PINT, each of which showed up on the board in a straight line.
-
Chad scored big points by making FRAGMENT and PALACE, neither of which his father had on this final word list.
-
Dad scored points with CHORAL, which Chad didn't see.
Both players anagrammed FAINT and ARCHLY from the board.
-
Both formed COMET, starting with a horizontal move from C to O.
-
The letter W was in the upper lefthand corner of the 4x4 square.
Reconstruct the arrangement of the top dice letters that showed on their game board.
(puzzle originally from www.allstarpuzzles.com)
Other (besides fragment) words of 8 letters or more that can be found in the solution grid are:
10: acromegaly, engagement, engraining, frangipane, frangipani, ingraining
9: centenary, garagemen
8: arginine, carapace, engaging, engining, flagrant, flanging, fragrant, garaging, graining, integral, morainal, tenement, alanine
found by:
DECLARE SUB searchGrid (row!, col!, w$, posn!)
DIM SHARED grid$(4, 4)
DATA wmet,ocgn,hrai,ylfp
FOR row = 1 TO 4
READ r$
FOR col = 1 TO 4
grid$(row, col) = MID$(r$, col, 1)
NEXT
NEXT
OPEN "\words\words.txt" FOR INPUT AS #1
OPEN "bogwords.txt" FOR OUTPUT AS #2
DO
LINE INPUT #1, w$
IF LEN(w$) > 2 THEN
FOR row = 1 TO 4
FOR col = 1 TO 4
IF grid$(row, col) = LEFT$(w$, 1) THEN
searchGrid row, col, w$, 2
END IF
NEXT
NEXT
END IF
LOOP UNTIL EOF(1)
CLOSE
END
SUB searchGrid (row, col, w$, posn)
FOR r = row - 1 TO row + 1
IF r > 0 AND r < 5 THEN
FOR c = col - 1 TO col + 1
IF c > 0 AND c < 5 THEN
IF row <> r OR col <> c THEN
IF MID$(w$, posn, 1) = grid$(r, c) THEN
IF posn = LEN(w$) THEN
PRINT w$
PRINT #2, USING "### &"; LEN(w$); w$
ELSE
searchGrid r, c, w$, posn + 1
END IF
END IF
END IF
END IF
NEXT
END IF
NEXT
END SUB
|
Posted by Charlie
on 2003-06-11 05:23:54 |