What it does
createWordGuess starts a game from a seed: the answer is drawn from a word list, so a day number gives everyone the
same daily puzzle. Each guess is checked (the right length, in the word list, not guessed already, and the hard-mode
rules) and refused with a reason a player can be shown. An accepted guess is marked letter by letter. A repeated
letter is marked present only as often as the answer has it beyond its correct places, left to right, which is the
case hand-written versions most often get wrong.
observation() is everything a game draws: the rows of each board with their marks, what each board has shown (the
letters known in place, the letters known to be in the word and how many times at least, the letters ruled out), a
keyboard of each letter's best mark, the guesses left and whether the game is won or lost. An unsolved answer never
appears in it.
The game is a kernel history of guesses, so undo, saves and replays need no code of yours, and a save from other
options is refused rather than replayed wrongly. A bounded solver lists the answers still possible on each board and
suggests the guess that splits them most; autoStep plays it, which drives a "watch it solve" mode and makes a game
easy to test.
Features
- Exact marking — correct, present and absent, with repeated letters counted as the answer has them.
- Any word length — three letters to nine or more, as the word list allows.
- Set tries, or none — any guess limit, or
Infinityfor an untimed practice game. - Several boards at once — every guess marked on each unsolved board, won when all are solved.
- Hard and strict modes — keep shown letters, or only guess words that could still be the answer.
- Count-only clues — just how many letters are right and how many misplaced, as in bulls and cows.
- Letters given at the start — reveal the first letter, or any positions.
- Themed answers — answers from your own list, with guesses from the dictionary or any letters.
- A keyboard and what is known — each letter's best mark, and each board's known letters and counts.
- Hints and a solver — the remaining answers, a suggested guess, and
autoStepto play it. - Undo, saves and daily puzzles — a seed and a list of guesses, on the kernel history.
Good for
- A daily five-letter puzzle, seeded by the day so everyone gets the same word.
- Longer and harder variants, six or seven letters with hard mode on.
- Multi-board challenges, two or four words answered by the same guesses.
- Game-show word rounds, in the style of Lingo, with the first letter given.
- Bulls-and-cows word games, in the style of Jotto, with count-only clues.
- Themed and educational games, guessing planets, animals or this week's spelling words.
Make it yours
Every setting belongs to a game: length, guesses, boards, hard, strict, feedback, reveal, the answers
list, the allowed list (or 'any'), and a set answer for a puzzle you wrote. The pack draws nothing, so the tiles,
keyboard, animation and colours are yours.
Two materially different games from the same pack: the classic five letters and six tries with a daily seed; and four seven-letter words at once, eleven tries, count-only clues and hard mode, a long puzzle with very little to go on. A third swaps the answers for a list of animals and allows any letters as guesses.
A quick look
A game, a guess and its marks:
const game = createWordGuess({ seed: day }); // five letters, six guesses
game.check('crane'); // { ok: true } or { ok: false, reason }
const r = game.guess('crane'); // marks every unsolved board
const view = game.observation(); // rows, marks, keyboard, phase
view.boards[0].rows[0].marks; // ['absent', 'present', 'correct', 'absent', 'absent']
game.hint(); // { word, candidates, reason }
Works with
letter-tiles— draws the rows and the keyboard, and turns each row over to its marks.english-words— required: the default answers and allowed guesses, and the lists for themed games.typographyandui— for the tiles, the keyboard and the messages.save— to keep a daily game's guesses between visits.letter-gridandletter-wheel— for word games about finding many words rather than one.
Good to know
- It is the rules only: no tiles, keyboard, colours or animation.
- Answers come from a word list, not a list of good answers; the English lexicon includes plurals and rarer words.
Pass a filtered list as
answersfor a gentler game. - Hints are good, not optimal: each tries a bounded number of words against a sample of the answers.
- There are no streaks, statistics or timers; keep those from
observation().






