Solver cases

Nine people, one decision each — the rules, the guesses, and how to tell a better bot from a lucky one.

A real case · you decide

Priya and the satisfied number

Priya — a 15-year-old who plays Minesweeper on the bus and wants to know why her fast opens work

The idea in play: the done rule — a number already touching all its mines: its other neighbours are safe.

Priya sees a 1 with one flagged mine beside it and three hidden squares around it. She opens all three without thinking.

Her friend asks how she knew. She realises she has never said the reason out loud.

The 1 says “exactly one mine touches me”. One flagged mine already touches it.

Why are the three hidden squares safe?

A rule you can state is a rule you can put in a bot. That is the first step from playing to programming.

Try the open command →

A real case · you decide

Jonah and the squares with nowhere else to go

Jonah — a 16-year-old who flags too early and loses boards to wrong flags

The idea in play: the full rule — a number whose hidden neighbours are exactly its missing mines: flag them all.

Jonah looks at a 2 on the edge of the board. It has no flags yet and exactly two hidden neighbours.

He has been flagging squares that just “look dangerous”. Some of those flags were wrong, and they misled his later moves.

This time he counts: the 2 needs two mines, and only two squares are left that could hold them.

What can Jonah prove about the two hidden squares?

Done opens safe squares and full flags mines. Between them, they settle most easy positions.

Try the flag command →

A real case · you decide

Aiko and the number inside a number

Aiko — a 17-year-old whose bot gets stuck where she, playing by hand, does not

The idea in play: the subset rule — one number’s hidden squares sit inside another’s: the difference holds the difference in mines.

Aiko spots it by hand: a 1 whose two hidden squares are both also neighbours of a 2 that has three hidden squares.

Neither number alone settles anything: done and full both stay silent.

But the 1’s two squares are part of the 2’s three. The 1 says those two hold exactly one mine.

What about the 2’s third square, the one the 1 does not touch?

The subset rule is where Minesweeper stops being counting and starts being logic.

Add the subset block →

A real case · you decide

Marcus and the least-bad guess

Marcus — a 16-year-old who thinks a guess is a guess, so it does not matter which

The idea in play: guess-safest vs guess-random — when you must guess, the exact odds tell you where.

Marcus’s bot has run out of sure moves. Some hidden squares are next to numbers; many are not.

The terminal can show the exact chance of a mine for each hidden square, counted from every arrangement the numbers allow.

One square sits at about 1 in 8. A square in the untouched middle sits nearer 1 in 4.

Which guess block should Marcus put last in his bot?

A guess is a decision under uncertainty. Good decisions still lose sometimes, just less often.

Race guess-safest vs guess-random →

A real case · you decide

Hana and the bot that never loses

Hana — a 17-year-old proud that her bot has never hit a mine

The idea in play: stuck is not lost — a bot of only sound rules never loses, but it also cannot finish boards that need a guess.

Hana’s bot uses only done, full and subset. Over 50 races it never lost once.

Her results show 0 lost, but a large number marked “stuck”. Those boards were left half-finished.

Terminal Sweep uses ordinary random boards, not no-guess boards, so some positions genuinely need a guess.

Is Hana’s bot the best one?

Every measure rewards some behaviour. Choose the measure first, then the bot.

Race a sound-only bot →

A real case · you decide

Kofi and the hint that will not play for him

Kofi — a 15-year-old who wants the terminal to just make the next move

The idea in play: the hint explains the next forced move and why — it never plays it for you.

Kofi types hint. The terminal names a square, the rule that forces it and the number behind it, then waits.

He had hoped it would open the square. It does not.

If the position has no forced move, the hint says so instead of guessing for him.

What should Kofi do with the hint?

Help that does the work for you feels faster and teaches less. Help that explains is slower and lasts.

Ask the terminal for a hint →

A real case · you decide

Ines and the board that was never fair

Ines — a 16-year-old who is sure she played perfectly and still lost

The idea in play: random boards can need a guess — a loss after a forced guess is not proof of a bad move.

Ines used every sound rule, then had to choose between two squares with equal odds. She chose wrong.

Sweep League boards are built so logic always reaches the end. Terminal Sweep boards are ordinary random ones.

On a random board, a 50-50 can be the only move left. No rule can settle it.

What does this loss say about her play?

This is why bots are compared over many boards. One result mixes skill and luck; many results separate them.

Play a random board →

A real case · you decide

Diego and the ten-board race

Diego — a 17-year-old who wants to announce his new bot is better

The idea in play: sample size — a small race cannot tell two close bots apart.

Diego races his new bot and his old bot on the same 10 boards. The new one wins 7, the old one wins 6.

The boards were the same for both bots, so the comparison is fair. But ten is not many.

One lucky or unlucky 50-50 guess is enough to move either score by a board.

What should Diego do before announcing anything?

A result you can re-run with the same seed, on enough boards, is one other people can check.

Race on more boards →

A real case · you decide

Ravi and the fast bot that wins less

Ravi — a 16-year-old who ranks bots by how few moves they take

The idea in play: measure the right thing — average moves is not the win rate.

Ravi’s results table shows his guess-first bot uses the fewest moves per board. He calls it the winner.

The same table shows that bot also has the most losses. A board that ends on move 3 with a mine is a short game.

Fewer moves can mean speed, or it can mean ending early.

Which column should decide the winner?

Every leaderboard is a choice about what matters. Make that choice on purpose.

Compare wins and moves →

When two ideas meet

Two cases where two people’s rules work together — one proof feeding the next.

A real case · you decide

Jonah and Priya: one proof feeds the next

Jonah & Priya — two friends who each own one sound rule and want to know how the rules work together

The idea in play: sound rules chain — a flag one rule proves is a fact the other rule can use, and the order of sound rules does not change what they prove.

Jonah counts a 2 with exactly two hidden neighbours and flags both. Right beside them, Priya sees a 1 that now touches one of Jonah’s new flags.

Before Jonah’s flags, Priya’s 1 was silent: it had hidden squares and no known mine.

After them, the 1 touches one proven mine and still has two hidden neighbours of its own.

What does Priya’s 1 now say about its two other hidden squares?

In the bot, Jonah wants “full” first and Priya wants “done” first. Whose order solves more boards?

Two small rules, used together, prove things neither proves alone. That is what a solver is.

Try the bot builder →

A real case · you decide

Hana and Marcus: stuck, then the least-bad guess

Hana & Marcus — a proud sound-only bot builder and a friend who thinks guesses are part of the game

The idea in play: a sound bot never loses but can get stuck; a guess block, placed after the sound rules, finishes boards at the cost of some losses.

Hana’s bot has never hit a mine. Marcus points out it has never finished some boards either.

They race Hana’s bot on the same boards twice: once as it is, once with Marcus’s “guess-safest” block added.

The second bot loses a few boards. It also wins boards the first one could only stop on.

Where should Marcus’s guess block go in the rule order?

Hana’s bot is safe; Marcus’s bot is finished. The race tells you what each choice costs.

Race the two bots →