public override bool SolveCell(int row, int column, Puzzle puzzle) { var onlyOne = FindOnlyOne(row, column, puzzle, puzzle.BlockLocation(row, column)) || FindOnlyOne(row, column, puzzle, puzzle.ColumnLocation(column)) || FindOnlyOne(row, column, puzzle, puzzle.RowLocation(row)); return(onlyOne); }
private bool IsValidMove(int row, int column, Puzzle puzzle, char value) { return(!(puzzle.RowLocation(row).Any(cell => cell.Value == value) || puzzle.ColumnLocation(column).Any(cell => cell.Value == value) || puzzle.BlockLocation(row, column).Any(cell => cell.Value == value))); }