4 × 4 board
X
X
X
X
X
O
O
X
X
X
O
X
X
O
X
X
Border flood + capture sweep
▸1markSafe(r, c):2 safe[r][c] = true3 for each O-neighbour not safe: markSafe4for each border cell that is 'O':5 markSafe(r, c)6// capture sweep7for each cell (r, c):8 if grid[r][c]=='O' and not safe: grid[r][c]='X'9return grid
state
- ruleborder-connected O ⇒ safe