Word search: Difference between revisions

Content added Content deleted
(Word search en FreeBASIC)
m (→‎{{header|FreeBASIC}}: made it work properly)
Line 915: Line 915:
=={{header|FreeBASIC}}==
=={{header|FreeBASIC}}==
{{trans|QB64}}
{{trans|QB64}}
Changes:
<lang freebasic>
ShowPuzzle gets call only after a word is inserted in the grid.
Randomize Timer ' OK getting a good puzzle every time
Added a check if unixdict.txt was found.
Made FilePuzzle print to the file.
If enough words are found but there where still spaces, fill them with random letters.
FILLED was not set to FALSE every time Initialize was called.
Set all integer to (U)long.
<lang freebasic>Randomize Timer ' OK getting a good puzzle every time

#Macro TrmSS (n)
LTrim(Str(n))
#EndMacro


'overhauled
'overhauled
Dim Shared As Byte LengthLimit(3 To 10) 'reset in Initialize, track and limit longer words
Dim Shared As ULong LengthLimit(3 To 10) 'reset in Initialize, track and limit longer words


'LoadWords opens file of words and sets
'LoadWords opens file of words and sets
Dim Shared As Integer NWORDS 'set in LoadWords, number of words with length: > 2 and < 11 and just letters
Dim Shared As ULong NWORDS 'set in LoadWords, number of words with length: > 2 and < 11 and just letters


' word file words (shuffled) to be fit into puzzle and index position
' word file words (shuffled) to be fit into puzzle and index position
Dim Shared As String WORDSSS(1 To 24945), CWORDSSS(1 To 24945)
Dim Shared As String WORDSSS(1 To 24945), CWORDSSS(1 To 24945)
Dim Shared As Integer WORDSINDEX 'the file has 24945 words but many are unsuitable
Dim Shared As ULong WORDSINDEX 'the file has 24945 words but many are unsuitable


'words placed in Letters grid, word itself (WSS) x, y head (WX, WY) and direction (WD), WI is the index to all these
'words placed in Letters grid, word itself (WSS) x, y head (WX, WY) and direction (WD), WI is the index to all these
Dim Shared As String WSS(1 To 100)
Dim Shared As String WSS(1 To 100)
Dim Shared As Byte WX(1 To 100), WY(1 To 100), WD(1 To 100), WI
Dim Shared As ULong WX(1 To 100), WY(1 To 100), WD(1 To 100), WI


' letters grid and direction arrays
' letters grid and direction arrays
Dim Shared As String LSS(0 To 9, 0 To 9)
Dim Shared As String LSS(0 To 9, 0 To 9)
Dim Shared As Byte DX(0 To 7), DY(0 To 7)
Dim Shared As Long DX(0 To 7), DY(0 To 7)
DX(0) = 1: DY(0) = 0
DX(0) = 1: DY(0) = 0
DX(1) = 1: DY(1) = 1
DX(1) = 1: DY(1) = 1
Line 946: Line 956:
'to store all the words found embedded in the grid LSS()
'to store all the words found embedded in the grid LSS()
Dim Shared As String ALLSS(1 To 200)
Dim Shared As String ALLSS(1 To 200)
Dim Shared As Byte AllX(1 To 200), AllY(1 To 200), AllD(1 To 200) 'to store all the words found embedded in the grid LSS()
Dim Shared As ULong AllX(1 To 200), AllY(1 To 200), AllD(1 To 200) 'to store all the words found embedded in the grid LSS()
Dim Shared As Integer ALLindex
Dim Shared As ULong ALLindex


' signal successful fill of puzzle
' signal successful fill of puzzle
Dim Shared FILLED As Boolean
Dim Shared FILLED As Boolean
Dim Shared As ULong try = 1
FILLED = 0
Dim As Byte try
try = 1



Sub LoadWords
Sub LoadWords
Dim As String wdSS
Dim As String wdSS
Dim As Integer i, m
Dim As ULong i, m, ff = FreeFile
Dim ok As Boolean
Dim ok As Boolean

Open "unixdict.txt" For Input As #1
Open "unixdict.txt" For Input As #ff
If Err > 0 Then
Print !"\n unixdict.txt not found, program will end"
Sleep 5000
End
End If
While Eof(1) = 0
While Eof(1) = 0
Input #1, wdSS
Input #ff, wdSS
If Len(wdSS) > 2 And Len(wdSS) < 11 Then
If Len(wdSS) > 2 And Len(wdSS) < 11 Then
ok = -1
ok = TRUE
For m = 1 To Len(wdSS)
For m = 1 To Len(wdSS)
If Asc(wdSS, m) < 97 Or Asc(wdSS, m) > 122 Then ok = 0: Exit For
If Asc(wdSS, m) < 97 Or Asc(wdSS, m) > 122 Then ok = FALSE: Exit For
Next
Next
If ok Then i += 1: WORDSSS(i) = wdSS: CWORDSSS(i) = wdSS
If ok Then i += 1: WORDSSS(i) = wdSS: CWORDSSS(i) = wdSS
End If
End If
Wend
Wend
Close #1
Close #ff
NWORDS = i
NWORDS = i
End Sub
End Sub


Sub Shuffle
Sub Shuffle
Dim As Integer i, r
Dim As ULong i, r
For i = NWORDS To 2 Step -1
For i = NWORDS To 2 Step -1
r = Int(Rnd * i) + 1
r = Int(Rnd * i) + 1
Swap WORDSSS(i), WORDSSS(r)
Swap WORDSSS(i), WORDSSS(r)
Next i
Next
End Sub
End Sub


Sub Initialize
Sub Initialize
Dim As Byte r, c'', x, y, d
Dim As ULong r, c'', x, y, d
Dim As String wdSS
Dim As String wdSS

FILLED = FALSE
For r = 0 To 9
For r = 0 To 9
For c = 0 To 9
For c = 0 To 9
LSS(c, r) = " "
LSS(c, r) = " "
Next c
Next
Next r
Next

'reset word arrays by resetting the word index back to zero
'reset word arrays by resetting the word index back to zero
WI = 0
WI = 0

'fun stuff for me but doubt others would like that much fun!
'fun stuff for me but doubt others would like that much fun!
'pluggin "basic", 0, 0, 2
'pluggin "basic", 0, 0, 2
'pluggin "plus", 1, 0, 0
'pluggin "plus", 1, 0, 0

'to assure the spreading of ROSETTA CODE
'to assure the spreading of ROSETTA CODE
LSS(Int(Rnd * 5) + 5, 0) = "R": LSS(Int(Rnd * 9) + 1, 1) = "O"
LSS(Int(Rnd * 5) + 5, 0) = "R": LSS(Int(Rnd * 9) + 1, 1) = "O"
Line 1,005: Line 1,020:
LSS(Int(10 * Rnd), 6) = "C": LSS(Int(10 * Rnd), 7) = "O"
LSS(Int(10 * Rnd), 6) = "C": LSS(Int(10 * Rnd), 7) = "O"
LSS(Int(10 * Rnd), 8) = "D": LSS(Int(10 * Rnd), 9) = "E"
LSS(Int(10 * Rnd), 8) = "D": LSS(Int(10 * Rnd), 9) = "E"

'reset limits
'reset limits
LengthLimit(3) = 200
LengthLimit(3) = 200
Line 1,015: Line 1,030:
LengthLimit(9) = 0
LengthLimit(9) = 0
LengthLimit(10) = 0
LengthLimit(10) = 0

'reset word order
'reset word order
Shuffle
Shuffle
Line 1,021: Line 1,036:


'for fun plug-in of words
'for fun plug-in of words
Sub pluggin (wdSS As String, x As Integer, y As Integer, d As Integer)
Sub pluggin (wdSS As String, x As Long, y As Long, d As Long)

For i As Byte = 0 To Len(wdSS) - 1
For i As ULong = 0 To Len(wdSS) - 1
LSS(x + i * DX(d), y + i * DY(d)) = Mid(wdSS, i + 1, 1)
LSS(x + i * DX(d), y + i * DY(d)) = Mid(wdSS, i + 1, 1)
Next i
Next
WI += WI
WI += WI
WSS(WI) = wdSS: WX(WI) = x: WY(WI) = y: WD(WI) = d
WSS(WI) = wdSS: WX(WI) = x: WY(WI) = y: WD(WI) = d
End Sub
End Sub


Function TrmSS (n As Integer) As String
' Function TrmSS (n As Integer) As String
TrmSS = Rtrim(Ltrim(Str(n)))
' TrmSS = RTrim(LTrim(Str(n)))
End Function
' End Function


'used in PlaceWord
'used in PlaceWord
Function CountSpaces () As Integer
Function CountSpaces () As ULong
Dim As Byte x, y
Dim As ULong x, y, count

Dim count As Integer
For y = 0 To 9
For y = 0 To 9
For x = 0 To 9
For x = 0 To 9
If LSS(x, y) = " " Then count += 1
If LSS(x, y) = " " Then count += 1
Next x
Next
Next y
Next
CountSpaces = count
CountSpaces = count
End Function
End Function


Sub ShowPuzzle
Sub ShowPuzzle
Dim As Byte i, x, y
Dim As ULong i, x, y
Dim As String wateSS
'Dim As String wateSS

Cls
Cls
Print " 0 1 2 3 4 5 6 7 8 9"
Print " 0 1 2 3 4 5 6 7 8 9"
Line 1,053: Line 1,070:
For i = 0 To 9
For i = 0 To 9
Print TrmSS(i)
Print TrmSS(i)
Next i
Next
For y = 0 To 9
For y = 0 To 9
For x = 0 To 9
For x = 0 To 9
Locate y + 3, 2 * x + 5: Print LSS(x, y)
Locate y + 3, 2 * x + 5: Print LSS(x, y)
Next x
Next
Next y
Next
For i = 1 To WI
For i = 1 To WI
If i < 20 Then
If i < 21 Then
Locate i + 1, 30: Print TrmSS(i); " "; WSS(i)
Locate i + 1, 30: Print TrmSS(i); " "; WSS(i)
Elseif i < 40 Then
ElseIf i < 41 Then
Locate i - 20 + 1, 45: Print TrmSS(i); " "; WSS(i)
Locate i - 20 + 1, 45: Print TrmSS(i); " "; WSS(i)
Elseif i < 60 Then
ElseIf i < 61 Then
Locate i - 40 + 1, 60: Print TrmSS(i); " "; WSS(i)
Locate i - 40 + 1, 60: Print TrmSS(i); " "; WSS(i)
End If
End If
Next i
Next
Locate 18, 1: Print "Spaces left:"; CountSpaces
Locate 18, 1: Print "Spaces left:"; CountSpaces
Locate 19, 1: Print NWORDS
Locate 19, 1: Print NWORDS
Line 1,076: Line 1,093:


'used in PlaceWord
'used in PlaceWord
Function Match (word As String, template As String) As Integer
Function Match (word As String, template As String) As Long
Dim i As Integer
Dim i As ULong
Dim c As String
Dim c As String
Match = 0
Match = 0
Line 1,095: Line 1,112:
' exactly 11 spaces needs to be left, if/when this occurs FILLED will be set true to signal finished to main loop
' exactly 11 spaces needs to be left, if/when this occurs FILLED will be set true to signal finished to main loop
' if place a word update LSS, WI, WSS(WI), WX(WI), WY(WI), WD(WI)
' if place a word update LSS, WI, WSS(WI), WX(WI), WY(WI), WD(WI)

Dim As String wdSS, templateSS, wateSS
Dim As String wdSS, templateSS
Dim As Byte wLen, spot, testNum, rdir
Dim As Long rdir
Dim As Byte x, y, d, dNum, rdd, i, j
Dim As ULong wLen, spot, testNum
Dim As ULong x, y, d, dNum, rdd, i, j

Dim As Boolean b1, b2
Dim As Boolean b1, b2

wdSS = WORDSSS(WORDSINDEX) 'the right side is all shared
wdSS = WORDSSS(WORDSINDEX) ' the right side is all shared
'skip too many long words
' skip too many long words
If LengthLimit(Len(wdSS)) Then LengthLimit(Len(wdSS)) += 1 Else Exit Sub 'skip long ones
If LengthLimit(Len(wdSS)) Then LengthLimit(Len(wdSS)) += 1 Else Exit Sub 'skip long ones
wLen = Len(wdSS) - 1 ' from the spot there are this many letters to check
wLen = Len(wdSS) - 1 ' from the spot there are this many letters to check
spot = Int(Rnd * 100) ' a random spot on grid
spot = Int(Rnd * 100) ' a random spot on grid
testNum = 1 ' when this hits 100 we've tested all possible spots on grid
testNum = 1 ' when this hits 100 we've tested all possible spots on grid
If Rnd < .5 Then rdir = -1 Else rdir = 1 ' go forward or back from spot for next test
If Rnd < .5 Then rdir = -1 Else rdir = 1 ' go forward or back from spot for next test
While testNum < 101
While testNum < 101
y = Int(spot / 10)
y = spot \ 10
x = spot Mod 10
x = spot Mod 10
If LSS(x, y) = Mid(wdSS, 1, 1) Or LSS(x, y) = " " Then
If LSS(x, y) = Mid(wdSS, 1, 1) Or LSS(x, y) = " " Then
Line 1,132: Line 1,151:
WI += 1
WI += 1
WSS(WI) = wdSS: WX(WI) = x: WY(WI) = y: WD(WI) = d
WSS(WI) = wdSS: WX(WI) = x: WY(WI) = y: WD(WI) = d
If CountSpaces = 0 Then FILLED = -1
ShowPuzzle
If CountSpaces = 0 Then FILLED = TRUE
Exit Sub 'get out now that word is loaded
Exit Sub 'get out now that word is loaded
End If
End If
Line 1,150: Line 1,170:
Sub FindAllWords
Sub FindAllWords
Dim As String wdSS, templateSS, wateSS
Dim As String wdSS, templateSS, wateSS
Dim As Byte wLen, x, y, d, j
Dim As ULong wLen, x, y, d, j
Dim As Boolean b1, b2
Dim As Boolean b1, b2

For i As Integer = 1 To NWORDS
For i As ULong = 1 To NWORDS
wdSS = CWORDSSS(i)
wdSS = CWORDSSS(i)
wLen = Len(wdSS) - 1
wLen = Len(wdSS) - 1
Line 1,166: Line 1,186:
For j = 0 To wLen
For j = 0 To wLen
templateSS += LSS(x + j * DX(d), y + j * DY(d))
templateSS += LSS(x + j * DX(d), y + j * DY(d))
Next j
Next
If templateSS = wdSS Then 'founda word
If templateSS = wdSS Then 'found a word
'store it
'store it
ALLindex += 1
ALLindex += 1
Line 1,177: Line 1,197:
End If
End If
End If
End If
Next d
Next
End If
End If
Next x
Next
Next y
Next
Next i
Next
End Sub
End Sub


Sub FilePuzzle
Sub FilePuzzle
Dim As Byte i, r, c
Dim As ULong i, r, c, ff = FreeFile
Dim As String bSS
Dim As String bSS

Open "WS Puzzle.txt" For Output As #1
Open "WS Puzzle.txt" For Output As #ff
Print " 0 1 2 3 4 5 6 7 8 9"
Print ""
Print #ff, " 0 1 2 3 4 5 6 7 8 9"
Print #ff,
For r = 0 To 9
For r = 0 To 9
bSS = TrmSS(r) + " "
bSS = TrmSS(r) + " "
For c = 0 To 9
For c = 0 To 9
bSS += LSS(c, r) + " "
bSS += LSS(c, r) + " "
Next c
Next
Print bSS
Print #ff, bSS
Next r
Next
Print ""
Print #ff,
Print "Directions >>>---> 0 = East, 1 = SE, 2 = South, 3 = SW, 4 = West, 5 = NW, 6 = North, 7 = NE"
Print #ff, "Directions >>>---> 0 = East, 1 = SE, 2 = South, 3 = SW, 4 = West, 5 = NW, 6 = North, 7 = NE"
Print ""
Print #ff,
Print " These are the items from unixdict.txt used to build the puzzle:"
Print #ff, " These are the items from unixdict.txt used to build the puzzle:"
Print ""
Print #ff,
For i = 1 To WI Step 2
For i = 1 To WI Step 2
Print Right(Space(7) + TrmSS(i), 7); ") "; Right(Space(7) + WSS(i), 10); " ("; TrmSS(WX(i)); ", "; TrmSS(WY(i)); ") >>>---> "; TrmSS(WD(i));
Print #ff, Right(Space(7) + TrmSS(i), 7); ") "; Right(Space(7) + WSS(i), 10); " ("; TrmSS(WX(i)); ", "; TrmSS(WY(i)); ") >>>---> "; TrmSS(WD(i));
If i + 1 <= WI Then
If i + 1 <= WI Then
Print Right(Space(7) + TrmSS(i + 1), 7); ") "; Right(Space(7) + WSS(i + 1), 10); " ("; TrmSS(WX(i + 1)); ", "; TrmSS(WY(i + 1)); ") >>>---> "; TrmSS(WD(i + 1))
Print #ff, Right(Space(7) + TrmSS(i + 1), 7); ") "; Right(Space(7) + WSS(i + 1), 10); " ("; TrmSS(WX(i + 1)); ", "; TrmSS(WY(i + 1)); ") >>>---> "; TrmSS(WD(i + 1))
Else
Else
Print ""
Print #ff,
End If
End If
Next
Next
Print ""
Print #ff,
Print " These are the items from unixdict.txt found embedded in the puzzle:"
Print #ff, " These are the items from unixdict.txt found embedded in the puzzle:"
Print ""
Print #ff,
For i = 1 To ALLindex Step 2
For i = 1 To ALLindex Step 2
Print Right(Space(7) + TrmSS(i), 7); ") "; Right(Space(7) + ALLSS(i), 10); " ("; TrmSS(AllX(i)); ", "; TrmSS(AllY(i)); ") >>>---> "; TrmSS(AllD(i));
Print #ff, Right(Space(7) + TrmSS(i), 7); ") "; Right(Space(7) + ALLSS(i), 10); " ("; TrmSS(AllX(i)); ", "; TrmSS(AllY(i)); ") >>>---> "; TrmSS(AllD(i));
If i + 1 <= ALLindex Then
If i + 1 <= ALLindex Then
Print Right(Space(7) + TrmSS(i + 1), 7); ") "; Right(Space(7) + ALLSS(i + 1), 10); " ("; TrmSS(AllX(i + 1)); ", "; TrmSS(AllY(i + 1)); ") >>>---> "; TrmSS(AllD(i + 1))
Print #ff, Right(Space(7) + TrmSS(i + 1), 7); ") "; Right(Space(7) + ALLSS(i + 1), 10); " ("; TrmSS(AllX(i + 1)); ", "; TrmSS(AllY(i + 1)); ") >>>---> "; TrmSS(AllD(i + 1))
Else
Else
Print ""
Print #ff, ""
End If
End If
Next i
Next
Close #1
Print #ff,
Print #ff, "On try #" + TrmSS(try) + " a successful puzzle was built and filed."
Close #ff
End Sub
End Sub




LoadWords 'this sets NWORDS count to work with
LoadWords 'this sets NWORDS count to work with

While try < 11
While try < 11
Initialize
Initialize
Line 1,231: Line 1,255:
For WORDSINDEX = 1 To NWORDS
For WORDSINDEX = 1 To NWORDS
PlaceWord
PlaceWord
ShowPuzzle
' ShowPuzzle
If FILLED Then Exit For
If FILLED Then Exit For
Next WORDSINDEX
Next
If Not filled And WI > 24 Then ' we have 25 or more words
For y As ULong = 0 To 9 ' fill spaces with random letters
For x As ULong = 0 To 9
If LSS(x, y) = " " Then LSS(x, y) = Chr(Int(Rnd * 26) + 1 + 96)
Next
Next
filled = TRUE
ShowPuzzle
End If
If FILLED And WI > 24 Then
If FILLED And WI > 24 Then
FindAllWords
FindAllWords
Line 1,243: Line 1,276:
End If
End If
Wend
Wend

If FILLED = 0 Then Locate 23, 1: Print "Sorry, 10 tries and no success."
If Not FILLED Then Locate 23, 1: Print "Sorry, 10 tries and no success."
End

</lang>
Sleep
End</lang>
{{out}}
{{out}}
<pre style="height:52ex;overflow:scroll"> 0 1 2 3 4 5 6 7 8 9
<pre>

Igual que la entrada de QB64.
0 m g y m l a i r R u
</pre>
1 s e u i o n n p s O
2 a p S l s s u n e n
3 h w o e l t j E a t
4 c T r l n a e i s T
5 c t e a c A r w i g
6 C w m m r b a i d a
7 O d s t u m b r e l
8 D o a i t h i g h h
9 l p E g d b o r h t

Directions >>>---> 0 = East, 1 = SE, 2 = South, 3 = SW, 4 = West, 5 = NW, 6 = North, 7 = NE

These are the items from unixdict.txt used to build the puzzle:

1) yea (2, 0) >>>---> 3 2) thigh (4, 8) >>>---> 0
3) wells (1, 6) >>>---> 7 4) jacm (6, 3) >>>---> 3
5) tumbrel (3, 7) >>>---> 0 6) mile (3, 0) >>>---> 2
7) seaside (8, 1) >>>---> 2 8) putnam (7, 1) >>>---> 3
9) throb (9, 9) >>>---> 4 10) insert (6, 0) >>>---> 3
11) brian (5, 6) >>>---> 7 12) chasm (0, 4) >>>---> 6
13) los (0, 9) >>>---> 7 14) aida (6, 6) >>>---> 0
15) anna (5, 0) >>>---> 1 16) dis (4, 9) >>>---> 5
17) heir (9, 8) >>>---> 5 18) lop (3, 4) >>>---> 5
19) gull (1, 0) >>>---> 1 20) sol (4, 2) >>>---> 6
21) gad (3, 9) >>>---> 5 22) stew (4, 2) >>>---> 1
23) ncr (4, 4) >>>---> 2 24) pat (1, 9) >>>---> 7
25) lair (4, 0) >>>---> 0 26) woe (1, 3) >>>---> 0
27) pet (7, 1) >>>---> 1 28) usn (9, 0) >>>---> 3
29) lag (9, 7) >>>---> 6 30) etc (2, 5) >>>---> 4

These are the items from unixdict.txt found embedded in the puzzle:

1) acm (5, 4) >>>---> 3 2) aid (6, 6) >>>---> 0
3) aida (6, 6) >>>---> 0 4) air (5, 0) >>>---> 0
5) air (8, 3) >>>---> 3 6) ale (3, 5) >>>---> 6
7) all (5, 4) >>>---> 5 8) ann (5, 0) >>>---> 1
9) ann (8, 3) >>>---> 5 10) anna (5, 0) >>>---> 1
11) anna (8, 3) >>>---> 5 12) ant (3, 5) >>>---> 7
13) are (6, 6) >>>---> 6 14) arm (3, 5) >>>---> 1
15) aside (8, 3) >>>---> 2 16) bar (6, 7) >>>---> 6
17) bare (6, 7) >>>---> 6 18) bird (5, 9) >>>---> 7
19) brian (5, 6) >>>---> 7 20) chasm (0, 4) >>>---> 6
21) dis (8, 6) >>>---> 6 22) dis (4, 9) >>>---> 5
23) drib (8, 6) >>>---> 3 24) ego (8, 7) >>>---> 3
25) eli (3, 3) >>>---> 6 26) ell (2, 5) >>>---> 7
27) era (6, 4) >>>---> 2 28) etc (2, 5) >>>---> 4
29) gad (3, 9) >>>---> 5 30) gal (9, 5) >>>---> 2
31) gull (1, 0) >>>---> 1 32) gym (1, 0) >>>---> 0
33) heir (9, 8) >>>---> 5 34) high (5, 8) >>>---> 0
35) hum (5, 8) >>>---> 5 36) ian (7, 4) >>>---> 7
37) ida (7, 6) >>>---> 0 38) insert (6, 0) >>>---> 3
39) ion (3, 1) >>>---> 0 40) ira (7, 6) >>>---> 5
41) jacm (6, 3) >>>---> 3 42) lag (9, 7) >>>---> 6
43) lair (4, 0) >>>---> 0 44) lam (3, 4) >>>---> 2
45) leo (4, 3) >>>---> 4 46) lew (3, 4) >>>---> 3
47) lim (3, 2) >>>---> 6 48) lop (3, 4) >>>---> 5
49) los (4, 0) >>>---> 2 50) los (0, 9) >>>---> 7
51) lug (3, 2) >>>---> 5 52) male (3, 6) >>>---> 6
53) man (2, 6) >>>---> 7 54) maw (5, 7) >>>---> 7
55) mile (3, 0) >>>---> 2 56) nair (9, 2) >>>---> 3
57) ncr (4, 4) >>>---> 2 58) ore (2, 3) >>>---> 2
59) pat (1, 9) >>>---> 7 60) peg (1, 2) >>>---> 6
61) pet (7, 1) >>>---> 1 62) pod (1, 9) >>>---> 6
63) pol (1, 2) >>>---> 1 64) put (7, 1) >>>---> 3
65) putnam (7, 1) >>>---> 3 66) rib (7, 7) >>>---> 3
67) rim (7, 9) >>>---> 5 68) rob (7, 9) >>>---> 4
69) rut (4, 6) >>>---> 2 70) sea (8, 1) >>>---> 2
71) seaside (8, 1) >>>---> 2 72) side (8, 4) >>>---> 2
73) sol (4, 2) >>>---> 6 74) sol (2, 7) >>>---> 3
75) stew (4, 2) >>>---> 1 76) stu (2, 7) >>>---> 0
77) sun (5, 2) >>>---> 0 78) swam (8, 4) >>>---> 3
79) tap (3, 7) >>>---> 3 80) tea (1, 5) >>>---> 0
81) thigh (4, 8) >>>---> 0 82) throb (9, 9) >>>---> 4
83) tum (3, 7) >>>---> 0 84) tumbrel (3, 7) >>>---> 0
85) usn (9, 0) >>>---> 3 86) well (1, 6) >>>---> 7
87) wells (1, 6) >>>---> 7 88) wet (7, 5) >>>---> 5
89) wig (7, 5) >>>---> 0 90) woe (1, 3) >>>---> 0
91) yea (2, 0) >>>---> 3


On try #1 a successful puzzle was built and filed.</pre>


=={{header|Go}}==
=={{header|Go}}==