Word wheel: Difference between revisions

1,030 bytes added ,  3 years ago
m (added highlighting.)
Line 522:
<pre>
["ken", "keg", "eke", "elk", "wok", "keno", "knee", "keen", "knew", "kong", "know", "woke", "keel", "leek", "week", "kneel", "knowledge"]
</pre>
 
=={{header|Phix}}==
<lang Phix>constant wheel = "ndeokgelw",
musthave = wheel[5]
sequence words = {""} -- (a fudged {}, for better output)
integer fn = open(join_path({"demo","unixdict.txt"}),"r")
if fn=-1 then crash("unixdict.txt not found") end if
while 1 do
object word = lower(trim(gets(fn)))
if atom(word) then exit end if -- eof
if length(word)>=3 and find(musthave,word) then
string remaining = wheel
for i=length(word) to 1 by -1 do -- (-1 for 1==done test)
integer k = find(word[i],remaining)
if k=0 then exit end if
if i=1 then words = append(words,word) exit end if
remaining[k] = '\0'
end for
end if
end while
close(fn)
string jbw = join_by(words,2,9," ","\n ") -- (admittedly, case-specific)
printf(1, "The following %d words were found:\n%s\n",{length(words)-1,jbw})</lang>
{{out}}
<pre>
The following 17 words were found:
elk keen ken knee knew knowledge leek wok
eke keel keg keno kneel know kong week woke
</pre>
 
7,820

edits