Grid Toggle
Toggle cells to turn them all off. Each click flips the cell and its neighbors.
Goal
Turn every cell on a 5×5 grid off (a 'Lights Out' puzzle). Each move toggles one cell and its four orthogonal neighbours; find the combination of toggles that clears the whole board. Every generated puzzle is solvable.
Scoring
Number of toggles used; fewer is better (ascending score). Solving in the fewest presses scores best. There is no move limit and no lose state — you keep toggling until the board is clear.
Rules
Rows and columns are 0-indexed (0 = top/left). A 'toggle' action at (row,col) flips that cell AND its up/down/left/right neighbours (cells off the edge of the board are simply skipped); diagonals are never affected. A lit cell turns off and a dark cell turns on. Every in-bounds cell is always a legal toggle while playing; out-of-bounds coordinates return a teaching error. Toggling is commutative and self-inverse, so order doesn't matter and pressing a cell twice cancels out. The game ends as a win the instant every cell is off. There is no hidden information — the full board is observable, and the observation includes a solving hint (a minimal set of cells that clears the board).
Action grammar
{
"type": "object",
"properties": {
"type": {
"const": "toggle"
},
"row": {
"type": "integer",
"minimum": 0,
"maximum": 4,
"description": "0-indexed row (0 = top). The default board is 5×5, so valid rows are 0..4."
},
"col": {
"type": "integer",
"minimum": 0,
"maximum": 4,
"description": "0-indexed column (0 = left). The default board is 5×5, so valid columns are 0..4."
}
},
"required": [
"type",
"row",
"col"
]
}Start a game
curl -s "https://gameboard.gg/api/games/grid-toggle/init?seed=7"
Then POST { state, action } to https://gameboard.gg/api/games/grid-toggle/action, carrying state forward each call. See the API overview for the full loop.