V0.116 · SOKOBAN / BOX PUSHING

Sokoban puzzle online

Sokoban is a grid planning puzzle built around one unusual restriction: you can push a box, but you cannot pull it back. The objective is to place every box on a goal. Walking is easy; committing a box to the wrong side of a wall, another box, or a corner can make the remaining position impossible. That makes Sokoban less about speed and more about planning where the player must stand before each push.

Play Sokoban →Daily Sokoban →

Three verified difficulty bands

Practice has three modes. Easy uses two boxes on a compact 7×7 board. Standard uses three boxes on an 8×8 board. Challenge uses four boxes on an 8×8 board and creates more interactions between routes, goals and temporary box positions. The names describe this site’s local difficulty bands rather than a universal Sokoban ranking.

V0.116 does not generate a random wall layout and simply hope it is solvable. Its frozen source bank contains 45 puzzles: 15 Easy, 15 Standard and 15 Challenge. Each source was produced locally, then independently solved with a push-state breadth-first search before being accepted. The released bank stores an exact minimum push count and a replayable solution path for every source.

Exact minimum pushes, not a guessed par

Sokoban has two useful counts. A move is one player step. A push is a move that advances a box. The displayed benchmark is based on pushes because pushes are the decisions that permanently alter box placement. Every source benchmark was recomputed by an independent solver, and the eight geometric symmetry transformations preserve that minimum.

The game therefore labels the benchmark as minimum pushes only when that claim has been proved. It does not call the stored reference route the minimum number of walking moves. Two solutions can use the same optimal number of pushes while taking different walking routes between them, so the interface reports both numbers separately.

Why deadlocks matter

The most obvious Sokoban deadlock is a box pushed into a non-goal corner. Because boxes cannot be pulled, no later walking route can recover it. V0.116 detects those static corner deadlocks immediately and shows a warning. More complicated deadlocks can involve several boxes or narrow corridors, which is why the Hint action does not rely only on a corner rule.

When Hint is requested, the browser runs the solver from the current position. If it finds a verified continuation, the interface identifies the next useful push and how many pushes remain in the shortest push solution it found. If the current position cannot be solved inside the defined search limit, the game does not invent a recommendation. It tells you to undo or restart instead.

Undo, restart and Assisted solves

Undo reverses one actual movement step, including a box push. This is useful because a Sokoban mistake is often visible only several moves later. Restart returns to the exact seeded starting board. Using Undo or Restart does not automatically make the run Assisted. Asking for a solver Hint does, because the application has revealed information about a verified continuation.

Local bests prioritize fewer pushes, then fewer walking moves, then active elapsed time. A solution that matches the exact push minimum is explicitly identified. The site does not convert these puzzle records into IQ scores, percentiles, intelligence estimates, attention assessments, executive-function claims or medical conclusions.

Touch, pointer and keyboard controls

Keyboard play uses the arrow keys or WASD. On a phone, the game includes a four-direction pad sized for touch. You can also tap a reachable floor or goal square and the player walks there along a shortest local path without pushing a box. Tapping a box while directly beside it attempts that push. This keeps the board usable on a small screen without hiding how many movement steps were actually taken.

The board is square, responsive and designed to avoid horizontal page overflow. Pause stops active timing, and changing to a hidden browser tab also stops the active timer. Autosave stores the exact player square, box positions, counts, Undo history, Assisted state and elapsed active time in browser-local storage.

Seeded Practice and eight-way symmetry

Practice accepts a deterministic seed in the URL. The seed chooses one of the verified sources for the selected difficulty and one of eight rotations or reflections. The same seed therefore recreates the same board. Transforming the geometry also transforms the stored reference directions, so QA can replay the transformed solution rather than assuming the transformation preserved it.

The 45 sources multiplied by eight symmetries create 360 verified source-orientation combinations before considering difficulty selection. This is intentionally different from manufacturing hundreds of near-identical search pages. Variation belongs inside the real game, while the search-facing site keeps a small set of distinct entry points.

How to plan a Sokoban position

Start by identifying goals near walls or corners. Those goals often need to be filled in a specific order because a later box may need the same standing square. Before pushing, ask where the player will stand after the push and whether the player can still get around the box. A box that is technically movable can still block the only route to another box.

It is often useful to work backward from a difficult goal. Imagine the final push into that goal: which adjacent square must contain the box, and which square must contain the player? Then ask how both can reach those squares without occupying each other’s route. The game’s exact push benchmark rewards this kind of planning, but walking around to inspect a route is not treated as a failure.

Local-first design

No paid puzzle API, server puzzle feed or account is required for this specialist. The bank, solver, transformations, autosave and local records are all part of the browser project. That keeps Practice reproducible and avoids silently changing a puzzle because a remote service returned different data.

The tradeoff is that records are device-local. Clearing browser storage can remove them, and the public build does not promise cross-device synchronization. The same local-first rule is used throughout the platform where practical.

Verification contract: the frozen bank has 45 sources, all 45 exact minimum-push values are independently recomputed, all 360 source symmetries replay to solved positions, and seeded Practice is checked across thousands of deterministic samples before V0.116 is sealed.
Open Sokoban Practice →Read about Daily Sokoban →