Presne tak. Dokonca pri ukladaní na zásobník nemusíš nič overovať, stačí, že to overíš až pri spracovaní políčka zo zásobníka.
Napr. úplne primitívna implementácia by mohla vyzerať nejako takto:
stack.push(start)
while (!stack.empty) {
cell = stack.pop();
if (cell && !cell.visible) {
cell.visible = true;
if (cell.count == 0) {
stack.push(cell.offset(-1,-1));
stack.push(cell.offset( 0,-1));
stack.push(cell.offset( 1,-1));
stack.push(cell.offset(-1, 0));
stack.push(cell.offset( 1, 0));
stack.push(cell.offset(-1, 1));
stack.push(cell.offset( 0, 1));
stack.push(cell.offset( 1, 1));
}
}
}