Beispiel #1
0
        public void CheckContainsDuplicateMethod()
        {
            int[]      x1    = { 1, 2, 3, 4 };
            List <int> list1 = new List <int>(x1);

            int[]      x2    = { 1, 1, 2, 3 };
            List <int> list2 = new List <int>(x2);

            int[]      x3    = { 1, 5, 2, 3, 9, 8, 4, 7, 6 };
            List <int> list3 = new List <int>(x3);

            int[]      x4    = { 1, 5, 6, 3, 9, 8, 4, 7, 6 };
            List <int> list4 = new List <int>(x4);

            SudokuLogic.SudokuSolver sudokuSolver = new SudokuSolver();

            Assert.IsFalse(sudokuSolver.ContainsDuplicate(list1), "1 wrong");
            Assert.IsTrue(sudokuSolver.ContainsDuplicate(list2), "2 wrong");
            Assert.IsFalse(sudokuSolver.ContainsDuplicate(list3), "3 wrong");
            Assert.IsTrue(sudokuSolver.ContainsDuplicate(list4), "4 wrong ");
        }
Beispiel #2
0
        public bool IsSolved()
        {
            SudokuSolver sudokuSolver = new SudokuSolver();

            //checks each box is solved
            for (int row = 0; row < 9; row++)
            {
                for (int column = 0; column < 9; column++)
                {
                    //if unsolved, return false
                    if (!this[row, column].getSolved())
                    {
                        return(false);
                    }
                }
            }

            //two for loops to go through each row, check no duplicates
            for (int row = 0; row < 9; row++)
            {
                var myList   = new List <int>();
                int numTotal = 0;
                for (int column = 0; column < 9; column++)
                {
                    myList.Add(this[row, column].getVal());
                }
                if (sudokuSolver.ContainsDuplicate(myList))
                {
                    return(false);
                }
            }

            //if(printChecks) System.out.println("Rows add up");
            //two for loops to go through each column, check no duplicates
            for (int column = 0; column < 9; column++)
            {
                var myList   = new List <int>();
                int numTotal = 0;
                for (int row = 0; row < 9; row++)
                {
                    myList.Add(this[row, column].getVal());
                }
                if (sudokuSolver.ContainsDuplicate(myList))
                {
                    return(false);
                }
            }
            //if(printChecks) System.out.println("Columns add up");

            //check each box, check no duplicates
            //for each box row
            for (int boxRow = 0; boxRow < 3; boxRow++)
            {
                //for each box column
                for (int boxColumn = 0; boxColumn < 3; boxColumn++)
                {
                    var myList   = new List <int>();
                    int numTotal = 0;
                    //for each row in the small box
                    for (int row2 = boxRow * 3; row2 < boxRow * 3 + 3; row2++)
                    {
                        //for each column in the small box
                        for (int column2 = boxColumn * 3; column2 < boxColumn * 3 + 3; column2++)
                        {
                            myList.Add(this[row2, column2].getVal());
                        }
                    }
                    if (sudokuSolver.ContainsDuplicate(myList))
                    {
                        return(false);
                    }
                }
            }
            //if(printChecks) System.out.println("Boxes add up");
            return(true);
        }