Exemplo n.º 1
0
        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;
                }
            }
        }
Exemplo n.º 2
0
        private void SolvePuzzle(object sender, RoutedEventArgs e)
        {
            sudokuGrid.IsEnabled = true;
            SolverLoop l = new SolverLoop();

            l.Run(brd);
            UpdateGrid();
        }
Exemplo n.º 3
0
        public void GetColumnFromIndexTest()
        {
            SolverLoop s = new SolverLoop(sudoku);

            string expected = "810030000";

            Assert.Equal(expected, string.Join("", s.GetColumFromIndex(43)));
        }
Exemplo n.º 4
0
        public void GetRowFromIndexTest()
        {
            SolverLoop s = new SolverLoop(sudoku);

            string expected = "630052800";

            Assert.Equal(expected, string.Join("", s.GetRowFromIndex(78)));
        }
Exemplo n.º 5
0
        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));
        }