How We Make Puzzles
A transparent architectural overview of our deterministic puzzle generators, solvability guarantees, and explainable deduction solvers.
1. Sudoku: Handcrafted Unique-Solution Verification
Exact-cover backtracking with human deduction grading
Every Sudoku puzzle on Atelier is guaranteed to possess exactly one unique solution. Our generator starts with a complete Latin square matrix transformed through symmetry-preserving isomorphism (row/column permutations within bands). We then selectively dig cells and run an exact-cover DLX constraint solver. If a removal creates a branching second solution, it is rejected.
When a player requests a hint, our solver evaluates candidates in increasing order of human cognitive complexity: Naked Singles → Hidden Singles → Pointing Pairs → Box-Line Reductions → Naked Pairs. The player is presented with the deduction rule and highlighted constraint cells rather than a forced number insertion.
2. Mahjong Solitaire: 100% Solvable Deals
Reverse-layer construction to eliminate unsolvable dead ends
Traditional random tile placement leads to unwinnable dead ends in over 30% of deals. Atelier generates its 144-tile 3D Turtle and Fortress formations backwards: starting from an empty board, matched pairs of tiles are placed in reverse order into currently legal free positions. This mathematically guarantees that a pure forward solution path exists for every deal.
3. Minesweeper: Delayed Safe-Opening Cascade
Zero first-click deaths and topological neighborhood distribution
To prevent frustrating first-click mine detonations, mine placement is delayed until the player makes their initial tap. The tapped cell and its 8 immediate neighbors are strictly excluded from mine allocation, ensuring an immediate open zero cascade with clear deduction hooks.
4. Solitaire & FreeCell: Deterministic Seeding
PRNG synchronicity and Microsoft deal compatibility
Our FreeCell deals use the historic 32-bit linear congruential generator (LCG) algorithm to match Microsoft FreeCell deals #1 to #32000 verbatim. Multi-card sequence movement is dynamically calculated via the supermove formula (1 + free_cells) × 2^(empty_cascades).