public void TestThreeBy() { int?[,] solutionCorrect = new int?[, ] { { 9, 6, 3, 7, 2, 1, 5, 8, 4 }, { 5, 2, 1, 3, 8, 4, 6, 9, 7 }, { 7, 8, 4, 5, 9, 6, 2, 1, 3 }, { 3, 9, 2, 4, 5, 8, 1, 7, 6 }, { 8, 4, 7, 6, 1, 3, 9, 2, 5 }, { 1, 5, 6, 9, 7, 2, 4, 3, 8 }, { 2, 3, 5, 1, 6, 7, 8, 4, 9 }, { 6, 7, 8, 2, 4, 9, 3, 5, 1 }, { 4, 1, 9, 8, 3, 5, 7, 6, 2 } }; int?[,] threeByTest = new int?[, ] { { null, 6, 3, null, 2, 1, null, 8, 4 }, { 5, 2, 1, 3, 8, 4, 6, 9, 7 }, { 7, 8, 4, 5, 9, 6, 2, 1, 3 }, { null, 9, 2, null, 5, 8, null, 7, 6 }, { 8, 4, 7, 6, 1, 3, 9, 2, 5 }, { 1, 5, 6, 9, 7, 2, 4, 3, 8 }, { null, 3, 5, null, 6, 7, null, 4, 9 }, { 6, 7, 8, 2, 4, 9, 3, 5, 1 }, { 4, 1, 9, 8, 3, 5, 7, 6, 2 } }; var cba = new SudokuSolver.SudokuSolver(threeByTest).Response(); Assert.AreEqual(solutionCorrect, threeByTest); }
public void Test1() { int?[,] sudokuEasy = new int?[, ] { { 9, 6, null, null, 2, 1, null, 8, null }, { null, 2, 1, null, null, 4, 6, null, null }, { null, null, 4, 5, 9, null, null, null, null }, { 3, 9, 2, null, 5, null, null, 7, null }, { 8, null, 7, null, null, null, 9, null, 5 }, { null, 5, null, null, 7, null, 4, 3, 8 }, { null, null, null, null, 6, 7, 8, null, null }, { null, null, 8, 2, null, null, 3, 5, null }, { null, 1, null, 8, 3, null, null, 6, 2 } }; var cba = new SudokuSolver.SudokuSolver(sudokuEasy); int?[,] solutionCorrect = new int?[, ] { { 9, 6, 3, 7, 2, 1, 5, 8, 4 }, { 5, 2, 1, 3, 8, 4, 6, 9, 7 }, { 7, 8, 4, 5, 9, 6, 2, 1, 3 }, { 3, 9, 2, 4, 5, 8, 1, 7, 6 }, { 8, 4, 7, 6, 1, 3, 9, 2, 5 }, { 1, 5, 6, 9, 7, 2, 4, 3, 8 }, { 2, 3, 5, 1, 6, 7, 8, 4, 9 }, { 6, 7, 8, 2, 4, 9, 3, 5, 1 }, { 4, 1, 9, 8, 3, 5, 7, 6, 2 } }; int?[,] solutionReturned = cba.Response(); Assert.AreEqual(solutionCorrect, solutionReturned); //int?[,] solution = new int?[,] { { 9, 6, , , 2, 1, , 8, }, // { , 2, 1, , , 4, 6, , }, // { , , 4, 5, 9, , , , }, // { 3, 9, 2, , 5, , , 7, }, // { 8, , 7, , , , 9, , 5 }, // { , 5, , , 7, , 4, 3, 8 }, // { , , , , 6, 7, 8, , }, // { , , 8, 2, , , 3, 5, }, // { , 1, , 8, 3, , , 6, 2 } }; }
private void button1_Click(object sender, EventArgs e) { int[,] nums = new int[9, 9]; for (int i = 0; i < 9; i++) for (int j = 0; j < 9; j++) nums[i, j] = int.Parse(controls[i, j].Text == string.Empty ? "0" : controls[i, j].Text); var startTime = DateTime.Now; var maze = new SudokuSolver.Maze(nums); var timeElapsed = DateTime.Now.Subtract(startTime); try { nums = new SudokuSolver.SudokuSolver(maze).Solve(); updateUI(nums); } catch (SudokuSolver.TooHardToSolveException ex) { updateUI(ex.PresentState); MessageBox.Show("too hard to solve." + Environment.NewLine + ex.CellsSolved + " cells solved."); } this.Text = formtext + " - " + timeElapsed.TotalMilliseconds.ToString() + " ms"; }
static void Main(string[] args) { int?[,] sudokuList = new int?[, ] { { 11, 12, 13, 14, 15, 16, 17, 18, 19 }, { 21, 22, 23, 24, 25, 26, 27, 28, 29 }, { 31, 32, 33, 34, 35, 36, 37, 38, 39 }, { 41, 42, 43, 44, 45, 46, 47, 48, 49 }, { 51, 52, 53, 54, 55, 56, 57, 58, 59 }, { 61, 62, 63, 64, 65, 66, 67, 68, 69 }, { 71, 72, 73, 74, 75, 76, 77, 78, 79 }, { 81, 82, 83, 84, 85, 86, 87, 88, 89 }, { 91, 92, 93, 94, 95, 96, 97, 98, 99 } }; int?[,] sudokuEasy1Liners = new int?[, ] { { 9, null, 3, 7, 2, 1, 5, 8, 4 }, { 5, 2, 1, 3, null, 4, 6, 9, 7 }, { 7, 8, 4, 5, 9, 6, 2, 1, null }, { 3, 9, 2, 4, 5, 8, 1, 7, 6 }, { 8, 4, 7, 6, 1, 3, 9, 2, 5 }, { 1, 5, 6, 9, 7, 2, 4, 3, 8 }, { 2, 3, 5, 1, 6, 7, 8, 4, 9 }, { 6, 7, 8, 2, 4, 9, 3, 5, 1 }, { 4, 1, 9, 8, 3, 5, 7, 6, 2 } }; int?[,] sudokuEasy1LinersMultipleColumns = new int?[, ] { { 9, null, 3, 7, 2, 1, 5, 8, 4 }, { 5, 2, 1, 3, null, 4, 6, 9, 7 }, { 7, 8, 4, 5, 9, 6, 2, 1, null }, { 3, null, 2, 4, 5, 8, 1, 7, 6 }, { 8, 4, 7, 6, null, 3, 9, 2, 5 }, { 1, 5, 6, 9, 7, 2, 4, 3, null }, { 2, null, 5, 1, 6, 7, 8, 4, 9 }, { 6, 7, 8, 2, null, 9, 3, 5, 1 }, { 4, 1, 9, 8, 3, 5, 7, 6, null } }; int?[,] threeByTest = new int?[, ] { { null, 6, 3, null, 2, 1, null, 8, 4 }, { 5, 2, 1, 3, 8, 4, 6, 9, 7 }, { 7, 8, 4, 5, 9, 6, 2, 1, 3 }, { null, 9, 2, null, 5, 8, null, 7, 6 }, { 8, 4, 7, 6, 1, 3, 9, 2, 5 }, { 1, 5, 6, 9, 7, 2, 4, 3, 8 }, { null, 3, 5, null, 6, 7, null, 4, 9 }, { 6, 7, 8, 2, 4, 9, 3, 5, 1 }, { 4, 1, 9, 8, 3, 5, 7, 6, 2 } }; int?[,] sudokuEasy = new int?[, ] { { 9, 6, null, null, 2, 1, null, 8, null }, { null, 2, 1, null, null, 4, 6, null, null }, { null, null, 4, 5, 9, null, null, null, null }, { 3, 9, 2, null, 5, null, null, 7, null }, { 8, null, 7, null, null, null, 9, null, 5 }, { null, 5, null, null, 7, null, 4, 3, 8 }, { null, null, null, null, 6, 7, 8, null, null }, { null, null, 8, 2, null, null, 3, 5, null }, { null, 1, null, 8, 3, null, null, 6, 2 } }; //var cba = new SudokuSolver.SudokuSolver(sudokuEasy1Liners).response(); //cba = new SudokuSolver.SudokuSolver(sudokuEasy1LinersMultipleColumns).response(); var cba = new SudokuSolver.SudokuSolver(threeByTest).Response(); cba = new SudokuSolver.SudokuSolver(sudokuEasy).Response(); // cba = new SudokuSolver.SudokuSolver(sudokuEasy1LinersMultipleColumns); // var cba = new SudokuSolver.SudokuSolver(sudokuEasy); // var cba = new SudokuSolver.SudokuSolver(sudokuList); int?[,] solutionCorrect = new int?[, ] { { 9, 6, 3, 7, 2, 1, 5, 8, 4 }, { 5, 2, 1, 3, 8, 4, 6, 9, 7 }, { 7, 8, 4, 5, 9, 6, 2, 1, 3 }, { 3, 9, 2, 4, 5, 8, 1, 7, 6 }, { 8, 4, 7, 6, 1, 3, 9, 2, 5 }, { 1, 5, 6, 9, 7, 2, 4, 3, 8 }, { 2, 3, 5, 1, 6, 7, 8, 4, 9 }, { 6, 7, 8, 2, 4, 9, 3, 5, 1 }, { 4, 1, 9, 8, 3, 5, 7, 6, 2 } }; //if (solutionResponse.Equals(solutionCorrect)) //// if (solutionResponse.Equals(solutionResponse)) // Console.WriteLine("yay"); //else // Console.WriteLine("nay"); }