B4J Question Algorithm To Generate Double Word-Squares

B4XDev

Member
Licensed User
I'm wanting to generate double word-squares of size 4x4 and 6x6. I've done a little research, but I'm not finding much in way of actual code examples. There are discussions of double word-squares to be found, but few (none?) with code samples that I could understand. For example, this one describes an algorithm, but I'm not sure how to implement it in B4X.

If anybody has any ideas (or good links to articles) or some pseudo-code on how to generate these things, please contribute to this thread.

Thank you!
 

EnriqueGonzalez

Well-Known Member
Licensed User
Longtime User
According to reddit article you need a 2 dimension array and some brute force, the dimmension array you can use:
 
Upvote 0

emexes

Expert
Licensed User
I'm wanting to generate double word-squares of size 4x4 and 6x6. I've done a little research, but I'm not finding much in way of actual code examples. There are discussions of double word-squares to be found, but few (none?) with code samples that I could understand. For example, this one describes an algorithm, but I'm not sure how to implement it in B4X.

If anybody has any ideas (or good links to articles) or some pseudo-code on how to generate these things, please contribute to this thread.

Thank you!

For Four-by-four:

Start with a list of all four-letter words

eg download https://www.wordgamedictionary.com/sowpods/download/sowpods.txt

and filter to 4-letter words only eg attached file, has 5454 words

Now, I agree that to go through all 5454^4 combinations of 4 horizontal words, and check that each makes 4 vertical words too, is probably going to take longer than you're willing to wait.

But you can shortcut it down - probably what your found algorithm does - by say:

Try each word in the top row, and then try 4 words vertically, beginning with the letters of the top row.

That would reduce the problem from 5454^4 to more like 5454 * (5454/26) ^ 4 = 98.8% reduction

You could reduce it further by trying each word in the top two rows (yeah, yeah, 30 million possibilities) and then try 4 words vertically, beginning with the letters of the top two rows.

Now we're down to 5454^2 * (5454/26^2) ^ 4 = hmm that's still like 126 billion possibilities. 🤔

Tell you what, have a harder look at that algorithm you found, get back to us if you can't get that going. 🍻
 

Attachments

  • words4.txt
    32 KB · Views: 55
Upvote 0

emexes

Expert
Licensed User
Lol that puzzle ate at me over lunch. So far I have an algorithm that seems to be producing valid 4x4 word-squares, eg:

JSON:
sowpods.txt has 267753 words

created list of 5454 4-letter words words4.txt

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
abac    abac    abac    abac    abac    abac    abac    abac    abac    abac
lehr    leku    leku    leku    leku    leku    leku    leku    leku    leku
stay    stag    stap    star    stat    sted    stem    step    stet    stud

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
abac    abac    abac    abac    abac    abac    abac    abac    abac    abac
leku    leva    leva    leva    leva    leva    levo    levo    levo    ludo
stum    sted    stem    sten    stet    stew    step    stet    stew    step

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
abac    abac    abac    abac    abac    abac    abac    abac    abac    abac
ludo    ludo    lulu    lulu    lulu    lulu    lulu    lulu    luma    luma
stet    stew    sted    stem    step    stet    stop    stot    sted    stem

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
abac    abac    abac    abac    abac    abac    abac    abac    abac    abac
luma    luma    luma    lyra    lyra    lyra    lyra    lyra    lyra    lyra
sten    stet    stew    seed    seem    seen    seer    sekt    seld    send

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
abac    abac    abac    abet    abet    abet    abet    abet    abet    abet
lyra    lyra    lyra    lare    lare    lare    lari    lulu    lulu    lulu
sent    sept    sett    scop    scot    scow    scye    sted    stem    sten

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
abet    abet    abet    abet    abet    abet    abet    abet    abet    abet
lulu    luma    luma    luma    luma    lure    lure    lure    lyme    lyme
stob    step    stet    stew    stey    stop    stot    stow    seed    seem

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
abet    abet    abet    abet    abet    abet    abet    abet    abet    abet
lyme    lyme    lyme    lyne    lyra    lyra    lyra    lyre    lyre    lyre
seen    seep    sept    sett    seep    seer    sent    seed    seem    seen

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
abet    abet    abet    abet    abet    abet    abet    abet    abet    abet
lyre    lyre    lyre    lyre    lyse    lyse    lyte    lyte    lyte    lyte
seep    seld    send    sent    sept    sett    seed    seem    seen    seep

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
abut    abut    abut    abut    abut    abut    abut    abut    abut    abut
lama    lama    lama    lama    lama    lame    lame    lame    lame    lame
scab    scag    scar    scat    scaw    scad    scam    scan    scat    scaw

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
abut    abut    abut    abut    abut    abut    abut    abut    abut    abut
lase    lase    lase    leme    leme    leme    leme    lyme    lyme    lyme
scop    scot    scow    stap    stat    staw    stay    seam    sean    seat

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
abut    abut    abut    abut    abut    abut    abut    abye    abye    abye
lyme    lyne    lyne    lyra    lyre    lyre    lyse    lall    leke    leke
sept    sekt    sett    sett    seld    sett    sekt    scad    sted    stem

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
abye    abye    abye    abye    abye    abye    abye    abye    abye    abye
leke    leke    lept    lept    lept    luke    luke    luke    luke    lull
sten    step    stet    stoa    stot    sted    stem    sten    step    sted

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
abye    abye    abye    abye    acer    acer    acer    acer    acer    acer
lute    lute    lute    lute    lari    lari    lari    lari    lari    lati
sted    stem    sten    step    sibs    sies    sims    sins    siss    sies

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
acer    acyl    acyl    acyl    acyl    adaw    adaw    adaw    adaw    adaw
lati    lama    lama    lame    lame    lido    lido    like    like    lilo
siss    sine    sing    sind    sine    step    stet    stay    stey    step

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
adaw    adaw    adaw    adaw    adaw    adaw    adaw    adaw    adaw    adaw
lilo    lilo    lilo    lilo    lima    lima    lima    lima    lima    lima
stet    stob    stop    stot    sted    stem    sten    step    stet    stey

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
adaw    adaw    adaw    adaw    adaw    adaw    adaw    adaw    adaw    adaw
lime    limo    limo    lipa    lipa    lipa    lipa    lipo    lira    lira
stey    step    stet    stub    stud    stum    stun    stub    sted    stem

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
adaw    adaw    adaw    adaw    adaw    adaw    adaw    adaw    adaw    adaw
lira    lira    lira    lira    lira    lira    lira    lire    liri    lite
sten    step    stet    stey    stob    stop    stot    stey    stem    stey

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
adaw    adaw    adit    adit    adit    adit    adit    adit    adit    adit
litu    live    lade    lady    lake    laky    lare    lari    lava    lave
stem    stey    swey    swee    swey    swee    swey    swee    swey    swey

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agar    agar    agar    agar    agar    agar    agee    agee    agee    agee
liri    liri    liri    liri    liri    liri    leme    lere    lere    lerp
sods    sols    soms    sons    sops    sots    sned    sned    snod    snot

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agee    agee    agee    agee    agee    agee    agee    agee    agee    agee
lets    libs    lill    lill    lill    lilt    lime    limn    limn    lira
snee    snee    sned    snee    snod    snot    sned    sned    snee    snot

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agee    agee    agee    agee    agee    agee    agee    agee    agee    agee
lire    lire    lirk    lite    lits    liar    liar    liar    liar    liar
sned    snod    snot    sned    snee    soda    sods    sola    sole    sols

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agee    agee    agee    agee    agee    agee    agee    agee    agee    agee
liar    liar    liar    liar    lias    lias    lias    lias    lias    lias
sops    sora    sore    sots    sods    sole    sols    soph    sops    sore

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agee    agee    agee    agee    agee    agee    agee    agee    agee    agee
lias    lias    lice    lien    lien    lien    lien    lien    lien    lier
soth    sots    sohs    soda    sods    sola    sold    sole    sols    soda

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agee    agee    agee    agee    agee    agee    agee    agee    agee    agee
lier    lier    lier    lier    lies    lies    lies    life    lift    lill
sods    sola    sole    sols    sods    sole    sols    sots    sots    sods

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agee    agee    agee    agee    agee    agee    agee    agee    agee    agee
lill    lill    lill    lill    lill    lill    lill    lilt    lilt    lilt
sold    sole    sols    some    soms    sool    sops    soda    sods    sola

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agee    agee    agee    agee    agee    agee    agee    agee    agee    agee
lilt    lilt    lilt    lilt    lilt    lily    lily    lily    lily    lima
sols    soma    soms    soot    sops    sods    sols    soms    sops    sops

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agee    agee    agee    agee    agee    agee    agee    agee    agee    agee
lima    lime    lime    limn    limn    limp    limp    limy    limy    line
soss    sops    soss    sops    soss    sops    soss    sops    soss    sods

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agee    agee    agee    agee    agee    agee    agee    agee    agee    agee
line    line    ling    ling    ling    linn    linn    linn    linn    lins
soss    sots    sods    soss    sots    soda    sods    soss    sots    sods

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agee    agee    agee    agee    agee    agee    agee    agee    agee    agee
lins    lins    lins    lint    lint    lint    lint    liny    liny    liny
soss    soth    sots    soda    sods    soss    sots    sods    soss    sots

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agee    agee    agee    agee    agee    agee    agee    agee    agee    agee
lipa    lipa    lipe    lipe    lips    lips    lips    lira    lira    lira
soss    sots    soss    sots    soss    soth    sots    sobs    sods    sols

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agee    agee    agee    agee    agee    agee    agee    agee    agee    agee
lira    lira    lira    lira    lira    lira    lira    lira    lire    lire
soms    sons    sool    soom    soon    soot    soss    soys    sobs    sods

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agee    agee    agee    agee    agee    agee    agee    agee    agee    agee
lire    lire    lire    lire    lire    lire    lire    lire    lire    lire
sold    sols    soms    sons    sook    sool    soom    soon    soop    soss

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agee    agee    agee    agee    agee    agee    agee    agee    agee    agee
lire    liri    liri    liri    liri    liri    liri    liri    liri    liri
soys    sobs    sods    sols    soms    sons    sook    sool    soss    soys

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agee    agee    agee    agee    agee    agee    agee    agee    agee    agee
lirk    lisp    lisp    list    list    lite    lite    lits    lits    lobe
soot    sops    sots    sops    sots    sohs    soss    sohs    soss    sned

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agee    agee    agee    agee    agee    agee    agee    agee    agee    agee
lobs    loll    loll    loll    lome    lore    lore    lorn    lorn    lorn
snee    sned    snee    snod    sned    sned    snod    sned    snee    snod

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agee    agee    agee    agee    agee    agee    agee    agee    agee    agee
lorn    lorn    lote    lots    lues    lues    luit    luit    luit    lull
snot    snye    sned    snee    sele    sels    sels    sera    sers    seed

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agee    agee    agee    agee    agee    agee    agee    agee    agee    agee
lull    lull    lull    lull    luma    luma    luma    luma    luma    luma
seel    sees    seme    seps    seel    seem    seen    seer    sees    seps

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agee    agee    agee    agee    agee    agee    agee    agee    agee    agee
luma    luma    lump    lump    lums    lums    luna    luna    luna    lune
sept    sess    sees    sess    sees    seps    sess    sets    sett    sess

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agee    agee    agee    agee    agee    agee    agee    agee    agee    agee
lune    lung    lung    lunk    lunt    luny    luny    lure    lure    lure
sets    sess    sets    sett    sess    sess    sets    seld    sell    sels

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agee    agee    agee    agee    agee    agee    agee    agee    agee    agee
lure    lure    lure    lure    lurk    lurs    lurs    lurs    lurs    lurs
send    sens    sess    seys    sent    sees    sele    sels    seme    sene

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agee    agee    agee    agee    agee    agee    agee    agen    agen    agen
lurs    lurs    lusk    lusk    lust    lust    lute    leme    leme    leno
sens    seys    sept    sett    seps    sept    sess    seed    sese    sett

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agen    agen    agen    agen    agen    agen    agen    agen    agen    agen
lere    lere    lere    lere    lere    lere    lere    lilo    lilo    lily
seed    seld    sele    seme    send    sene    sese    sneb    sned    snee

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agen    agen    agen    agen    agen    agen    agen    agen    agen    agen
lima    limo    limo    limy    lira    lira    lira    lira    lire    lire
sneb    sneb    sned    snee    sneb    snob    snog    snow    snob    snod

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agen    agen    agen    agen    agen    agen    agen    agen    agen    agen
lire    liri    liri    liri    liri    litu    lice    lilo    lilo    lily
snye    sneb    snob    snog    snot    sneb    soke    sold    soot    sole

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agen    agen    agen    agen    agen    agen    agen    agen    agen    agen
lily    lira    lira    lire    lire    lire    lire    liri    liri    liri
some    song    soop    sold    sole    some    sone    song    soop    soot

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agen    agen    agen    agen    agen    agen    agen    agen    agen    agen
lobi    lobo    lobo    loma    lore    lore    lore    lory    lota    loti
sneb    sneb    sned    sneb    snob    snod    snye    snee    sneb    sneb

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agen    agen    agen    agen    agen    agen    agen    agen    agen    agen
loto    loto    lube    luma    luma    lune    luny    lure    lure    lure
sneb    sned    seed    seep    seer    sese    sese    seed    seld    sele

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agen    agen    agen    agen    agen    agen    ager    ager    ager    ager
lure    lure    lure    lure    lute    lute    liri    liri    liri    liri
seme    send    sene    sese    seed    sese    sobs    sods    sols    soms

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
ager    ager    ager    agin    agin    agin    agin    agin    agin    agin
liri    liri    liri    leke    leme    leno    lere    leva    leva    leve
sons    soss    soys    seed    sese    sett    seed    seep    seer    seed

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agin    agin    agin    agin    agin    agin    agin    agin    agin    agin
levo    leku    leva    levo    levo    levy    lice    lilo    lily    lory
seed    sneb    sneb    sneb    sned    snee    soke    sold    sole    snee

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agin    agin    agin    agin    agin    agin    agin    agio    agio    agio
lude    ludo    luke    lune    luny    lure    lute    lall    leed    leek
seed    seed    seed    sese    sese    seed    sese    sris    sess    sese

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agio    agio    agio    agio    agio    agio    agio    agio    agio    agio
leep    leep    leer    lees    leet    leet    leks    leku    leku    leku
sesh    sess    sese    sess    sesh    sess    sees    seek    seel    seem

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agio    agio    agio    agio    agio    agio    agio    agio    agio    agio
leku    leku    leku    lend    lend    lend    lend    leng    leng    leng
seep    seer    sees    segs    sess    seta    sets    segs    sess    sets

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agio    agio    agio    agio    agio    agio    agio    agio    agio    agio
leno    lens    lens    lens    lent    lent    lent    lent    leps    leps
sett    segs    sess    sets    segs    sesh    sess    sets    sess    sets

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agio    agio    agio    agio    agio    agio    agio    agio    agio    agio
lept    lept    lept    lerp    less    less    less    lest    lest    lest
sesh    sess    sets    sees    sens    sess    sets    sens    sesh    sess

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agio    agio    agio    agio    agio    agio    agio    agio    agio    agio
lest    lets    leva    leva    leva    levo    levo    levo    levo    levo
sets    sess    seek    seep    seer    seek    seel    seem    seen    seep

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agio    agio    agio    agio    agio    agio    agio    agio    agio    agio
levy    leys    lilo    lilo    lilo    lion    lirk    loof    loon    loor
sees    seas    snap    snip    snit    snig    snee    snit    snig    snib

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agio    agio    agio    agio    agio    agio    agio    agio    agio    agio
loor    lorn    ludo    ludo    ludo    ludo    ludo    luds    lues    lull
snit    snee    seek    seel    seem    seen    seep    sees    sess    seas

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agio    agio    agio    agio    agio    agio    agio    agio    agio    agio
lull    lull    lull    lull    lull    lull    lulu    lulu    lulu    lulu
seis    seld    sele    sels    seta    sets    seal    seam    sear    seas

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agio    agio    agio    agio    agio    agio    agio    agio    agio    agio
lulu    lulu    lulu    lulu    lulu    lulu    lulu    lulu    lulu    lump
seat    seik    seil    seir    seis    sell    sels    sets    sett    sesh

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agio    agio    agio    agio    agio    agio    agio    agio    agio    agio
lump    lums    lung    lung    lung    lunk    lunt    lunt    lunt    lunt
sess    sess    segs    sess    sets    sese    segs    sesh    sess    sets

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agio    agio    agio    agio    agio    agio    agio    agio    agio    agio
luny    luny    luny    luny    lurs    lush    lush    lush    lusk    lusk
segs    sess    seta    sets    sees    sens    sess    sets    sene    sese

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agio    agio    agio    agio    agio    agon    agon    agon    agon    agon
lust    lust    lust    lust    luvs    leke    leme    leme    leno    leno
sens    sesh    sess    sets    sees    seed    seed    sese    seed    sekt

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agon    agon    agon    agon    agon    agon    agon    agon    agon    agon
lere    lere    lere    lere    leva    leva    leve    levo    leke    leke
seed    send    sene    sese    seep    seer    seed    seed    snab    snib

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agon    agon    agon    agon    agon    agon    agon    agon    agon    agon
leku    leku    leku    leku    leku    leme    leme    leme    leme    leno
snab    snag    sneb    snib    snig    snab    snob    snod    snye    sneb

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agon    agon    agon    agon    agon    agon    agon    agon    agon    agon
leno    lere    lere    leva    levo    levo    levy    like    like    lilo
sned    snab    snib    sneb    sneb    sned    snee    snab    snib    sneb

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agon    agon    agon    agon    agon    agon    agon    agon    agon    agon
lilo    lily    lima    lima    lima    lima    lime    lime    lime    lime
sned    snee    sneb    snob    snog    snow    snab    snob    snod    snye

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agon    agon    agon    agon    agon    agon    agon    agon    agon    agon
limo    limo    limo    limo    limo    limy    lino    lino    liny    lipa
snab    snag    snaw    sneb    sned    snee    sneb    sned    snee    sneb

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agon    agon    agon    agon    agon    agon    agon    agon    agon    agon
lipo    lipo    lira    lira    lira    lira    lire    lire    liri    liri
sneb    sned    sneb    snib    snig    snip    snab    snib    snab    snag

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agon    agon    agon    agon    agon    agon    agon    agon    agon    agon
liri    liri    litu    lice    lieu    lily    lily    lima    lima    lima
snap    sneb    sneb    soke    sorb    soke    some    soap    soar    soop

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agon    agon    agon    agon    agon    agon    agon    agon    agon    agon
limo    line    liny    lira    lira    lira    lire    liri    liri    lube
soot    soke    soke    soap    soar    song    sone    soap    song    sese

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agon    agon    agon    agon    agon    agon    agon    agon    agon    agon
lude    luge    luke    luma    luma    luma    luna    luna    lune    lune
sese    sese    seed    sear    seep    seer    seep    seer    seed    sese

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
agon    agon    agon    agon    agon    agon    agon    ague    ague    ague
luny    lure    lure    lure    lure    lute    lute    leep    leep    leer
sese    seed    send    sene    sese    seed    sese    sers    sess    sese

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
ague    ague    ague    ague    ague    ague    ague    ague    ague    ague
leer    lees    lees    leet    leet    leet    legs    legs    leir    leir
sess    sere    sers    sera    sers    sess    sees    seys    sear    seas

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
ague    ague    ague    ague    ague    ague    ague    ague    ague    ague
leir    leir    leir    leis    leis    leis    leme    leme    leme    leme
secs    sese    sess    seas    sech    secs    seal    seam    sean    sear

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
ague    ague    ague    ague    ague    ague    ague    ague    ague    ague
leme    leme    leme    leng    leng    lens    lens    lent    lent    lent
seas    seps    sess    sess    sets    segs    sets    segs    sekt    sess

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
ague    ague    ague    ague    ague    ague    ague    ague    ague    ague
lept    lere    lere    lere    lere    lerp    lerp    lerp    lest    lest
sess    seld    sell    sels    sets    sels    sets    sett    sekt    sess

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
ague    ague    ague    ague    ague    ague    ague    ague    ague    ague
legs    legs    leir    leme    leme    lest    ligs    ligs    lill    lill
snee    snye    snar    snap    snar    snot    snee    snye    sned    snee

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
ague    ague    ague    ague    ague    ague    ague    ague    ague    ague
lima    lime    lime    lisk    lisp    list    libs    lien    lien    lien
snar    snap    snar    snot    snot    snot    soss    soda    sods    sora

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
ague    ague    ague    ague    ague    ague    ague    ague    ague    ague
lien    lien    lien    lien    lier    lier    lier    lier    lier    lies
sord    sore    sort    soss    soda    sods    sora    sore    soss    sods

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
ague    ague    ague    ague    ague    ague    ague    ague    ague    ague
lies    lies    lift    lift    ligs    ligs    lill    lill    lill    lill
sore    soss    sofa    soft    soss    soys    soke    sold    sole    sols

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
ague    ague    ague    ague    ague    ague    ague    ague    ague    ague
lilt    lilt    lily    lima    lima    lima    lima    lime    lime    lime
sola    sols    sols    soar    soft    sops    soss    soak    soap    soar

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
ague    ague    ague    ague    ague    ague    ague    ague    ague    ague
lime    lime    limn    limn    limn    limn    limp    limp    limp    limy
sops    soss    sofa    soft    sops    soss    soft    sops    soss    sops

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
ague    ague    ague    ague    ague    ague    ague    ague    ague    ague
limy    line    line    line    line    ling    ling    ling    ling    ling
soss    sogs    sohs    soss    sots    sogs    soho    sohs    soss    sots

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
ague    ague    ague    ague    ague    ague    ague    ague    ague    ague
linn    linn    linn    linn    linn    lins    lins    lins    lins    lins
sogs    sohs    soke    soss    sots    sogs    sohs    soke    soss    soth

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
ague    ague    ague    ague    ague    ague    ague    ague    ague    ague
lins    lint    lint    lint    lint    liny    liny    liny    liny    lipa
sots    sogs    sohs    soss    sots    sogs    sohs    soss    sots    soss

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
ague    ague    ague    ague    ague    ague    ague    ague    ague    ague
lipe    lips    lira    lira    lire    lire    lire    liri    liri    lisk
soss    soss    sols    sots    sold    sols    sots    sols    sots    soot

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
ague    ague    ague    ague    ague    ague    ague    ague    ague    ague
lisp    lisp    lisp    list    list    list    lite    lits    loge    logs
sohs    soot    soss    sohs    soot    soss    soss    soss    sned    snee

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
ague    ague    ague    ague    ague    ague    ague    ague    ague    ahem
logs    loir    loll    loll    loma    lome    lome    lose    lost    lome
snye    snar    sned    snee    snar    snap    snar    snod    snot    sype

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
ahem    ahem    ahem    ahoy    akee    akee    akee    akee    akee    akee
lore    lose    lowe    lerp    libs    lill    lill    lill    lilt    lime
syne    sype    syne    smee    snee    sned    snee    snod    snot    sned

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
akee    akee    akee    akee    akee    akee    akee    akee    akin    akin
limn    limn    lira    lire    lire    lirk    lite    lits    leke    leme
sned    snee    snot    sned    snod    snot    sned    snee    seed    sese

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
akin    akin    akin    akin    akin    akin    alae    alae    alae    alae
leno    lere    leva    leva    leve    levo    lade    lads    lake    lake
sett    seed    seep    seer    seed    seed    sned    snee    snap    snar

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alae    alae    alae    alae    alae    alae    alae    alae    alae    alae
lake    lall    lall    lall    lame    lams    lare    lare    lark    larn
sned    sned    snee    snod    sned    snee    sned    snod    snot    sned

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alae    alae    alae    alae    alae    alae    alae    alae    alae    alae
larn    larn    larn    lars    late    lats    lave    lavs    laze    labs
snee    snod    snot    snee    sned    snee    sned    snee    sned    spue

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alae    alae    alae    alae    alae    alae    alae    alae    alae    alae
lade    lade    lahs    lahs    lake    lake    lake    lake    lake    lake
sped    spek    spae    spas    spam    span    spar    spas    sped    spek

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alae    alae    alae    alae    alae    alae    alae    alae    alae    alae
lake    lake    lake    laky    lall    lall    lama    lame    lame    lamp
spud    spun    spur    spas    sped    spod    spet    sped    spek    spet

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alae    alae    alae    alae    alae    alae    alae    alae    alae    alae
laps    lare    lare    lare    lari    lark    lark    larn    larn    larn
spue    sped    spek    spod    spek    spet    spot    sped    spet    spod

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alae    alae    alae    alae    alae    alae    alae    alae    alae    alae
larn    late    late    lati    lava    lave    lave    laze    laze    lacs
spot    sped    spek    spek    spet    sped    spek    sped    spek    syke

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alae    alae    alae    alae    alae    alae    alae    alae    alae    alae
lade    lade    lade    lads    lady    laer    lain    lain    lain    lair
syed    syen    syes    syes    syes    syne    syke    synd    syne    syke

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alae    alae    alae    alae    alae    alae    alae    alae    alae    alae
lair    lake    lake    lake    laky    lall    lall    lama    lama    lame
syne    syed    syen    syes    syes    syed    syes    syen    syes    syed

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alae    alae    alae    alae    alae    alae    alae    alae    alae    alae
lame    lame    lamp    lams    lare    lare    lare    lare    lari    larn
syen    syes    syes    syes    syed    syen    syes    synd    syes    syed

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alae    alae    alae    alae    alae    alae    alae    alae    alae    alae
larn    larn    larn    larn    larn    lars    lars    lars    lars    lars
syes    syke    synd    syne    sype    syes    syke    syne    sype    syph

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alae    alae    alae    alae    alae    alae    alae    alae    alae    alae
lass    lass    lass    late    late    late    lati    lats    lava    lava
syke    sype    syph    syed    syen    syes    syes    syes    syen    syes

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alae    alae    alae    alae    alae    alae    alae    alae    alae    alae
lave    lave    lave    lavs    lawn    laws    laze    laze    laze    lazy
syed    syen    syes    syes    syke    syke    syed    syen    syes    syes

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alae    alae    alae    alae    alae    alae    alae    alae    alae    alae
lehr    leke    leke    leke    leke    leke    leke    leke    leke    leke
scar    scad    scam    scan    scar    scud    scul    scum    scup    scur

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alae    alae    alae    alae    alae    alae    alae    alae    alae    alae
lept    lere    lerp    leal    leal    leal    leam    lean    lean    lean
scut    scop    scot    sere    serf    sers    sere    sera    sere    sers

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alae    alae    alae    alae    alae    alae    alae    alae    alae    alae
leap    leas    leas    leat    leat    leek    leek    leep    leep    leep
sers    sere    sers    sera    sers    sent    sett    sens    sent    sess

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alae    alae    alae    alae    alae    alae    alae    alae    alae    alae
leep    leep    leer    leer    leer    leer    leer    leer    leer    leer
sets    sett    seme    sena    sene    sens    sese    sess    seta    sets

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alae    alae    alae    alae    alae    alae    alae    alae    alae    alae
lees    lees    lees    lees    leet    leet    leet    leet    legs    lehr
seme    sene    sens    sets    sena    sens    sent    sess    segs    sear

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alae    alae    alae    alae    alae    alae    alae    alae    alae    alae
lehr    lehr    lehr    leir    leir    leir    leir    leir    leir    leis
seas    sese    sess    sele    self    sels    sena    sene    sens    sele

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alae    alae    alae    alae    alae    alae    alae    alae    alae    alae
leis    leis    leis    leis    leis    leke    leke    leke    leke    leke
sels    sene    sens    sere    sers    seal    seam    sean    sear    seas

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alae    alae    alae    alae    alae    alae    alae    alae    alae    alae
leks    leks    leme    leng    lens    lens    lent    lent    lept    lere
seas    sees    sess    sets    segs    sets    segs    sekt    sess    seld

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alae    alae    alae    alae    alae    alae    alae    alae    alae    alae
lere    lere    lere    lere    lere    lere    lerp    lerp    lerp    lerp
sell    sels    send    sens    seps    sets    sees    sekt    sels    sens

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alae    alae    alae    alae    alae    alae    alae    alae    alae    alae
lerp    lerp    lerp    less    less    lest    lest    lest    lets    leva
sent    sets    sett    seps    sets    sekt    seps    sept    sees    seel

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alae    alae    alae    alae    alae    alae    alae    alae    alae    alae
leva    leva    leva    leva    levy    leke    leke    leke    leke    leke
seem    seen    seer    sees    sees    swad    swam    swan    swap    swum

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alae    alae    alae    alae    alae    alae    alae    alae    alae    alae
leks    lere    lerp    lets    like    like    like    like    like    like
swee    swop    swot    swee    stap    star    sted    stem    sten    step

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alae    alae    alae    alae    alae    alae    alae    alae    alae    alae
like    like    like    lill    lilt    lilt    lilt    lima    lima    lima
stud    stum    stun    sted    stet    stoa    stot    stem    sten    stet

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alae    alae    alae    alae    alae    alae    alae    alae    alae    alae
lime    lime    lime    lime    limn    limn    limp    lipa    lipa    lipe
sted    stem    sten    step    sted    stet    stet    stum    stun    stud

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alae    alae    alae    alae    alae    alae    alae    alae    alae    alae
lipe    lipe    lira    lira    lira    lira    lire    lire    lire    lire
stum    stun    stem    sten    stet    stot    sted    stem    sten    step

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alae    alae    alae    alae    alae    alae    alae    alae    alae    alae
lire    lirk    lirk    lite    lite    lite    lite    live    live    live
stop    stet    stot    sted    stem    sten    step    sted    stem    sten

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alae    alae    alae    alae    alae    alae    alae    alae    alae    alae
live    loam    loan    loan    loan    loca    lode    lods    loge    loge
step    sere    sera    sere    sers    sekt    sess    sees    segs    sess

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alae    alae    alae    alae    alae    alae    alae    alae    alae    alae
logs    logy    logy    loin    loin    loin    loin    loin    loin    loin
segs    segs    sess    sekt    seld    sele    sels    sera    sere    sers

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alae    alae    alae    alae    alae    alae    alae    alae    alae    alae
loir    loir    loir    loir    loir    loir    loke    loke    loke    loke
sele    self    sels    sena    sene    sens    seal    seam    sean    sear

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alae    alae    alae    alae    alae    alae    alae    alae    alae    alae
loke    loll    loll    loll    loll    loll    loma    loma    loma    loma
seas    seed    seel    sees    seme    sets    seel    seem    seen    seer

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alae    alae    alae    alae    alae    alae    alae    alae    alae    alae
loma    loma    lome    lone    lone    long    lope    lore    lore    lore
sees    sess    sess    segs    sets    sets    sess    seld    sell    sels

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alae    alae    alae    alae    alae    alae    alae    alae    alae    alae
lore    lore    lore    lore    lorn    lorn    lorn    lorn    lorn    lorn
send    sens    seps    sets    seed    sees    sekt    seld    sele    sels

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alae    alae    alae    alae    alae    alae    alae    alae    alae    alae
lorn    lorn    lorn    lorn    lorn    lorn    lory    lory    lory    lory
seme    seps    sept    seta    sets    sett    sees    sels    sens    seps

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alae    alae    alae    alae    alae    alae    alae    alae    alae    alae
lory    lose    lose    loss    loss    lost    lost    lost    lota    lota
sets    seps    sets    seps    sets    sekt    seps    sept    seel    seem

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alae    alae    alae    alae    alae    alae    alae    alae    alae    alae
lota    lota    lota    lota    lote    loti    loti    loti    loti    loti
seen    seer    sees    sess    sess    seek    seel    seer    sees    sess

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alae    alae    alae    alae    alae    alae    alae    alae    alae    alae
lots    loun    loun    loun    loun    loun    loun    loup    loup    loup
sees    seld    sele    sels    seta    sets    sett    sels    sets    sett

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alae    alae    alae    alae    alae    alae    alae    alae    alae    alae
lour    lour    lour    lour    lour    lous    lous    lous    lout    lowe
sele    self    sels    seta    sets    sele    sels    sets    sels    sess

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alae    alae    alae    alae    alae    alae    alae    alae    alae    alae
lown    lown    lown    lown    lowp    lowp    lows    lowt    lowt    lobe
sekt    seme    sese    sess    sekt    sess    seme    sekt    sess    swum

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alae    alae    alae    alae    alae    alae    alae    alae    alae    alae
lods    loke    loke    loke    loke    loke    loll    lope    lore    lorn
swee    swad    swam    swan    swap    swum    swee    swum    swop    swee

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alae    alae    alae    alae    alae    alae    alae    alae    alae    alan
lorn    lots    lube    luds    luke    lull    lums    lurs    luvs    lade
swot    swee    smur    smee    smur    smee    smee    smee    smee    seed

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alan    alan    alan    alan    alan    alan    alan    alan    alan    alan
lade    lady    lake    lama    lama    lame    lame    lare    lare    lare
sese    sese    seed    seep    seer    seed    sese    seed    seld    sele

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alan    alan    alan    alan    alan    alan    alan    alan    alan    alan
lare    lare    lare    lari    lari    lari    lari    lari    late    late
seme    send    sene    seep    sekt    sent    sept    sett    seed    sese

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alan    alan    alan    alan    alan    alan    alan    alan    alan    alan
lati    lava    lava    lave    laze    lazo    lade    lake    lake    lake
seep    seep    seer    seed    seed    seed    sped    spae    sped    spud

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alan    alan    alan    alan    alan    alan    alan    alan    alan    alan
lake    laky    laky    lama    lame    lare    lare    lari    lari    late
spue    spae    spue    spew    sped    sped    spod    spet    spot    sped

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alan    alan    alan    alan    alan    alan    alan    alan    alan    alan
lati    lava    lave    laze    lazo    lazo    lazo    lace    lacy    lade
spet    spew    sped    sped    sped    spet    spew    syke    syke    syed

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alan    alan    alan    alan    alan    alan    alan    alan    alan    alan
lake    lame    lane    lare    lare    lare    lare    lare    lase    lase
syed    syed    syke    syed    syke    synd    syne    sype    syke    sype

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alan    alan    alan    alan    alan    alan    alan    alan    alan    alan
late    lave    laze    lazo    leke    leke    leke    leku    leku    leku
syed    syed    syed    syed    scab    scad    scud    scab    scag    scug

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alan    alan    alan    alan    alan    alan    alan    alan    alan    alan
leke    leme    leme    leno    leno    lere    lere    lere    lere    lere
seed    seed    sese    sekt    sett    seed    seld    sele    seme    send

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alan    alan    alan    alan    alan    alan    alan    alan    alan    alan
lere    leva    leva    leve    levo    leke    leke    leke    leku    leku
sene    seep    seer    seed    seed    swab    swad    swee    swab    swag

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alan    alan    alan    alan    alan    alan    alan    alan    alan    alan
leme    lere    lere    leve    levy    lido    lido    lido    like    like
swee    swee    swob    swee    swee    sted    stet    stew    stab    sted

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alan    alan    alan    alan    alan    alan    alan    alan    alan    alan
like    like    lilo    lilo    lilo    lilo    lilo    lilo    lima    lima
stub    stud    sted    stet    stew    stob    stot    stow    step    stew

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alan    alan    alan    alan    alan    alan    alan    alan    alan    alan
lime    limo    limo    limo    lipa    lipe    lipe    lipo    lipo    lira
sted    sted    stet    stew    stub    stub    stud    stub    stud    step

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alan    alan    alan    alan    alan    alan    alan    alan    alan    alan
lira    lira    lira    lira    lire    lire    liri    liri    liri    liri
stew    stob    stop    stow    sted    stob    step    stet    stob    stop

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alan    alan    alan    alan    alan    alan    alan    alan    alan    alan
liri    lite    live    loci    loco    lode    lode    loge    logy    loke
stot    sted    sted    sekt    sekt    seed    sese    sese    sese    seed

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alan    alan    alan    alan    alan    alan    alan    alan    alan    alan
loma    loma    lome    lome    lope    lore    lore    lore    lore    lore
seep    seer    seed    sese    sese    seed    seld    sele    seme    send

aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs    aahs
alan    alan    alan    alan    alan    alan    alan    alan    alan    alan
lore    lory    lory    lory    lota    lota    lote    lote    loti    loto
sene    sele    seme    sene    seep    seer    seed    sese    seep    seed

and I've checked odd-looking words at:

https://www.anagrammer.com/dictionary/sowpods/syen

and yes, apparently syed and syen are valid words, and so were all the others I checked too. Plus I checked a few wrong words to make sure the checker wasn't just being easy on me... eg, szed and szen are not valid words.

If you are a teacher producing puzzles for students, then I think we'll have to pare back the list to be only words actually used by normal people in everyday life.
 
Upvote 0

B4XDev

Member
Licensed User
Lol that puzzle ate at me over lunch. So far I have an algorithm that seems to be producing valid 4x4 word-squares, eg:

If you are a teacher producing puzzles for students, then I think we'll have to pare back the list to be only words actually used by normal people in everyday life.

Awesome! Yes, I'll need to get rid of the obscure words, although maybe I could add them back in for the advanced students.

Just curious: how fast is your algorithm finding the 4x4 grids? It seems a lot of the algorithms are brute forcing the solutions.

Can you do a 6x6?
 
Upvote 0

Jeffrey Cameron

Well-Known Member
Licensed User
Longtime User
Are you looking to generate a "word search" type of thing from a pre-defined list of words, or just randomly create grids of letters? Or are you looking to "discover" known words in a X-by-X grid?
 
Last edited:
Upvote 0

Jeffrey Cameron

Well-Known Member
Licensed User
Longtime User
I'm looking to create a grid of words. It would be a very easy word search, as every row and column will be a word. 😁
I wrote a specific class for this in VB.NET, it wouldn't be that hard to translate it for B4J. You provide a list of words and the grid size and it will create across/down (not diagonally if I recall correctly) placement and fill with random letters. I can post the .NET class if you are interested?
 
Upvote 0

B4XDev

Member
Licensed User
I wrote a specific class for this in VB.NET, it wouldn't be that hard to translate it for B4J. You provide a list of words and the grid size and it will create across/down (not diagonally if I recall correctly) placement and fill with random letters. I can post the .NET class if you are interested?

That's more of a crossword-like grid. See @emexes post here for an example of double word-squares.
 
Upvote 0

emexes

Expert
Licensed User
Just curious: how fast is your algorithm finding the 4x4 grids? It seems a lot of the algorithms are brute forcing the solutions.

4x4s come out faster than I can read 'em. 5x5's come out maybe 1 per minute. I'm brute-forcing it too, but for each horizontal word I try, I'm checking to make sure that each vertical line is plausibly a word before going deeper down that particular rabbit hole.

Can you do a 6x6?

That is a very, very good question and I think you can guess the answer. 😢
 
Upvote 0

DonManfred

Expert
Licensed User
Longtime User
That is a very, very good question and I think you can guess the answer. 😢
It is not you if you don´t do a deeper dive now :D 💪
 
Upvote 0

B4XDev

Member
Licensed User
4x4s come out faster than I can read 'em. 5x5's come out maybe 1 per minute. I'm brute-forcing it too, but for each horizontal word I try, I'm checking to make sure that each vertical line is plausibly a word before going deeper down that particular rabbit hole.

That is a very, very good question and I think you can guess the answer. 😢

Uh oh! Challenge accepted! 😁
 
Upvote 0

kimstudio

Active Member
Licensed User
Longtime User
Is this related to if I want to make a word puzzle game with matrix of letters and user can draw connections to make a word? I want to make one. The game I played has a problem that those 3 or 4 letter words are not frequently used words at all, make it very difficult for English learners.

From word list to make a matrix and the word is connectable from letters is a challenge. (?)
 
Upvote 0

B4XDev

Member
Licensed User
Is this related to if I want to make a word puzzle game with matrix of letters and user can draw connections to make a word? I want to make one. The game I played has a problem that those 3 or 4 letter words are not frequently used words at all, make it very difficult for English learners.

From word list to make a matrix and the word is connectable from letters is a challenge. (?)

I think you're talking about a Boggle board, which is a random placement of letters on a 4x4 grid. The user can then try to find as many words using connected letters (but no repeats). That is an extremely easy thing to do. Just randomly generate a 4x4 grid of letters, then use an algorithm to find all the English words. If you want, you can seed the board with a particularly long word. Generally, in most configurations, you'll be able to find some common or well-known words.
 
Upvote 0

emexes

Expert
Licensed User
Oddly enough, I do have some ideas for lunchtime.
BTW, you don't have to create ALL the possible 6x6s. Just one (at a time). Not sure if that helps...

Thanks (I think... 🤔)

I'm not admitting defeat yet, but lunchtime wasn't long enough.

I've made some progress like, for example, of the 676 permutations of first and last letters vs 22158 6-letter words:

- there are 149 permutations that have no matching words
- there are 45 permutations that have just one matching word
- there are 482 permutations that have two or more matching words

- the most common permutation is 895 words beginning and ending with S
- the silver medal is 547 words beginning with C and ending with S
- the bronze medal is 431 words beginning with B and ending with S

but brute force will still be hard work.

A lookup table of eg words beginning with given four letters is "only" a half-million entries long, so that might be another tack.
 
Last edited:
Upvote 0

emexes

Expert
Licensed User
BTW, you don't have to create ALL the possible 6x6s. Just one (at a time). Not sure if that helps...

In retrospect, it sure does. I've been watching for a few minutes and we still haven't budged off the aa's. Instead, it seems to have taken a liking to Talk Like A Pirate Day.

Log output:
117 solutions in 5007 ms = 42.794871794871796 ms per solution
3940 Hey we might have something here:
L0    aarrgh
L1    pleura
L2    hobbit
L3    theave
L4    halter
L5    assots
81 solutions in 5011 ms = 61.864197530864196 ms per solution
4021 Hey we might have something here:
L0    aarrgh
L1    smeary
L2    dogmen
L3    irised
L4    cenote
L5    stanes
85 solutions in 5044 ms = 59.34117647058824 ms per solution
4106 Hey we might have something here:
L0    aarrgh
L1    sneery
L2    sorned
L3    aliner
L4    reseda
L5    tsetse
74 solutions in 5012 ms = 67.72972972972973 ms per solution
4180 Hey we might have something here:
L0    aarrgh
L1    steare
L2    paster
L3    evited
L4    nidate
L5    scened

The solutions look valid. Even words like assart where I'm thinking wtf? is that what you get when people sit for moon-shots on photocopiers? turns out it's a valid word:

1669124052889.png


but not what I guessed:

1669124022729.png
 
Upvote 0

emexes

Expert
Licensed User
you don't have to create ALL the possible 6x6s

works ok with 7x7s as well, albeit a bit slower:

Log output:
Read 267752 words
Found 32909 7-letter words
64794 AcrossPossibleLetters in 30431 ms
64794 DownPossibleLetters in 1 ms
11 solutions in 27343 ms = 2485.7272727272725 ms per solution
11 Hey we might have something here:
L0    abactor
L1    bagasse
L2    agemate
L3    cambrel
L4    tsardom
L5    osteoma
L6    reelman
6 solutions in 6634 ms = 1105.6666666666667 ms per solution
17 Hey we might have something here:
L0    abactor
L1    becasse
L2    acetate
L3    catered
L4    tsardom
L5    osteoma
L6    reedman
1 solutions in 5672 ms = 5672 ms per solution
18 Hey we might have something here:
L0    abactor
L1    bedrape
L2    adheres
L3    cremant
L4    taramea
L5    openest
L6    restate
11 solutions in 13960 ms = 1269.090909090909 ms per solution
29 Hey we might have something here:
L0    abactor
L1    berline
L2    araaras
L3    clarini
L4    tiritis
L5    onanist
L6    resists

and again, I am learning new words:

1669124603107.png


and about to give 8x8s another go, now that I can see it might take a minute or two to come up with the first solution. And if that's not an excuse to break for a cup of tea, then I don't know what is.
 
Upvote 0

emexes

Expert
Licensed User
and about to give 8x8s another go, now that I can see it might take a minute or two to come up with the first solution.

Half an hour later... nothing. I have one trick left: don't do the searching row-by-row, but do it diagonalish to reduce the letter choices by maximising the number of letters before (ie left and above) the current search position. But not tonight.

Log output:
Read 267752 words
Found 40161 8-letter words
102303 AcrossPossibleLetters in 65410 ms
102303 DownPossibleLetters in 0 ms
 
Upvote 0
Top