The hub already had Sudoku with an easy mode. For a young child, easy 9×9 is still too hard. This is the version that meets a five-year-old where she is: a 6×6 grid, the numbers 1 to 6, and a promise that she can always finish it on her own.
What It Is
A standalone daily game inside the Wanessa Labs Games Hub. Fill a 6×6 grid so every row, every column, and every 2×3 box holds the numbers 1 to 6 exactly once. One puzzle a day, a streak for coming back, three hints, and a notes mode, all offline. It shares the hub’s GameProps contract and design language, so it looks and behaves like the rest of the catalog, just smaller and kinder.
The Decision That Shaped It
Making a Sudoku “easier” usually means handing over more clues. That is not enough. A puzzle can have a unique solution and still demand tactics a child does not have: X-wings, Y-wings, chains, or plain guess-and-check.
So the design constraint was written in terms of the solver, not the clue count. The target player can scan a row, a column, or a box and spot a square that has only one legal number. She cannot do the advanced stuff. Every generated puzzle therefore has to be solvable using only that: naked singles (a square with one possible number) and hidden singles (a number with only one square it can go in). Nothing harder ever comes up, and there is never a moment where guessing is the only way forward.
How the Guarantee Is Enforced
The generator carves a puzzle out of a full solution by removing numbers one at a time. It keeps a removal only when the result is still both uniquely solvable and solvable by singles alone. A small human-style solver, applying only those two techniques, has to be able to finish the grid, or the number goes back. The clue count is a consequence of that rule rather than a target: in practice today’s puzzles land at 24 of 36 squares given, well above the 9×9 easy ratio, because that is what the singles-only promise costs.
Built Without Touching the Original
The production 9×9 Sudoku had no test coverage, so refactoring its engine to serve both grids carried real risk with no safety net. Instead the 6×6 got its own self-contained, size-parameterized engine and reducer. The 9×9 game was not modified at all, so it could not regress. The trade is a little deliberate duplication for zero blast radius on a game people already play.
Single Level, On Purpose
No difficulty tabs. The whole point was one gentle puzzle, so the interface is one gentle puzzle. It still carries the hub’s daily seed (everyone gets the same board each day), a streak counter, hints, and notes, using storage keys kept separate from the 9×9 so the two games never collide.
How It Was Verified
- A size-aware engine test suite, including a negative case that proves the singles-only guard actually bites: a sparse grid with many valid completions is correctly rejected as not-solvable-by-singles.
- Reducer tests for input, erase, undo, hint, and win detection on the 6×6.
- A run against five real calendar dates confirmed each daily puzzle is unique-solution and singles-solvable, at 24 of 36 clues.
- The full hub suite stayed green (462 tests), typecheck clean, build under the Cloudflare file budget.
Features
- Daily 6×6 puzzle from a shared date seed, same board for everyone
- Guaranteed solvable by scanning alone, no advanced tactics, no guessing
- Streak counter, three hints, and a notes mode
- Single gentle level, no difficulty tabs
- Fully offline, resumes an unfinished puzzle on reload
- Its own engine, so the original 9×9 Sudoku is untouched
Stack
| Tool | Role |
|---|---|
| React + TypeScript | Game module inside wanessalabs-games |
| Self-contained engine | Size-parameterized 6×6 logic with a singles-only carve, headless-testable |
| Tailwind | Hub-consistent styling with design tokens |
| Cloudflare Pages | Hosted inside the wanessalabs-games hub |

