Word wheel: Difference between revisions

Content added Content deleted
m (→‎{{header|REXX}}: changed the wording in the last output section header.)
(→‎{{header|Raku}}: Use a module to cut down on verbosity)
Line 260: Line 260:
Defaults to task specified wheel, unixdict.txt, minimum 3 letters.
Defaults to task specified wheel, unixdict.txt, minimum 3 letters.


Using [https://modules.raku.org/search/?q=Terminal%3A%3ABoxer Terminal::Boxer] from the Raku ecosystem.
<lang perl6>my %*SUB-MAIN-OPTS = :named-anywhere;

<lang perl6>use Terminal::Boxer;

my %*SUB-MAIN-OPTS = :named-anywhere;


unit sub MAIN ($wheel = 'ndeokgelw', :$dict = './unixdict.txt', :$min = 3);
unit sub MAIN ($wheel = 'ndeokgelw', :$dict = './unixdict.txt', :$min = 3);
Line 274: Line 278:
};
};


say "Using $dict, minimum $min letters.";
print { qq:to/END/;

Using $dict, minimum $min letters.
print rs-box :3col, :3cell, :indent("\t"), $wheel.comb».uc;
\t┌───┬───┬───┐
\t│ $^a │ $^b │ $^c │
\t├───┼───┼───┤
\t│ $^d │ $^e │ $^f │
\t├───┼───┼───┤
\t│ $^g │ $^h │ $^i │
\t└───┴───┴───┘
END
}( |$wheel.comb».uc );


printf "%d letters: %s\n", .key, .value.sort.join(', ') for %words.sort;
printf "%d letters: %s\n", .key, .value.sort.join(', ') for %words.sort;
Line 294: Line 290:
<lang>raku word-wheel.raku</lang>
<lang>raku word-wheel.raku</lang>
<pre>Using ./unixdict.txt, minimum 3 letters.
<pre>Using ./unixdict.txt, minimum 3 letters.
╭───┬───┬───╮
┌───┬───┬───┐
│ N │ D │ E │
│ N │ D │ E │
├───┼───┼───┤
├───┼───┼───┤
Line 300: Line 296:
├───┼───┼───┤
├───┼───┼───┤
│ E │ L │ W │
│ E │ L │ W │
╰───┴───┴───╯
└───┴───┴───┘
3 letters: eke, elk, keg, ken, wok
3 letters: eke, elk, keg, ken, wok
4 letters: keel, keen, keno, knee, knew, know, kong, leek, week, woke
4 letters: keel, keen, keno, knee, knew, know, kong, leek, week, woke
Line 313: Line 309:


<pre>Using ./words.txt, minimum 3 letters.
<pre>Using ./words.txt, minimum 3 letters.
╭───┬───┬───╮
┌───┬───┬───┐
│ N │ D │ E │
│ N │ D │ E │
├───┼───┼───┤
├───┼───┼───┤
Line 319: Line 315:
├───┼───┼───┤
├───┼───┼───┤
│ E │ L │ W │
│ E │ L │ W │
╰───┴───┴───╯
└───┴───┴───┘
3 letters: dkg, dkl, eek, egk, eke, ekg, elk, gok, ked, kee, keg, kel, ken, keo, kew, kln, koe, kol, kon, lek, lgk, nek, ngk, oke, owk, wok
3 letters: dkg, dkl, eek, egk, eke, ekg, elk, gok, ked, kee, keg, kel, ken, keo, kew, kln, koe, kol, kon, lek, lgk, nek, ngk, oke, owk, wok
4 letters: deek, deke, doek, doke, donk, eked, elke, elko, geek, genk, gonk, gowk, keel, keen, keld, kele, kend, keno, keon, klee, knee, knew, know, koel, koln, kone, kong, kwon, leek, leke, loke, lonk, okee, oken, week, welk, woke, wolk, wonk
4 letters: deek, deke, doek, doke, donk, eked, elke, elko, geek, genk, gonk, gowk, keel, keen, keld, kele, kend, keno, keon, klee, knee, knew, know, koel, koln, kone, kong, kwon, leek, leke, loke, lonk, okee, oken, week, welk, woke, wolk, wonk
Line 331: Line 327:
<lang>raku word-wheel.raku iuymslleb --dict=./words.txt --min=4</lang>
<lang>raku word-wheel.raku iuymslleb --dict=./words.txt --min=4</lang>
<pre>Using ./words.txt, minimum 4 letters.
<pre>Using ./words.txt, minimum 4 letters.
╭───┬───┬───╮
┌───┬───┬───┐
│ I │ U │ Y │
│ I │ U │ Y │
├───┼───┼───┤
├───┼───┼───┤
Line 337: Line 333:
├───┼───┼───┤
├───┼───┼───┤
│ L │ E │ B │
│ L │ E │ B │
╰───┴───┴───╯
└───┴───┴───┘
4 letters: bels, beys, bise, blus, bmus, bsem, bsie, bslm, bsme, bums, busy, buys, byes, eisb, elis, ells, elms, elsi, elsy, elys, emus, emys, ills, ilse, imsl, isle, islm, islu, ismy, leis, leys, libs, lies, lise, lues, luis, lums, lyes, lyse, mels, mibs, mils, mise, misy, msie, musb, muse, sbli, sell, semi, siey, sile, sill, sime, sium, slbm, sleb, sley, slim, slub, slue, slum, suey, suiy, sull, sumi, sumy, syli, syll, uims
4 letters: bels, beys, bise, blus, bmus, bsem, bsie, bslm, bsme, bums, busy, buys, byes, eisb, elis, ells, elms, elsi, elsy, elys, emus, emys, ills, ilse, imsl, isle, islm, islu, ismy, leis, leys, libs, lies, lise, lues, luis, lums, lyes, lyse, mels, mibs, mils, mise, misy, msie, musb, muse, sbli, sell, semi, siey, sile, sill, sime, sium, slbm, sleb, sley, slim, slub, slue, slum, suey, suiy, sull, sumi, sumy, syli, syll, uims
5 letters: belis, bells, belus, bemis, biles, bills, bisme, blues, bulls, bulse, busey, buyse, eblis, ellis, embus, emuls, eulis, ileus, illus, ilyse, isbel, iseum, lesiy, lesli, lesly, lieus, liles, limbs, limes, limsy, lisle, lubes, luise, lusby, lyles, melis, mells, miles, mills, misly, mlles, mules, mulls, mulse, musie, musil, myles, mysel, sebum, selby, selim, selli, selly, sibel, sible, sibyl, silly, silyl, simul, slily, slime, slimy, smell, smile, smily, sully, sybil, syble, yells, yills, ylems, yules, yusem
5 letters: belis, bells, belus, bemis, biles, bills, bisme, blues, bulls, bulse, busey, buyse, eblis, ellis, embus, emuls, eulis, ileus, illus, ilyse, isbel, iseum, lesiy, lesli, lesly, lieus, liles, limbs, limes, limsy, lisle, lubes, luise, lusby, lyles, melis, mells, miles, mills, misly, mlles, mules, mulls, mulse, musie, musil, myles, mysel, sebum, selby, selim, selli, selly, sibel, sible, sibyl, silly, silyl, simul, slily, slime, slimy, smell, smile, smily, sully, sybil, syble, yells, yills, ylems, yules, yusem