Steps{{ snapshot.hud.steps }}
Active time{{ time(snapshot.activeMs) }}
Maze{{ snapshot.hud.size }} × {{ snapshot.hud.size }}
Trail{{ snapshot.hud.breadcrumbs ? 'On' : 'Off' }}

{{ textState }}

Tap an adjacent cell or use the arrows. Blue circle → gold diamond.

A path worth finding

Find your way through

Start at the blue circle. Follow open passages to the gold diamond. Dead ends are part of the puzzle — turn back and try another route.

Same size + seed = same maze. Breadcrumbs mark where you have been, without revealing the route ahead.

Arrows / WASD moveP pausesOn-screen arrows work by touch

Take your time

Maze paused

Your position, steps and active time are preserved.

{{ outcome.status === 'goal_reached' ? 'From entrance to exit' : 'Another route awaits' }}

{{ outcome.summary.headline }}

{{ outcome.summary.detail }}

{{ metric.label }}
{{ metric.value }}

{{ bestText }}

Local best storage is unavailable. You can still replay and finish mazes.

Run details
Seed
{{ identity.seed }}
Setup
{{ snapshot.hud.size }} × {{ snapshot.hud.size }} · breadcrumbs {{ snapshot.hud.breadcrumbs ? 'on' : 'off' }}
Rules
{{ identity.rulesVersion }}
Trace checksum
{{ identity.trace.checksum }}
Snapshot checksum
{{ identity.snapshotChecksum }}

Active time counts 0.1-second play ticks and stops while paused or hidden. Bests stay in this browser for up to 24 mazes; fewer steps wins, then faster time.

The exit can look close while walls force a long detour. A grid maze consists of cells joined by open passages, and solving it means finding a continuous route from the entrance to the exit without crossing a wall. Distance across the drawing does not tell you how many moves that journey will take.

At a junction, more than one passage offers a possible way forward. A dead end leaves no onward passage, so backtracking means returning along the corridor to an earlier junction and trying another branch. Returning to a familiar cell is part of exploring an unfamiliar maze. When counting moves, however, both the outward journey and the return journey count, even though they leave you back where you started.

A perfect maze has no isolated cells or loops. Between any two cells, there is exactly one route that does not revisit a cell. “Perfect” describes the maze's structure, not its difficulty. Every dead end can be escaped by retracing your steps, but reaching the exit without extra movement requires choosing the correct branch at each junction.

A trail of visited cells can help distinguish familiar ground from unexplored passages. It does not tell you whether every branch from a marked junction has been explored, or which branch eventually reaches the exit. On a first attempt, the useful goal is to understand those connections. Repeating the same layout lets you concentrate on avoiding unnecessary detours and then moving more quickly. Comparisons between unrelated mazes are less informative because their passage patterns and required route lengths differ, even when their grids have the same dimensions.

How to Use This Tool:

Choose a layout to explore, or reuse a seed to practice a familiar maze. Size and breadcrumbs are fixed for each run.

  1. Choose Maze size from Small, 6 × 6; Medium, 10 × 10; or Large, 14 × 14. Small is the default. Keep Leave breadcrumbs in visited cells checked to mark cells you have visited, or clear it to play without the trail.
  2. Enter a Seed, or keep the starting value maze-1. Use 1 to 64 characters with at least one non-space character. Leading and trailing spaces are removed. A blank seed disables Start maze; enter a seed to clear the warning.
  3. Select Start maze and move the blue circle from the upper-left cell toward the gold diamond in the lower-right cell. Use the arrow keys, W, A, S, D, or the on-screen direction buttons. You can also click or tap a directly adjacent cell; diagonal or distant cells do not move the player.
    Keyboard movement works while the maze itself has focus. Click your current cell to return focus to it. Press and release a direction key for each move, because holding a key does not repeat movement. The text beneath the maze reports your row, column and open directions.
  4. Use Pause or P for a break, then select Resume to continue. Switching away from the tab or window also pauses the run. Restart begins the same maze again with your position, steps, time and trail reset. End run stops the attempt without requiring you to reach the exit.
  5. Reach the gold diamond to finish, then compare Your steps with Shortest route. Select Replay same seed to retry the layout, or New seed to retain the size and breadcrumb setting with another seed. Change setup returns to the editable choices.

Interpreting Results:

Exit found! confirms that you reached the goal. Your steps counts successful cell-to-cell moves, while Shortest route gives the minimum number needed from the entrance to the exit for that exact layout. It is a step count, not a displayed solution path. Extra steps measures how far your movement exceeded that minimum. Zero extra steps means you matched the shortest route, not that you achieved the fastest possible time.

Run ended means you stopped before reaching the exit. Your steps and active time remain visible, but Shortest route reads Finish to reveal and Extra steps is unavailable. An unfinished attempt does not update a local best. There is no countdown or automatic loss for taking too long or entering a dead end.

A local best compares completed runs with the same rules, size, seed and breadcrumb setting. Fewer steps always wins, even when that run took longer. Faster Active time matters only when the step counts are equal. Breadcrumbs do not change the maze, but playing with them on and off produces separate best records.

Technical Details:

Open passages connect neighboring cells in both directions. Each passage crossing has the same cost of one step, so route length depends on the number of crossings rather than their direction or position on the drawing.

Passages, steps and completion

Movement, counting and completion rules for a maze run
Situation Rule
Open passage to a neighboring cell Move one cell up, right, down or left and add one step. Returning to a visited cell counts in exactly the same way.
Wall or outer boundary Keep the current position and add no step. A blocked direction produces the message “Wall ahead. Try an open passage.”
Entry into the exit cell Count the final move and immediately finish successfully. Crossing the outer boundary is not required.
Before starting, while paused or after finishing Movement is unavailable and active time does not advance.

Maze construction and the minimum route

Depth-first backtracking creates the passages. Beginning at the entrance with every wall closed, it chooses an adjacent cell not yet reached during construction and opens the shared wall. It continues from that cell until there is no unvisited neighbor, then retraces the construction route to find another available branch. The seed determines the sequence of choices.

Because each new passage joins a previously unreached cell to the growing maze, the completed passages connect every cell without creating a loop. This structure is a spanning tree, which explains why these mazes are solvable and have one non-retracing entrance-to-exit route. With the same size and rules, repeating a seed reproduces the wall layout. Breadcrumbs only affect the visible trail.

The minimum route is counted using breadth-first search. Starting with zero steps at the entrance, it considers cells reachable in one move, then two moves, and so on. The first distance assigned to the exit is the minimum number of passage crossings. The starting cell itself does not count as a step.

Extra steps and active time

For a completed run, extra steps are the successful moves beyond the minimum route.

E = S − L

E is Extra steps, S is Your steps, and L is Shortest route. All three are whole numbers of cell-to-cell moves. Blocked attempts contribute nothing to S, although time can continue passing while the run is active.

For the 6 × 6 maze with seed maze-1, the shortest route takes 18 steps. Moving right and then left at the entrance before following that route produces 20 successful moves and 2 extra steps. An attempted upward move at the entrance hits a wall and does not increase either count.

Extra steps are not a count of wrong decisions. A single detour may involve several outward and return moves. Since an excursion in a tree-shaped maze must return along the same branch, the excess for a completed run is always even.

Active time accumulates in counted play intervals of 0.1 seconds.

t = 0.1 × k

t is Active time in seconds, and k is the number of counted play intervals. For example, 123 intervals give 12.3 seconds. The display uses one decimal place. Thinking without moving still contributes time while the run is active, but pauses do not. This is a game-time measure with tenth-of-a-second resolution, not the total time since the maze was opened.

FAQ:

What is saved when I leave?

Maze generation and play run in your browser. Completed best records are saved there for up to 24 combinations of size, seed, breadcrumb setting and rules. Older combinations can be removed when that limit is reached. These records do not save an unfinished maze, so reloading returns to setup rather than restoring your position. If local best storage is unavailable, replaying and finishing still work. There is no shared leaderboard, and results have no monetary value.

Does New seed pick a seed at random?

No. New seed derives a different seed from the current seed text rather than drawing one at random. The resulting maze remains reproducible. Different seeds are not a guarantee of unique layouts or a particular difficulty. To use a specific seed of your own, enter it through Change setup.

References: