Flood Fill

Code

function floodFill(ar, x, y) {
  if (y < 0 || ar.length <= y) return false;
  if (x < 0 || ar[y].length <= x) return false;
  if (ar[y][x].touched) return true;
  if (ar[y][x].island) return true;

  ar[y][x].touchCell();

  floodFill(ar, x, y - 1);
  floodFill(ar, x, y + 1);
  floodFill(ar, x - 1, y);
  floodFill(ar, x + 1, y);
}

Search