Game review

Mine Sweeper

7.2 / 10

Developer
Luca Bocaletto
Publisher
Luca Bocaletto
Released
1 January 2025
Platforms
Web browser (desktop and mobile)
Genre
Puzzle
Monetisation
Free, open source, no ads and no in-game purchases
Players
Single-player only

The short version

On its default Easy difficulty, this is a properly touch-built Minesweeper: the 9x9 board was measured to fit exactly within a 390px phone viewport with zero horizontal overflow, tapping a cell reveals it and correctly flood-fills empty regions, and a losing tap correctly reveals every mine on the board. Flagging is wired to the standard `contextmenu` event (confirmed to toggle a flag icon and update the counter correctly when fired directly), which real Android Chrome translates from a long-press but which this review's touch-simulation tooling could not itself trigger, so that specific path is disclosed rather than claimed. The real, measured flaw is that switching to Medium (16x16) or Hard (30x16) — which requires tapping New Game to actually apply, not just selecting the radio — produces a board 556px and 1032px wide respectively, well past the phone screen and requiring horizontal scrolling neither difficulty's layout accounts for.

Biggest strengths

  • The default Easy board (9x9, 10 mines) was measured directly and fits a 390px phone viewport with zero horizontal overflow — confirmed via DOM measurement, not just a glance at a screenshot
  • Tapping a cell reveals it correctly, including proper flood-fill of connected empty regions, confirmed by tapping a cell and watching a cascade of correctly-numbered cells appear
  • A losing move is handled cleanly: tapping a mine ends the game, shows "Game Over!", and reveals every mine on the board with a clear red highlight — confirmed directly by losing a game on purpose

Biggest weaknesses

  • Medium and Hard difficulties do not fit a phone screen: measured directly at 556px and 1032px wide respectively against a 390px viewport, both requiring horizontal scrolling that the layout does nothing to accommodate. Only the default Easy difficulty was confirmed genuinely responsive
  • Long-press-to-flag on touch could not be independently confirmed in this environment. The code relies entirely on the browser synthesizing a native `contextmenu` event from a long-press (standard behavior on Android Chrome, less consistent on iOS Safari) rather than custom touch-timing code, and this review's touch-simulation tooling dispatches raw touch events below the level where that native gesture gets recognized — so this is disclosed as untested rather than claimed working or broken
  • Selecting a harder difficulty doesn't do anything by itself; the change only applies after a separate tap on "New Game," which isn't explained anywhere in the UI and was only discovered by testing it directly

Who it's for: Phone players who want quick, no-frills Minesweeper on Easy; less suited to anyone wanting a real challenge on a touchscreen

Our recommendation: A solid Easy-mode pick for the shelf, with a difficulty-scaling flaw worth naming

7.2 / 10

Mine Sweeper 2.0 is a small, single-file Minesweeper, and the part of it that matters most for this shelf — whether the default board actually works on a phone — checks out under direct measurement rather than assumption. Loaded at a simulated 390x844 touch viewport, the 9x9 Easy board renders with a document.body.scrollWidth of exactly 390px: no overflow, no horizontal scroll needed, every cell reachable with a thumb. Tapping a cell reveals it correctly, flood-fills connected empty regions exactly as Minesweeper should, and a deliberately-triggered loss produced a clean "Game Over!" state with every mine on the board revealed in red. That's the classic game, done properly, on the one difficulty most phone players will actually use.

Flagging works, but one part of it couldn't be fully tested

The in-app Help modal is upfront about the control scheme: left-click (or tap) to reveal, right-click (or long-press on touch) to flag. Reading the source confirms flagging is wired to a single contextmenu event listener, and dispatching that event directly onto a cell toggled a flag icon on and moved the flag counter from 0 to 1 exactly as expected — the underlying logic is correct. What couldn't be confirmed directly is the touch side of that path: a long-press is supposed to make the browser itself synthesize a contextmenu event, which is standard behavior on Android Chrome and less consistent on iOS Safari, but the raw touch-event dispatch available in this testing environment sits below the level where that native gesture recognition happens, so a simulated long-press here simply registered as a tap (revealing the cell) rather than triggering a flag. That's a limitation of the test, disclosed here rather than treated as a confirmed pass or fail — the code path is legitimate and standard, but this review cannot personally vouch for how it behaves on a physical touchscreen.

Medium and Hard don't fit a phone at all

Separately, and more concretely: selecting Medium or Hard doesn't do anything on its own — the board only resizes after a subsequent tap on "New Game," which is a UI gap in itself — and once it does, the numbers get bad quickly. A Medium (16x16, 40 mines) board measured 556px wide, and Hard (30x16, 99 mines) measured 1032px wide, both well past a 390px phone screen with no responsive scaling to compensate. Interacting with either would mean scrolling around a board that a single-screen tap can no longer reach in one go, which undercuts the very thing Easy gets right.

Verdict

As a phone-first Minesweeper on its default settings, this earns its place: measured, working, responsive, and clean. The difficulty-scaling gap is real and worth fixing, and the touch-flagging path deserves an asterisk rather than a clean bill of health, but neither one erases what already works properly out of the box.

Pros and cons

Pros

  • The default Easy board (9x9, 10 mines) was measured directly and fits a 390px phone viewport with zero horizontal overflow — confirmed via DOM measurement, not just a glance at a screenshot
  • Tapping a cell reveals it correctly, including proper flood-fill of connected empty regions, confirmed by tapping a cell and watching a cascade of correctly-numbered cells appear
  • A losing move is handled cleanly: tapping a mine ends the game, shows "Game Over!", and reveals every mine on the board with a clear red highlight — confirmed directly by losing a game on purpose
  • The flag mechanic's underlying logic is correct — dispatching the `contextmenu` event the code listens for toggled a flag icon on and incremented the flag counter exactly as expected
  • MIT-adjacent openness (GPL-3.0), single self-contained HTML file, no analytics anywhere, and a working in-app Help modal that plainly documents the controls including the touch long-press
  • Loads and plays with zero console errors on both device profiles tested

Cons

  • Medium and Hard difficulties do not fit a phone screen: measured directly at 556px and 1032px wide respectively against a 390px viewport, both requiring horizontal scrolling that the layout does nothing to accommodate. Only the default Easy difficulty was confirmed genuinely responsive
  • Long-press-to-flag on touch could not be independently confirmed in this environment. The code relies entirely on the browser synthesizing a native `contextmenu` event from a long-press (standard behavior on Android Chrome, less consistent on iOS Safari) rather than custom touch-timing code, and this review's touch-simulation tooling dispatches raw touch events below the level where that native gesture gets recognized — so this is disclosed as untested rather than claimed working or broken
  • Selecting a harder difficulty doesn't do anything by itself; the change only applies after a separate tap on "New Game," which isn't explained anywhere in the UI and was only discovered by testing it directly
  • It's Minesweeper with no twist — a faithful, well-executed implementation of a very old game, not a new idea

Category scores

Category scores are the reviewer's read on each area. They inform the overall score but do not average into it — the number at the top of the page is a judgement, not a calculation.

  • Gameplay 7 / 10
  • Visuals 6.5 / 10
  • Performance 8 / 10
  • Originality 2.5 / 10
  • Interface 6 / 10
  • Controls 7 / 10