Quick summary
Useful Sokoban strategy starts with the final push, not the nearest movable crate. Mark the target, the square where its crate must wait and the support square where the player must stand; then protect all three while checking every push for lost access and proven deadlocks.
Why one legal push can ruin a solvable room
The official Sokoban rules are short: the player moves in four directions, pushes one crate at a time and cannot pull. That last restriction gives every push weight. A legal destination can still leave a crate impossible to recover.
Walking usually changes only the player's position. Pushing changes the room's geometry: the crate occupies a new square, blocks a route and may remove the side from which a later push must be made. Before asking whether a push is legal, ask what useful push remains afterwards.
For each proposed push, inspect three positions:
- the destination square the crate will occupy now;
- the support square where the player must stand for the next useful push;
- the route that lets the player reach that support square.
Work backwards from the final push
Choose a constrained target and imagine the last action that fills it. From which adjacent square must the crate arrive? Where must the player stand to make that push? Walls, other targets and narrow entrances may leave only one workable answer.
Build a three-part reverse plan, then work one push earlier. Ask how a suitable crate can reach its pre-target square without occupying the final support square or sealing the route to it. Continue only far enough backwards to justify the next safe push.
Reverse planning is a decision tool, not a universal proof. Crates can interact in ways that remain hard to see locally, which is why deadlock-specific checks still matter.
- Target: the final square the crate must occupy.
- Pre-target square: the adjacent square from which the crate enters.
- Final support square: the square behind the crate where the player must stand.
Choose crate order before you chase distance
The crate nearest a target is not necessarily the right crate. A target against a wall or at the end of a corridor may accept a crate from only one direction, while an open target can be approached several ways. Analyse the constrained target first and reserve a compatible crate for it.
A completed crate still occupies a square, so treat it as a new wall while testing the rest of the plan. Filling an easy target too early can close a shared lane, block the route around another crate or consume the only staging square that allowed a change of pushing side.
Before choosing an order, compare:
- which target has the fewest viable final approaches;
- which crate can reach that approach while preserving support access;
- which lanes are shared by two or more unsolved crates;
- what becomes blocked if a target is filled now.
Preserve access with reversible staging squares
A staging square is a temporary place where a crate can wait while the player walks around it. Central open floor is often more flexible than a wall edge or single-exit corridor, but central does not automatically mean safe. The square is useful only if the player can still reach a productive pushing side and the crate retains a route to a target.
Before using a staging square, check all four conditions. Unlimited Undo and Redo help you compare plans from the last geometric decision; they are planning tools, not a penalty for failure.
- The destination is not a proven dead square.
- The player can get behind the crate for at least one planned next push.
- The push does not close the player's only route around a wall or crate group.
- Other crates retain their shared lane to constrained targets.
Recognise proven deadlocks without fearing every wall
Crate Bloom deliberately separates a proved Deadlocked state from a broader Danger warning. Its current static checks cover three bounded patterns:
- a crate in a non-target corner;
- a wall-region square that cannot reach any target under reverse-pull reachability, even when other crates are ignored;
- a frozen 2×2 block made from walls and crates when at least one trapped crate is off target.
A crate touching a wall is not automatically lost. If it can still travel along that wall towards a target, the position may remain recoverable. A crate in a target corner is also a counterexample to the crude rule that every corner means deadlock: it may already be correctly placed.
Stop when a static proof appears. When the interface says Danger, inspect access instead of assuming that the room is lost.
A solver-verified decision from Split Bed
Crate Bloom's current Campaign contains 36 project-authored levels across three worlds. Level 13, Split Bed, is a compact three-crate room built around access rather than long walking.
The published Campaign manifest records six as the minimum number of pushes within the admitted push-state graph, alongside a legal 22-move reference replay. These are intentionally different claims: the push count is proved within the admitted graph, while the replay's walking count is not presented as a globally shortest move solution.
The legal reference replay supplies a reproducible local order without giving the complete route. Its first crate push stages the lower crate from (3,3) to (4,3). Its second push places the upper-left crate from (2,2) down onto the goal at (2,3). The order matters: if that goal is filled while the lower crate remains at (3,3), the finished crate occupies the support square needed to push the lower crate right, while the wall at (3,4) rules out a vertical escape.
- Before moving a crate, mark (2,3) as both a goal and the support square for pushing the lower crate right.
- Use that support square while it is open: stage the lower crate from (3,3) to (4,3).
- Only then place the upper-left crate from (2,2) onto the goal at (2,3).
- Recompute the remaining support squares; the stored replay completes in six pushes, but the rest of its route is deliberately omitted here.
The lesson is not that a goal should be delayed every time. It is that a shared square must finish its job as a support square before it becomes permanently occupied by a completed crate.
Use the reverse plan, push, proof loop
A compact Sokoban strategy loop keeps each irreversible action auditable:
- Reverse plan: choose a constrained target and mark the final crate and player positions.
- Push check: inspect the destination, next support square, escape route, shared lane and static deadlocks.
- One push: commit a single geometry-changing action rather than a rapid series.
- Proof: redraw the player's reachable region and the remaining crate routes.
- Recover: if necessary access disappeared, Undo to the decision point instead of adding rescue pushes blindly.
Frequently asked questions
What should I plan first in Sokoban?
Start with the final push into a constrained target. Identify the crate's pre-target square and the square where the player must stand, then choose a crate order that keeps both accessible.
Is every crate against a wall deadlocked?
No. Wall contact is fatal only when no viable route to a target remains. Crate Bloom labels bounded static proofs as Deadlocked and treats uncertain wall contact as Danger.
Should I minimise walking or pushes first?
Plan pushes first because they change crate geometry and future access. Walking can be shortened afterwards. Crate Bloom's minimum-push claim is bounded to its admitted push-state graph; stored move counts are reference replays, not globally shortest-walk claims.
External references
These primary sources support the general rules and research context; Crate Bloom's level and detector facts come from the project evidence linked above.
Test one push at a time
Open Campaign, choose a constrained target and protect the next standing square before moving a crate. The complete route stays yours to discover.
Play Crate Bloom Campaign