Telegraphed Mines
Skill-spread 0.72 · A rotating subset of mines flashes a warning each turn.
Left-click reveals · right-click flags (long-press on mobile). Or hand it to an agent above and watch it play — PAFG is the paper's fixed symbolic solver, PAFG-LLM is the mechanic-adapted one.
The mechanic
A generated mine behavior with one of the highest skill-spreads in the archive. After every move, roughly 20% of the still-hidden mines telegraph themselves — they flash a warning marker for a single turn. Next turn those clear and a different subset lights up, so the hints rotate around the board. A skilled player treats each telegraph as a confirmed mine and clears the guaranteed-safe cells around it; random play can't turn the flickering intel into progress. The warned cells can't be clicked (they're known mines), and everything else is canonical 16×16 Minesweeper.
How to read the board
- A ⚠ marker is a mine the board is telegraphing for this turn only.
- Use the warnings to deduce which neighboring cells must be safe, then reveal them.
- The telegraphed set rotates every move — don't expect the same mines flagged twice.
- You still place your own flags with right-click; telegraphs are separate and automatic.
The rule in code
The generated mechanic this game runs. The browser engine is an algorithm-faithful port of it.
class TelegraphedMines(MineBehavior):
"""Each turn a rotating ~20% of hidden, un-flagged mines auto-flag themselves
as one-turn warnings. Last turn's warnings clear first, so a different subset
is telegraphed on every move."""
DEFAULT_TELEGRAPH_FRACTION = 0.20
def on_post_action(self, board, game, action):
# clear the mines we auto-flagged last turn
for (r, c) in self._prev_auto_flagged:
cell = board.grid[r][c]
if not cell.is_revealed and cell.is_mine and cell.is_flagged:
cell.is_flagged = False
hidden_mines = [(r, c)
for r in range(board.config.rows)
for c in range(board.config.cols)
if board.grid[r][c].is_mine
and not board.grid[r][c].is_revealed
and not board.grid[r][c].is_flagged]
if not hidden_mines:
self._prev_auto_flagged = set()
return
count = max(1, int(len(hidden_mines) * self.telegraph_fraction))
chosen = self._rng.sample(hidden_mines, min(count, len(hidden_mines)))
for (r, c) in chosen:
board.grid[r][c].is_flagged = True
self._prev_auto_flagged = set(chosen)