in Sudoku/Board.cs [70:88]
private void UpdateCellsAffectedBy(int sourceRow, int sourceCol, int number)
{
var squareBeginRow = (sourceRow / 3) * 3;
var squareBeginCol = (sourceCol / 3) * 3;
var squareEndRow = squareBeginRow + 3;
var squareEndCol = squareBeginCol + 3;
for (var row = 0; row < 9; row++)
for (var col = 0; col < 9; col++)
{
if (row == sourceRow || col == sourceCol ||
((squareBeginRow <= row && row < squareEndRow) && (squareBeginCol <= col && col < squareEndCol)))
{
if (!Cell(row, col).IsFilled)
Cell(row, col).RemoveOption(number);
}
}
}