How Arrow Puzzle Hub Generates Always-Solvable Arrow Puzzles
Most puzzle boards that are generated at random end up with a dead end. Arrow puzzles can avoid that with one neat trick: build the board in the order you will undo it.
1. The rule that makes it easy
An arrow leaves the board when the lane in front of its head is empty. Removing an arrow can only empty squares, never fill them. So if any arrow is free right now, it will still be free after you remove any other arrow. This property (it only gets easier) means a board is solvable exactly when you can keep finding a free arrow until none are left – and the order never matters for solvability, only for speed.
2. Place arrows so the last one placed is the first one out
The generator places arrows one at a time onto an empty grid. When it places a new arrow, it checks that the lane in front of the new arrow's head does not touch any arrow that is already on the board. Later arrows, however, are allowed to sit in the lanes of earlier ones.
That gives a guaranteed solution: remove the arrows in the reverse order of placement. The newest arrow's lane was empty of everything older, and everything newer has already gone. Repeat until the board is clear.
3. Adding depth with blockers
If you only did step 2 with random arrows, many boards would be shallow: lots of arrows free from the start. So the generator works in phases:
- Long-lane bias. Early arrows prefer directions with long lanes, so later arrows are more likely to cross them.
- Fill the gaps. Remaining squares are visited in a shuffled order and any arrow that fits is placed.
- Blocker pass. Arrows that are still free get a new arrow placed across their lane, which makes a dependency chain. This runs a few times.
Per-level settings (grid size, arrow length range, how often arrows bend, how many arrows may point straight out of the edge) shape these phases. The measured effect is on the difficulty page.
4. Seeds: the same board for everyone
Randomness comes from a small seeded pseudo-random number generator (mulberry32). Give it the same seed and you get the same sequence, and so the same board. That is why a link with ?seed=482913&d=hard opens an identical puzzle for a friend, and why the daily puzzle only needs the date.
5. How we checked it
We generated 300 boards at each of the four levels (1,200 boards) and ran a solver that repeatedly removes every free arrow. All 1,200 were cleared; none got stuck. This is a test of a general argument, not a replacement for it – the argument in step 2 is the real guarantee.
What the generator does not promise
- No unique solutions. A board usually has many valid removal orders. That is by design – any free arrow is a safe move.
- No hand-tuned difficulty. Difficulty is controlled by structure (size, length, chain depth), not by watching people play.
- No "perfect" boards. Some seeds feel flat, others feel tricky. Hit New puzzle if one bores you.
Ideas or bug reports? Use the feedback page – include the page address so we can load the exact board.