Пример #1
0
        private bool IsValidMove(Puzzle puzzle, int r, int c, char value)
        {
            var row = puzzle.RowAt(r);
            var col = puzzle.ColumnAt(c);
            var box = puzzle.BoxAt(r, c);

            return !(row.Any(cell => cell.Value == value) ||
                     col.Any(cell => cell.Value == value) ||
                     box.Any(cell => cell.Value == value));
        }
Пример #2
0
 public override bool SolveCell(Puzzle puzzle, int r, int c)
 {
     return FindLastOne(puzzle, r, c, puzzle.BoxAt(r, c)) ||
            FindLastOne(puzzle, r, c, puzzle.ColumnAt(c)) ||
            FindLastOne(puzzle, r, c, puzzle.RowAt(r));
 }