Complete the eight words using each of the 26 letters of the alphabet exactly once.
+---+---+---+---+---+---+---+---+
| ? | A | ? | E | R | I | ? | ? |
+---+---+---+---+---+---+---+---+
+---+---+---+---+---+---+
| ? | U | ? | ? | ? | E |
+---+---+---+---+---+---+
+---+---+---+---+---+
| ? | I | ? | ? | E |
+---+---+---+---+---+
+---+---+---+---+---+---+
| ? | ? | L | ? | E | R |
+---+---+---+---+---+---+
+---+---+---+---+
| ? | I | ? | ? |
+---+---+---+---+
+---+---+---+---+
| ? | ? | A | P |
+---+---+---+---+
+---+---+---+---+---+---+
| B | R | ? | ? | ? | N |
+---+---+---+---+---+---+
+---+---+---+---+---+---+---+
| ? | O | L | ? | ? | A | ? |
+---+---+---+---+---+---+---+
*** Proper nouns, acronyms or abbreviations are not allowed.
The bug was that all the letters of each new word under consideration were checked to make sure that none of them was used previously to fill in a ? (or hyphen in my coding scheme):
FOR i = 1 TO LEN(w$)
ch$ = MID$(w$, i, 1)
IF MID$(proto(n), i, 1) = "-" THEN bldu$ = bldu$ + ch$
IF INSTR(hist, ch$) > 0 THEN good = 0: EXIT FOR
NEXT i
So when the L in GOLFER was considered, the word was rejected based on L having been used as a fill-in in SUBTLE, even though the L wasn't in a fill-in position.
The bug is fixed by making the test conditional on the letter from the new word being in a fill-in position itself:
FOR i = 1 TO LEN(w$)
ch$ = MID$(w$, i, 1)
IF MID$(proto(n), i, 1) = "-" THEN
bldu$ = bldu$ + ch$
IF INSTR(hist, ch$) > 0 THEN good = 0: EXIT FOR
END IF
NEXT i
Two additional solutions were found. In one, merely change SuBTLe to BuSTLe in brianjn's solution.
The other depends on the word MIXT (archaic per American Heritage, but not so labelled in Random House), HAVERING (chiefly British: equivocating, vacillating) and JUBILE (an obsolete version of jubilee):
HaVeriNG
JuBILe
PiQUe
SOlDer
MiXT
CRap
brAZEn
FolKWaY
|
Posted by Charlie
on 2013-06-05 08:39:58 |