Yeah does it let us specify stuff like this? That's like how the WordGraph
s lead us everywhere. Why can't we parameterize them & specify them like we did when we hard-coded it? Then it'll be less fragile and it will be prone. Try reading through this you can have DictionaryLookup[Repeated[_, {4}]]
or you can have this script. How do you know what the words are?
ClearAll[findWordHypercube];
Begin["`findWordHypercube`"];
ClearAll[inspect, nextIndices, indices, tag];
Options[findWordHypercube] = {"Random" -> True};
findWordHypercube[dims_Integer, len_Integer, op : OptionsPattern[]] :=
findWordHypercube[ConstantArray[_, len~ConstantArray~dims], op]
findWordHypercube[mat_, OptionsPattern[]] :=
Block[{$random =
If[OptionValue["Random"], RandomSample,
Identity], $RecursionLimit = Infinity, $IterationLimit =
Infinity, dictCache}, Catch[inspect[mat] =!= Null, tag]];
dict[numLetters_] :=
Replace[dictCache[numLetters], _dictCache :> (dictCache[numLetters] =
{"Abba", "abbe", "abbé", "Abby", "abed", "Abel", "abet", "able",
"ably", "abut", "aced", "aces", "ache", "achy", "acid",
"acme", "acne", "acre", "acts", "Acts", "Adam", "Adan", "Adar",
"adds", "Aden", "afar", "Afro", "agar", "aged", "ages",
"Agni", "agog", "Agra", "ague", "Ahab", "ahas", "ahem", "ahoy",
"Aida", "aide", "aids", "AIDS", "ails", "aims", "Ainu",
"airs", "airy", "ajar", "Ajax", "akin", "Alan", "Alar", "alas",
"Alas", "Alba", "albs", "Aldo", "Alec", "ales", "Alex",
"alga", "Alis", "ally", "Alma", "alms", "aloe", "Alpo", "alps",
"Alps", "also", "Alta", "alto", "alts", "alum", "Alva",
"amen", "Amen", "amid", "Amie", "ammo", "amok", "Amos", "amps",
"Amur", "anal", "ands", "Andy", "anew", "ankh", "Anna",
"Anne", "anon", "ante", "anti", "ants", "anus", "aped", "apes",
"apex", "Apia", "apse", "aqua", "Arab", "Aral", "arch",
"Arch", "arcs", "area", "ares", "Ares", "Argo", "aria", "arid",
"arks", "arms", "army", "Arne", "Arno", "Aron", "arts",
"arty", "arum", "asap", "Ashe", "ashy", "Asia", "asks", "asps",
"ates", "atom", "atop", "Aube", "Audi", "auks", "aunt",
"aura", "auto", "aver", "aves", "Aves", "avid", "Avis", "Avon",
"avow", "away", "awed", "awes", "awls", "awns", "awry",
"axed", "Axel", "axes", "axis", "Axis", "axle", "axon", "Axum",
"ayah", "ayes", "Azov", "Baal", "baas", "babe", "baby",
"Bach", "back", "bade", "Baez", "bags", "bahs", "baht", "bail",
"bait", "bake", "Baku", "bald", "bale", "Bali", "balk",
"ball", "Ball", "balm", "band", "bane", "bang", "bani", "bank",
"bans", "baps", "barb", "bard", "bare", "barf", "Bari",
"bark", "barn", "Barr", "bars", "Bart", "base", "bash", "bask",
"bass", "Bass", "bast", "bate", "bath", "bats", "Batu",
"baud", "Baum", "bawd", "bawl", "bays", "bead", "beak", "beam",
"bean", "Bean", "bear", "beat", "beau", "Beau", "beck",
"Beck", "Bede", "beds", "beef", "been", "beep", "beer", "bees",
"beet", "begs", "Bela", "bell", "Bell", "belt", "bend",
"bent", "Benz", "berg", "Berg", "berk", "berm", "Bern", "Bert",
"Bess", "best", "Best", "beta", "Beth", "bets", "bevy",
"beys", "bias", "bibs", "bide", "bids", "bier", "biff", "bike",
"Biko", "bile", "bilk", "bill", "Bill", "bind", "Bing",
"bins", "bios", "BIOS", "bird", "Bird", "Biro", "bite", "bits",
"blab", "blag", "blah", "bled", "blew", "blip", "blob",
"bloc", "blot", "blow", "blue", "blur", "boar", "boas", "Boas",
"boat", "bobs", "bock", "bode", "bods", "body", "Boer",
"bogs", "Bohr", "boil", "bola", "bold", "bole", "boll", "bolt",
"bomb", "bond", "Bond", "bone", "bong", "bonk", "Bonn",
"bony", "boob", "book", "boom", "boon", "boor", "boos", "boot",
"bops", "bore", "Borg", "Bork", "born", "Born", "Boru",
"Bose", "bosh", "boss", "both", "bots", "bout", "bowl", "bows",
"boxy", "Boyd", "boys", "bozo", "brad", "Brad", "brae",
"brag", "bran", "Bran", "bras", "brat", "bray", "Bray", "bred",
"Bren", "Bret", "brew", "brie", "Brie", "brig", "brim",
"brio", "Brit", "Brno", "brow", "Brut", "bubo", "bubs", "buck",
"Buck", "buds", "buff", "bugs", "bulb", "bulk", "bull",
"bumf", "bump", "bums", "bung", "bunk", "buns", "bunt", "buoy",
"burg", "burk", "burl", "Burl", "burn", "burp", "burr",
"Burr", "burs", "Burt", "bury", "bush", "Bush", "busk", "buss",
"bust", "busy", "buts", "butt", "buys", "buzz", "byes",
"Byrd", "byre", "byte", "cabs", "cads", "cafe", "café", "caff",
"cage", "Cage", "Cain", "cake", "calf", "Cali", "call",
"calm", "came", "camp", "cams", "cane", "cans", "cant", "cape",
"Caph", "capo", "caps", "Cara", "card", "care", "Carl",
"carp", "Carr", "cars", "cart", "Cary", "case", "Case", "cash",
"Cash", "cask", "cast", "Cato", "cats", "Catt", "cave",
"caws", "cays", "Cebu", "ceca", "cede", "cell", "Celt", "cent",
"Cerf", "Chad", "Chan", "chap", "char", "chat", "chef",
"Chen", "Cher", "chew", "chic", "chid", "chin", "chip", "chis",
"chit", "choc", "chop", "Chou", "chow", "chub", "chug",
"chum", "ciao", "cine", "cite", "cits", "city", "clad", "clam",
"clan", "clap", "claw", "clay", "Clay", "clef", "Clem",
"Cleo", "clew", "Clio", "clip", "clod", "clog", "clop", "clot",
"cloy", "club", "clue", "coal", "coat", "coax", "Cobb",
"cobs", "coca", "cock", "coco", "coda", "code", "cods", "Cody",
"coed", "cogs", "coho", "coif", "coil", "coin", "coir",
"coke", "Coke", "cola", "cold", "Cole", "Colo", "cols", "colt",
"Colt", "coma", "comb", "come", "Como", "cone", "Cong",
"conk", "cons", "cony", "cook", "Cook", "cool", "coon", "coop",
"coos", "coot", "cope", "cops", "copy", "Cora", "cord",
"core", "cork", "Cork", "corm", "corn", "Cory", "cosh", "cost",
"cote", "Cote", "cots", "coup", "cove", "cowl", "cows",
"cozy", "crab", "crag", "cram", "crap", "craw", "Cray", "cred",
"Cree", "crew", "crib", "crop", "crow", "Crow", "crud",
"crux", "Crux", "Cruz", "Cuba", "cube", "cubs", "cuds", "cued",
"cues", "cuff", "cull", "cult", "cups", "curb", "curd",
"cure", "curl", "curs", "curt", "Curt", "cusp", "cuss", "cute",
"cuts", "cyan", "cyst", "czar", "dabs", "dace", "Dada",
"dado", "dads", "daft", "dags", "dais", "dale", "Dale", "Dali",
"dame", "Dame", "damn", "damp", "dams", "Dana", "Dane",
"dang", "dank", "Dans", "dare", "Dare", "dark", "darn", "dart",
"dash", "data", "date", "daub", "Dave", "Davy", "dawn",
"Dawn", "days", "daze", "dead", "deaf", "deal", "dean", "Dean",
"dear", "debs", "Debs", "debt", "deck", "deco", "deed",
"deem", "deep", "deer", "deft", "defy", "deli", "dell", "demo",
"Dena", "Dene", "Deng", "dens", "dent", "deny", "Deon",
"derv", "desk", "Devi", "dews", "dewy", "dhow", "dial", "Dial",
"Dias", "dibs", "dice", "Dick", "dido", "Dido", "died",
"Diem", "dies", "diet", "digs", "dike", "dill", "dime", "dims",
"Dina", "dine", "ding", "Dino", "dins", "dint", "Dion",
"Dior", "dips", "dire", "dirk", "Dirk", "dirt", "disc", "dish",
"disk", "ditz", "diva", "dive", "divs", "dobs", "dock",
"docs", "dodo", "doer", "does", "doff", "doge", "dogs", "Doha",
"dole", "Dole", "doll", "dolt", "dome", "dona", "Dona",
"done", "Donn", "dons", "Dons", "doom", "door", "dopa", "dope",
"Dora", "Dore", "dork", "dorm", "dory", "dose", "dosh",
"doss", "dost", "dote", "doth", "dots", "Doug", "dour", "dove",
"down", "doze", "dozy", "drab", "drag", "dram", "drat",
"draw", "dray", "drew", "Drew", "drip", "drop", "drub", "drug",
"drum", "drys", "dual", "dubs", "duck", "duct", "dude",
"duds", "duel", "dues", "duet", "duff", "duke", "Duke", "dull",
"duly", "dumb", "dump", "dune", "dung", "dunk", "Dunn",
"duns", "duos", "dupe", "Duse", "dusk", "dust", "duty", "DVDs",
"dyad", "dyed", "dyer", "Dyer", "dyes", "dyne", "each",
"earl", "Earl", "earn", "Earp", "ears", "ease", "east", "East",
"easy", "eats", "eave", "eBay", "ebbs", "Eben", "Ebro",
"echo", "ecru", "ecus", "Edam", "Edda", "eddy", "Eddy", "Eden",
"edge", "edgy", "edit", "Edna", "eeks", "eels", "e'en",
"e'er", "effs", "egad", "Eggo", "eggs", "egos", "Eire", "eked",
"ekes", "Elam", "elan", "élan", "Elba", "Elbe", "Elia",
"elks", "Ella", "ells", "Elma", "Elmo", "elms", "Eloy", "Elsa",
"else", "Elul", "Elva", "emfs", "Emil", "emir", "emit",
"Emma", "Emmy", "emus", "ends", "Enid", "Enif", "Enos", "envy",
"eons", "epee", "épée", "epic", "eras", "ergo", "ergs",
"Eric", "Erie", "Erik", "Erin", "Eris", "Erma", "Erna", "Eros",
"errs", "Erse", "erst", "Esau", "espy", "etas", "etch",
"Etna", "Eton", "Etta", "Eula", "euro", "Evan", "even", "ever",
"eves", "evil", "ewer", "ewes", "exam", "exec", "exes",
"exit", "expo", "Eyck", "eyed", "eyes", "Eyre", "Ezra", "face",
"fact", "fade", "fads", "faff", "fags", "Fahd", "fail",
"fain", "fair", "fake", "fall", "fame", "fang", "fans", "FAQs",
"fare", "farm", "faro", "fast", "fate", "fats", "faun",
"fave", "fawn", "Faye", "fays", "faze", "fear", "feat", "feds",
"Feds", "feed", "feel", "fees", "feet", "fell", "felt",
"fems", "fend", "fens", "fern", "Fern", "fess", "fest", "feta",
"fete", "fête", "feud", "fiat", "Fiat", "fibs", "Fido",
"fief", "fies", "fife", "figs", "Fiji", "file", "fill", "film",
"filo", "find", "fine", "fink", "Finn", "fins", "fire",
"firm", "firs", "fish", "Fisk", "fist", "fits", "five", "fizz",
"flab", "flag", "flak", "flam", "flan", "flap", "flat",
"flaw", "flax", "flay", "flea", "fled", "flee", "Flem", "flew",
"flex", "flip", "flit", "floe", "flog", "flop", "flow",
"flub", "flue", "flux", "FNMA", "foal", "foam", "fobs", "Foch",
"foes", "fogs", "fogy", "foil", "fold", "folk", "fond",
"Fons", "font", "food", "fool", "foot", "fops", "ford", "Ford",
"fore", "fork", "form", "fort", "foul", "four", "fowl",
"foxy", "Fran", "frat", "Frau", "fray", "Fred", "free", "fret",
"Frey", "frig", "frog", "from", "Frye", "fuel", "Fuji",
"full", "fume", "fumy", "fund", "funk", "furl", "furs", "fury",
"fuse", "fuss", "futz", "fuzz", "gabs", "gads", "Gaea",
"Gael", "gaff", "gaga", "gage", "Gage", "gags", "Gail", "gain",
"gait", "gala", "gale", "Gale", "gall", "Gall", "gals",
"Gama", "game", "gamy", "gang", "gaol", "gape", "gaps", "garb",
"Gard", "gars", "Gary", "gash", "gasp", "gate", "Gaul",
"gave", "gawd", "gawk", "gawp", "gays", "Gaza", "gaze", "gear",
"geed", "geek", "gees", "geld", "gels", "gems", "Gena",
"gene", "Gene", "gens", "gent", "germ", "gets", "ghat", "ghee",
"gibe", "Gide", "gift", "gigs", "Gila", "gild", "gill",
"Gill", "gilt", "gimp", "Gina", "Gino", "gins", "gird", "girl",
"giro", "girt", "Gish", "gist", "gite", "gits", "give",
"Giza", "glad", "glam", "glee", "glen", "Glen", "glib", "glob",
"glop", "glow", "glue", "glum", "glut", "GMAT", "gnat",
"gnaw", "gnus", "goad", "goal", "goat", "Gobi", "gobs", "gods",
"goer", "goes", "Goff", "gold", "golf", "gone", "gong",
"good", "Good", "goof", "goon", "goop", "gore", "Gore", "gorp",
"gory", "gosh", "goth", "Goth", "gout", "govs", "gown",
"Goya", "grab", "grad", "gram", "gran", "gray", "Gray", "Greg",
"grew", "Grey", "grid", "grim", "grin", "grip", "Gris",
"grit", "grog", "grow", "grub", "Grus", "Guam", "guff", "gulf",
"gull", "gulp", "gums", "gunk", "guns", "guru", "gush",
"gust", "guts", "guvs", "guys", "Gwen", "Gwyn", "gyms", "gyps",
"gyro", "gyve", "Haas", "hack", "haft", "hags", "Hahn",
"hail", "hair", "hajj", "hake", "hale", "Hale", "half", "hall",
"Hall", "halo", "Hals", "halt", "hams", "hand", "hang",
"hank", "Hank", "Hans", "hard", "hare", "hark", "harm", "harp",
"hart", "Hart", "hash", "hasp", "hast", "hate", "hath",
"hats", "haul", "have", "hawk", "haws", "hays", "Hays", "haze",
"hazy", "head", "Head", "heal", "heap", "hear", "heat",
"Hebe", "heck", "he'd", "heed", "heel", "Heep", "heft", "heir",
"held", "hell", "helm", "help", "heme", "hemp", "hems",
"hens", "heps", "Hera", "herb", "herd", "here", "hero", "Herr",
"hers", "he's", "Hess", "hews", "hick", "hide", "hied",
"hies", "high", "hike", "hill", "Hill", "hilt", "hims", "hind",
"hint", "hips", "hire", "hiss", "Hiss", "hits", "hive",
"hiya", "hoar", "hoax", "hobo", "hobs", "hock", "hods", "hoed",
"hoer", "hoes", "Hoff", "hogs", "hoke", "hold", "hole",
"hols", "Holt", "holy", "home", "hone", "honk", "hons", "hood",
"Hood", "hoof", "hook", "hoop", "hoot", "hope", "Hope",
"Hopi", "hops", "hora", "horn", "Horn", "hose", "host", "Host",
"hots", "hour", "hove", "Howe", "howl", "hows", "HTML",
"HTTP", "hubs", "Huck", "hued", "hues", "Huey", "huff", "Huff",
"huge", "Hugh", "Hugo", "hugs", "huhs", "hula", "hulk",
"hull", "Hull", "Hume", "hump", "hums", "hung", "Hung", "hunk",
"Huns", "hunt", "Hunt", "hurl", "hurt", "hush", "husk",
"huts", "Hutu", "Hyde", "hymn", "hype", "hypo", "Iago", "iamb",
"ibex", "ibis", "iced", "ices", "icky", "icon", "idea",
"idem", "ides", "idle", "idly", "idol", "iffy", "Igor", "ilea",
"ilia", "ilks", "I'll", "ills", "imam", "imps", "Imus",
"Inca", "inch", "Indy", "Ines", "Inez", "info", "Inge", "inks",
"inky", "inns", "inti", "into", "Iona", "ions", "iota",
"Iowa", "Iran", "Iraq", "ired", "ires", "iris", "Iris", "irks",
"Irma", "iron", "ISBN", "Isis", "isle", "isms", "itch",
"it'd", "item", "it's", "Ivan", "I've", "Ives", "Iyar", "Izod",
"jabs", "jack", "Jack", "jade", "jags", "jail", "Jain",
"Jake", "jamb", "Jame", "Jami", "jams", "Jana", "Jane", "jape",
"jars", "jato", "java", "Java", "jaws", "jays", "jazz",
"jean", "Jean", "Jedi", "jeep", "Jeep", "jeer", "jeez", "Jeff",
"Jehu", "jell", "Jena", "Jeri", "jerk", "Jess", "jest",
"jets", "Jews", "jibe", "jibs", "jiff", "jigs", "Jill", "jilt",
"jink", "jinn", "jinx", "jive", "Joan", "jobs", "Jobs",
"jock", "Jock", "Jodi", "Jody", "Joel", "joey", "Joey", "jogs",
"john", "John", "join", "joke", "jolt", "Joni", "Jose",
"josh", "Josh", "jots", "Jove", "jowl", "joys", "Juan", "Judd",
"Jude", "judo", "Judy", "jugs", "July", "jump", "June",
"Jung", "junk", "Juno", "jury", "just", "jute", "juts", "Kalb",
"kale", "Kali", "Kama", "Kane", "Kano", "Kans", "Kant",
"Kara", "Kari", "Karl", "Karo", "kart", "Kass", "Kate", "Katy",
"Kaye", "kayo", "Kean", "Keck", "keel", "keen", "keep",
"kegs", "kelp", "Kemp", "keno", "kens", "Kent", "kepi", "kept",
"Keri", "Kern", "Kerr", "keys", "khan", "Khan", "kick",
"Kidd", "kids", "Kiel", "Kiev", "kill", "kiln", "kilo", "kilt",
"kind", "kine", "king", "King", "kink", "kins", "kips",
"kirk", "Kirk", "kiss", "kite", "kith", "kits", "kiwi", "Klan",
"Klee", "knee", "knew", "knit", "knob", "knot", "know",
"Knox", "Kobe", "Koch", "kohl", "Kohl", "kola", "Kong", "kook",
"Kory", "Kris", "Kroc", "Kuhn", "Kurd", "Kurt", "kyle",
"Kyle", "labs", "Labs", "lace", "lack", "lacs", "lacy", "Lacy",
"lade", "lads", "lady", "Lady", "lags", "laid", "lain",
"lair", "lake", "lama", "lamb", "Lamb", "lame", "lamp", "lams",
"Lana", "land", "Land", "lane", "Lane", "Lang", "lank",
"Laos", "Lapp", "laps", "Lara", "lard", "lark", "Lars", "lase",
"lash", "lass", "last", "late", "lath", "lats", "laud",
"Laud", "Laue", "lava", "lave", "lavs", "lawn", "laws", "lays",
"laze", "lazy", "lead", "leaf", "Leah", "leak", "lean",
"Lean", "leap", "Lear", "leas", "lech", "Leda", "leek", "leer",
"lees", "left", "Left", "Lego", "legs", "Leif", "leis",
"Lela", "Lena", "lend", "Leno", "lens", "lent", "Lent", "Leon",
"Leos", "Lesa", "less", "lest", "Leta", "lets", "Levi",
"levy", "Levy", "lewd", "liar", "libs", "lice", "lick", "lido",
"lids", "lied", "lief", "lien", "lies", "lieu", "life",
"lift", "like", "Lila", "lilo", "lilt", "lily", "Lily", "Lima",
"limb", "lime", "limn", "limo", "limp", "limy", "Lina",
"Lind", "line", "link", "lino", "lint", "lion", "Lion", "lips",
"lira", "lire", "Lisa", "lisp", "list", "lite", "live",
"Livy", "Liza", "load", "loaf", "loam", "loan", "lobe", "lobs",
"loch", "loci", "lock", "loco", "lode", "Lodz", "loft",
"loge", "logo", "logs", "logy", "loin", "Lois", "Loki", "Lola",
"loll", "Lome", "lone", "long", "Long", "look", "loom",
"loon", "loop", "loos", "loot", "lope", "lops", "Lora", "lord",
"Lord", "lore", "Lori", "lorn", "lose", "loss", "lost",
"lots", "Lott", "loud", "lour", "lout", "love", "Love", "Lowe",
"lows", "Loyd", "LSAT", "luau", "lube", "Luce", "luck",
"Lucy", "ludo", "luff", "luge", "lugs", "Luis", "Luke", "Lula",
"lull", "lulu", "Lulu", "lump", "Luna", "lune", "lung",
"Lupe", "lure", "lurk", "lush", "lust", "lute", "luvs", "Luvs",
"Lvov", "Lyle", "Lyly", "Lyme", "Lynn", "lynx", "Lyon",
"Lyra", "lyre", "mace", "Mace", "Mach", "mack", "Mack", "macs",
"Macs", "Macy", "made", "magi", "Magi", "mags", "Maia",
"maid", "mail", "maim", "main", "make", "male", "Male", "Mali",
"mall", "malt", "mama", "mams", "mane", "Mani", "Mann",
"mans", "Manx", "many", "maps", "Mara", "Marc", "mare", "Mari",
"mark", "Mark", "marl", "mars", "Mars", "mart", "Marx",
"Mary", "mash", "mask", "mass", "mast", "mate", "math", "mats",
"Matt", "Maud", "Maui", "maul", "maws", "maxi", "Maya",
"mayo", "Mayo", "Mays", "maze", "mead", "Mead", "meal", "mean",
"meat", "meed", "meek", "meet", "mega", "megs", "Meir",
"meld", "melt", "memo", "mend", "menu", "meow", "mere", "mesa",
"Mesa", "mesh", "mess", "Meta", "mete", "mewl", "mews",
"mica", "mice", "Mick", "mics", "midi", "mien", "miff", "mike",
"Mike", "mild", "mile", "milk", "mill", "Mill", "Milo",
"mils", "milt", "mime", "Mimi", "mind", "mine", "Ming", "mini",
"mink", "mint", "minx", "Mira", "mire", "Miro", "miry",
"miss", "mist", "mite", "mitt", "moan", "moat", "mobs", "mock",
"mode", "mods", "Moho", "moil", "mold", "mole", "moll",
"Moll", "molt", "moms", "Mona", "monk", "Monk", "mono", "mood",
"Moog", "moon", "Moon", "moor", "Moor", "moos", "moot",
"mope", "mops", "more", "More", "morn", "Moro", "Mort", "mosh",
"moss", "Moss", "most", "mote", "moth", "mots", "Mott",
"moue", "move", "mows", "Mses", "much", "muck", "muff", "mugs",
"Muir", "mule", "mull", "mums", "muns", "murk", "muse",
"Muse", "mush", "musk", "muss", "must", "mute", "mutt", "myna",
"Myra", "Myst", "myth", "nabs", "naff", "nags", "Nagy",
"naif", "nail", "Nair", "name", "nans", "nape", "naps", "Nara",
"narc", "nary", "NASA", "Nash", "Nate", "NATO", "nave",
"navy", "Navy", "nays", "Nazi", "NCAA", "Neal", "neap", "near",
"neat", "neck", "need", "negs", "Neil", "Nell", "neon",
"nerd", "Nerf", "Nero", "nest", "nets", "nett", "nevi", "news",
"newt", "next", "nibs", "nice", "Nice", "nick", "Nick",
"niff", "nigh", "Nike", "Nile", "nils", "Nina", "nine", "nips",
"Nita", "nits", "Noah", "nobs", "node", "nods", "noel",
"Noel", "noes", "Nola", "Nome", "Nona", "none", "nook", "noon",
"nope", "Nora", "norm", "nose", "nosh", "nosy", "note",
"noun", "nous", "nova", "Nova", "nowt", "nubs", "nude", "nuke",
"null", "numb", "nuns", "nuts", "oafs", "Oahu", "oaks",
"oars", "oath", "oats", "obey", "Obie", "obis", "obit", "oboe",
"odds", "Oder", "odes", "Odin", "Odis", "Odom", "odor",
"o'er", "offs", "ogle", "ogre", "Ohio", "ohms", "ohos", "OHSA",
"oiks", "oils", "oily", "oink", "Oise", "okay", "okra",
"Olaf", "Olav", "Olen", "oleo", "oles", "Olga", "Olin", "Oman",
"Omar", "omen", "omit", "Omsk", "once", "ones", "only",
"onto", "onus", "onyx", "oohs", "oops", "Oort", "ooze", "oozy",
"opal", "Opal", "OPEC", "oped", "Opel", "open", "opes",
"opts", "opus", "oral", "Oran", "orbs", "Oreo", "ores", "orgy",
"Orin", "Orly", "orzo", "Oslo", "Otis", "Otto", "ouch",
"ours", "oust", "outs", "ouzo", "oval", "oven", "over", "Ovid",
"ovum", "owed", "Owen", "owes", "owls", "owns", "oxen",
"oxes", "Oxus", "Paar", "pace", "Pace", "pack", "pact", "pacy",
"pads", "page", "Page", "paid", "pail", "pain", "pair",
"pale", "pall", "palm", "pals", "pane", "pang", "pans", "pant",
"papa", "paps", "para", "pare", "park", "Park", "Parr",
"pars", "part", "pass", "past", "pate", "Pate", "path", "pats",
"Paul", "pave", "pawl", "pawn", "paws", "pays", "peak",
"peal", "pear", "peas", "peat", "peck", "Peck", "pecs", "peed",
"peek", "peel", "Peel", "peen", "peep", "peer", "pees",
"pegs", "peke", "Pele", "pelf", "pelt", "Pena", "pens", "pent",
"peon", "peps", "perk", "Perl", "perm", "Perm", "pert",
"Peru", "perv", "peso", "pest", "Pete", "pets", "pews", "phat",
"phew", "phis", "Piaf", "pica", "pick", "pics", "pied",
"pier", "pies", "pigs", "pike", "Pike", "pile", "pill", "pimp",
"pine", "ping", "pink", "pins", "pint", "piny", "pipe",
"pips", "Pisa", "pita", "pith", "pits", "Pitt", "pity", "Pius",
"plan", "play", "plea", "pleb", "plod", "plop", "plot",
"plow", "ploy", "plug", "plum", "plus", "pock", "pods", "poem",
"poet", "pogo", "Pogo", "poke", "poky", "pole", "Pole",
"Polk", "poll", "polo", "Polo", "pols", "poly", "pomp", "poms",
"pond", "pone", "pong", "pony", "poof", "pooh", "Pooh",
"pool", "poop", "poor", "pope", "Pope", "pops", "pore", "pork",
"porn", "port", "pose", "posh", "post", "Post", "posy",
"pots", "pouf", "pour", "pout", "poxy", "pram", "prat", "pray",
"prep", "prey", "prig", "prim", "prod", "prof", "prom",
"prop", "pros", "prow", "Prut", "psis", "psst", "Ptah", "pubs",
"puce", "puck", "Puck", "puds", "puff", "Pugh", "pugs",
"puke", "pule", "pull", "pulp", "puma", "pump", "punk", "puns",
"punt", "puny", "pupa", "pups", "pure", "purl", "purr",
"push", "puss", "puts", "putt", "putz", "Puzo", "Pyle", "pyre",
"quad", "quay", "quid", "quin", "quip", "quit", "quiz",
"Rabi", "race", "rack", "racy", "rads", "raft", "raga", "rage",
"rags", "rahs", "raid", "rail", "rain", "rake", "Rama",
"ramp", "rams", "RAMs", "rand", "Rand", "rang", "rank", "rant",
"rape", "raps", "rapt", "rare", "rash", "rasp", "rate",
"rats", "Raul", "rave", "rays", "raze", "razz", "read", "real",
"ream", "reap", "rear", "Reba", "recs", "redo", "reds",
"reed", "Reed", "reef", "reek", "reel", "Rees", "refs", "regs",
"Reid", "rein", "rely", "rems", "Rena", "rend", "Rene",
"Reno", "rent", "reps", "rest", "Reva", "revs", "rhea", "Rhea",
"Rhee", "rhos", "rial", "ribs", "rice", "Rice", "rich",
"Rich", "rick", "Rick", "Rico", "ride", "Ride", "rids", "Riel",
"rife", "riff", "rift", "Riga", "rigs", "rile", "rill",
"rime", "rims", "rind", "ring", "rink", "Rios", "riot", "ripe",
"rips", "rise", "risk", "Rita", "rite", "Ritz", "rive",
"road", "roam", "roan", "roar", "robe", "robs", "Robt", "rock",
"Rock", "rode", "rods", "Roeg", "roes", "roil", "role",
"Rolf", "roll", "Roma", "Rome", "romp", "rood", "roof", "rook",
"room", "root", "Root", "rope", "Rory", "Rosa", "rose",
"Rose", "Ross", "rosy", "rota", "ROTC", "rote", "Roth", "rots",
"roue", "roué", "rout", "roux", "rove", "Rowe", "rows",
"Roxy", "RSVP", "rube", "rubs", "ruby", "Ruby", "ruck", "rude",
"Rudy", "rued", "rues", "ruff", "rugs", "Ruhr", "ruin",
"Ruiz", "rule", "rump", "rums", "rune", "rung", "runs", "runt",
"ruse", "rush", "Rush", "rusk", "Russ", "rust", "Ruth",
"ruts", "Ryan", "Saab", "Saar", "Saba", "sack", "sacs", "Sade",
"Sadr", "safe", "saga", "sage", "sago", "sags", "said",
"sail", "sake", "Saki", "Saks", "sale", "Salk", "salt", "same",
"Sana", "sand", "Sand", "sane", "sang", "Sang", "sank",
"sans", "saps", "Sara", "sari", "sash", "Sask", "sass", "sate",
"Saul", "save", "saws", "says", "scab", "scad", "scam",
"scan", "Scan", "scar", "scat", "Scot", "scow", "scud", "Scud",
"scum", "seal", "seam", "Sean", "sear", "seas", "seat",
"secs", "sect", "seed", "seek", "seem", "seen", "seep", "seer",
"sees", "Sega", "self", "sell", "semi", "send", "sens",
"sent", "Serb", "sere", "serf", "Seth", "sets", "sett", "sewn",
"sews", "sexy", "SGML", "shad", "shag", "shah", "sham",
"shat", "Shaw", "shay", "Shea", "shed", "shes", "shew", "shim",
"shin", "ship", "shiv", "shod", "shoe", "shoo", "shop",
"shot", "show", "shun", "shut", "Siam", "sick", "sics", "side",
"sift", "sigh", "sign", "Sikh", "silk", "sill", "silo",
"silt", "Sims", "sine", "sing", "sink", "sins", "sips", "sire",
"sirs", "Sirs", "site", "sits", "Siva", "size", "skew",
"skid", "skim", "skin", "skip", "skis", "skit", "skua", "Skye",
"slab", "slag", "slam", "slap", "slat", "Slav", "slaw",
"slay", "sled", "slew", "slid", "slim", "slip", "slit", "slob",
"sloe", "slog", "slop", "slot", "slow", "slue", "slug",
"slum", "slur", "slut", "smog", "smug", "smut", "snag", "snap",
"snip", "snit", "snob", "snog", "snot", "snow", "Snow",
"snub", "snug", "soak", "soap", "soar", "sobs", "sock", "socs",
"soda", "sods", "sofa", "soft", "Soho", "soil", "sold",
"sole", "solo", "sols", "some", "song", "sons", "Sony", "soon",
"soot", "sops", "sore", "sort", "Sosa", "Soto", "sots",
"souk", "soul", "soup", "sour", "sous", "sown", "sows", "spam",
"Spam", "span", "Span", "spar", "spas", "spat", "spay",
"spec", "sped", "spew", "spin", "spit", "spiv", "spot", "spry",
"spud", "spun", "spur", "stab", "stag", "Stan", "star",
"stay", "stem", "step", "stet", "stew", "stir", "stop", "stow",
"stub", "stud", "stun", "Styx", "subs", "such", "suck",
"suds", "sued", "sues", "suet", "Suez", "Sufi", "suit", "sulk",
"sumo", "sump", "sums", "sung", "Sung", "sunk", "suns",
"sups", "surd", "sure", "surf", "suss", "Suva", "Suzy", "Sven",
"swab", "swag", "swam", "swan", "swap", "swat", "sway",
"swig", "swim", "swiz", "swot", "swum", "sync", "tabs", "tack",
"taco", "tact", "tads", "Taft", "tags", "tail", "take",
"talc", "tale", "tali", "talk", "tall", "tame", "Tami", "tamp",
"tams", "Tana", "tang", "tank", "tans", "tape", "taps",
"Tara", "tare", "tarn", "taro", "tarp", "tars", "tart", "task",
"Tass", "Tate", "tats", "taus", "taut", "taxi", "teak",
"teal", "team", "tear", "teas", "teat", "teds", "teed", "teem",
"teen", "tees", "tell", "Tell", "tels", "temp", "tend",
"tens", "tent", "Teri", "term", "tern", "Terr", "Tess", "test",
"text", "Thad", "Thai", "than", "Thar", "that", "thaw",
"Thea", "thee", "them", "then", "thew", "they", "thin", "this",
"Thor", "thou", "thru", "thud", "thug", "Thur", "thus",
"tick", "tics", "tide", "Tide", "tidy", "tied", "tier", "ties",
"tiff", "tile", "till", "tilt", "time", "Tina", "tine",
"ting", "Ting", "tins", "tint", "tiny", "tips", "tire", "Tito",
"tizz", "toad", "Toby", "Todd", "toed", "toes", "toff",
"tofu", "toga", "toge", "Togo", "togs", "toil", "Tojo", "toke",
"told", "tole", "toll", "tomb", "tome", "toms", "tone",
"tong", "Toni", "tons", "tony", "Tony", "took", "tool", "toot",
"tops", "tore", "tori", "torn", "tors", "tort", "Tory",
"tosh", "toss", "tote", "Toto", "tots", "tour", "tout", "town",
"tows", "toys", "trad", "tram", "Tran", "trap", "tray",
"tree", "trek", "trey", "Trey", "trig", "trim", "trio", "trip",
"trod", "trot", "trow", "troy", "Troy", "true", "trug",
"tuba", "tube", "tubs", "tuck", "Tuck", "Tues", "tuft", "tugs",
"Tull", "tums", "Tums", "tuna", "tune", "tuns", "Tupi",
"turd", "turf", "Turk", "turn", "tush", "tusk", "tuts", "tutu",
"Tutu", "twas", "twee", "twig", "twin", "twit", "twos",
"tyke", "type", "typo", "Tyre", "tyro", "UCLA", "UFOs", "ugly",
"ulna", "umps", "undo", "unis", "unit", "UNIX", "unto",
"upon", "Ural", "Urdu", "urea", "Urey", "urge", "uric", "Uris",
"urns", "Ursa", "USAF", "used", "user", "uses", "USMC",
"USSR", "Utah", "Utes", "Uzis", "vacs", "vain", "vale", "vamp",
"vane", "Vang", "vans", "vars", "vary", "vase", "vast",
"vats", "veal", "Veda", "veep", "veer", "Vega", "veil", "vein",
"vela", "Vela", "veld", "vend", "Venn", "vent", "Vera",
"verb", "Vern", "very", "vest", "veto", "vets", "vial", "vibe",
"vice", "vied", "vies", "view", "Vila", "vile", "vine",
"vino", "viol", "VIPs", "visa", "Visa", "vise", "vita", "Vito",
"viva", "Vlad", "voes", "void", "vole", "volt", "vote",
"vows", "Waco", "Wacs", "wade", "Wade", "wadi", "wads", "waft",
"wage", "wags", "waif", "wail", "wain", "wait", "wake",
"Wake", "Wald", "wale", "walk", "wall", "Wall", "Walt", "wand",
"wane", "Wang", "wank", "want", "ward", "Ward", "ware",
"Ware", "warm", "warn", "warp", "wars", "wart", "wary", "wash",
"Wash", "wasp", "WASP", "wast", "watt", "Watt", "wave",
"Wave", "wavy", "waxy", "ways", "weak", "weal", "wean", "wear",
"Webb", "webs", "we'd", "weds", "weed", "week", "ween",
"weep", "weer", "wees", "weft", "weir", "weld", "well", "welt",
"wend", "wens", "went", "wept", "were", "west", "West",
"wets", "wham", "what", "whee", "when", "whet", "whew", "whey",
"Whig", "whim", "whip", "whir", "whit", "whiz", "whoa",
"whom", "whop", "whup", "whys", "wick", "wide", "wife", "wigs",
"wild", "wile", "will", "Will", "wilt", "wily", "wimp",
"wind", "wine", "wing", "wink", "wino", "wins", "winy", "wipe",
"wire", "wiry", "wise", "Wise", "wish", "wisp", "wist",
"with", "wits", "Witt", "wive", "woad", "woes", "wogs", "woke",
"woks", "wold", "wolf", "Wolf", "womb", "Wong", "wonk",
"wont", "wood", "Wood", "woof", "wool", "woos", "word", "wore",
"work", "worm", "worn", "wort", "wost", "wove", "wows",
"wrap", "wren", "Wren", "writ", "wuss", "Wynn", "Xian", "Xmas",
"Yacc", "yaks", "Yale", "Yalu", "yams", "yang", "Yang",
"yank", "Yank", "yaps", "yard", "yarn", "yawl", "yawn", "yaws",
"yeah", "year", "yeas", "yegg", "yell", "yelp", "yens",
"yeps", "yest", "yeti", "yews", "yids", "yipe", "yips", "Ymir",
"yobs", "Yoda", "yoga", "yogi", "yoke", "Yoko", "yolk",
"Yong", "yore", "york", "York", "your", "yous", "yowl", "yows",
"yuan", "Yuan", "yuck", "Yugo", "yuks", "yule", "Yule",
"Yuma", "yups", "Yuri", "yurt", "Yves", "Zach", "Zane", "zany",
"zaps", "zeal", "zebu", "zeds", "Zeke", "Zeno", "Zens",
"zero", "zest", "Zest", "zeta", "Zeus", "Zibo", "zinc", "zine",
"zing", "Zion", "zips", "zits", "Zola", "zone", "zoom",
"zoos", "Zorn", "Zulu", "Zuni"}
)];
(*does the search*)
inspect[mat_] := inspect[mat, nextIndices[mat]]
(*finds the indices of the next word to try*)
nextIndices[mat_] /; FreeQ[mat, Verbatim@_] := True
nextIndices[mat_] := nextIndices[mat, indices[mat]]
(*gives all the different groups of positions of words of a matrix of \
a certain size.They are grouped by those that must be the same due to \
the required symmetry*)
i : indices[wordLen_, dims_] :=
i = Permutations[Append[#, All]] & /@
DeleteDuplicates[Sort /@ Tuples[Range[wordLen], {dims - 1}]];
indices[mat_] := indices[Length@mat, Length@Dimensions@mat];
nextIndices[mat_, indices_] :=
nextIndices[mat, indices,
1 + LengthWhile[indices[[All, 1]],
FreeQ[mat[[Sequence @@ #]], Verbatim@_] &]]
nextIndices[mat_, indices_, nextIndex_] := Extract[indices, nextIndex];
inspect[mat_, True] := Throw[mat, tag];
inspect[mat_, indices_] :=
Scan[word |-> inspect[change[mat, word, indices]],
Characters@$random@
Pick[#,
StringMatchQ[#,
StringExpression @@ mat[[Sequence @@ First@indices]]]] &@
dict[Length@mat]]
(*adds the word (as list of characters) to the matrix*)
change[mat_, word_, indices_] :=
Module[{newMat = mat},
Scan[wordPos |-> newMat[[Sequence @@ wordPos]] = word, indices];
newMat]
End[];
findWordHypercube[3, 4]
{{{"i", "d", "e", "a"},
{"d", "e", "a", "l"},
{"e", "a", "r", "l"},
{"a", "l", "l", "y"}},
{{"d", "e", "a", "l"},
{"e", "c", "r", "u"},
{"a", "r", "e", "a"},
{"l", "u", "a", "u"}},
{{"e", "a", "r", "l"},
{"a", "r", "e", "a"},
{"r", "e", "i", "n"},
{"l", "a", "n", "k"}},
{{"a", "l", "l", "y"},
{"l", "u", "a", "u"},
{"l", "a", "n", "k"},
{"y", "u", "k", "s"}}}
I don't know how to specify a word to make a word cube out of. The Mathematica Language tells us a list of many different words kind of like DictionaryLookup
; after all would you rather read through this three-dimensional object with punctuation on top or some function like DictionaryLookup[Repeated[_, {numLetters}]]
?
Now we know all these pseudo-random words thanks to the WordCloud
Paclet, this must be what you were saying throughout our chats. We're not allowed to specify a word but we're allowed to specify random words!