public override void Check(Board brd) { changes = false; List <char> list; foreach (Cell c in brd.board) { list = new List <char>(c.charChoices); if (c.charChoices.Count < (brd.n / 4)) { foreach (char v in list) { Board temp = new Board(brd); temp.board[c.yPos, c.xPos].displayedChar = v; SolverLoop l = new SolverLoop(); if (l.Run(temp)) { c.displayedChar = v; changes = true; break; } } } if (changes) { break; } } }
private void SolvePuzzle(object sender, RoutedEventArgs e) { sudokuGrid.IsEnabled = true; SolverLoop l = new SolverLoop(); l.Run(brd); UpdateGrid(); }
public void GetColumnFromIndexTest() { SolverLoop s = new SolverLoop(sudoku); string expected = "810030000"; Assert.Equal(expected, string.Join("", s.GetColumFromIndex(43))); }
public void GetRowFromIndexTest() { SolverLoop s = new SolverLoop(sudoku); string expected = "630052800"; Assert.Equal(expected, string.Join("", s.GetRowFromIndex(78))); }
public void GetCoordinateFromIndexTest(int idx) { //arrange SolverLoop s = new SolverLoop(sudoku); //act (int row, int col)input = (idx / (int)Math.Sqrt(s.SudokuInput.Length), idx % (int)Math.Sqrt(s.SudokuInput.Length)); //assert Assert.Equal(input, s.GetCoordinateFromIndex(idx)); }