public static void UpdateColumnNeighbours(this Grid grid, int y) { Console.WriteLine("update column {0}", y); for (int i = 0; i < grid.GridSize; i++) { if (grid.GetCell(i, y).Solved) { continue; } grid.GetCell(i, y).Options = grid.UpdateCellOptions(i, y, grid.GetCell(i, y).Square); grid.CheckCellForSingleOption(i, y); } }
public static void UpdateSquareNeighbours(this Grid grid, int s) { Console.WriteLine("update square {0}", s); Cell[] square = grid.GetSquareCells(s); for (int i = 0; i < grid.GridSize; i++) { if (grid.GetCell(square[i].X, square[i].Y).Solved) { continue; } grid.GetCell(square[i].X, square[i].Y).Options = grid.UpdateCellOptions(square[i].X, square[i].Y, s); grid.CheckCellForSingleOption(square[i].X, square[i].Y); } }
public static void UpdateRowNeighbours(this Grid grid, int x) { Console.WriteLine("update row {0}", x); for (int i = 0; i < grid.GridSize; i++) { if (grid.GetCell(x, i).Solved) { continue; } grid.GetCell(x, i).Options = grid.UpdateCellOptions(x, i, grid.GetCell(x, i).Square); grid.CheckCellForSingleOption(x, i); } }