GALABET FAIR / Under the surface

Mines

Explore a five-by-five board, then open the completed map. Your choices reveal the layout; they do not move the mines.

Interactive public-seed demonstration

Read the calculation ↓

25 TILES / 3 MINES / PUBLIC-SEED PRACTICE

0 safe picks · choose another tile

The seed is public in this exercise. Covered tiles are a learning interaction, not a secure live round.

A fox surveyor examines a lunar cutaway, crystals and buried hazards.

Public inputs. Real calculations.
Each new example advances the nonce and runs @galabet/fair in your browser. Results are reproducible, and the seed is visible to everyone.

Inspect this Mines result · nonce 42

THIS EXAMPLE / NONCE 42

Keep the inputs.
Check the result.

This demonstration uses a public server seed. Its record checks the calculation; it does not establish when a live service published a commitment.

Client seed
galabet
Fractions consumed
24
Highest cursor
2
Server seed commitment
ab37723062965715c5e6eeb54816f909a8e787bd3bfaee67a3cc0a3b90707de7
Open full verifier ↗

Revealed inputs and complete JSON
{
  "spec": "GFS/1.0",
  "profile": "single-player",
  "game": "mines",
  "params": {
    "mines": 3
  },
  "serverSeed": "5c1f7d3e8a2b4c6d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d",
  "clientSeed": "galabet",
  "nonce": 42,
  "commitment": "ab37723062965715c5e6eeb54816f909a8e787bd3bfaee67a3cc0a3b90707de7",
  "cursor": 2,
  "result": [
    9,
    17,
    22
  ],
  "at": 0
}

THE MAP AND THE CHOICES

Reveal the board.
Keep the history.

REFERENCE MINE POSITIONS10 · 18 · 23

Tile labels shown to a player

[9, 17, 22]

Zero-based indices in the record

One layout, many possible routes.

The library shuffles all 25 positions with 24 fractions. The first selected positions become mines, and the returned indices are sorted. Picking a different tile changes the path through that map.

A live round needs concealment.

The public exercise lets you inspect its inputs. A live service must keep the active seed and undisclosed layout on the server. Reveal them only when they cannot expose an unfinished board.

COMMITPLAYFINISHDISCLOSEREPRODUCE

AFTER A SAFE PICK

Fewer tiles.
The same hidden mines.

A safe pick removes one safe tile from the unknown set. With three mines, the first safe-pick chance is 22/25. After one safe pick, it is 21/24. Move through the counts to see why the next decision has a different probability.

✓×××·····················

Grouped counts, not a map of an active board.

NEXT PICK21 / 24

87.50% chance of a safe tile, given the safe picks already made.

Safe tiles remaining
21
Hidden mines remaining
3
Current table multiplier
1.1250×
WHILE THE BOARD IS ACTIVE

The browser needs your picks, not the buried layout.

Return the commitment, selected tiles and current state. Sending mine positions in a history response would disclose the board even if the visible grid still looked covered. The active server seed must remain private too.

visible: commitment, picks, state
withheld: mine positions, server seed
ONCE THE BOARD IS FINISHED

Open the map and retain the route.

The completed layout explains which tiles were mines. The ordered picks explain the route taken through it. A later seed reveal lets the verifier reproduce the original positions. The demo service defers the board's history record until completion and blocks seed changes or reveals during an active board.

REFERENCE EXAMPLE / NONCE 42

Inspect a layout after disclosure

JavaScript · completed-round audit
import { play } from '@galabet/fair';

// Public example inputs. Never publish an active server seed.
const seeds = {
  "serverSeed": "5c1f7d3e8a2b4c6d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d",
  "clientSeed": "galabet",
  "nonce": 42
};

const { result: mineIndices } = await play({
  game: 'mines', ...seeds, params: { mines: 3 }
});
console.log('indices', mineIndices);
console.log('tile labels', mineIndices.map(index => index + 1));
EXPECTED OUTPUT
indices      [9, 17, 22]
tile labels  [10, 18, 23]

These inputs are deliberately public. This is a completed-layout illustration, not an active session.