public void HaveNoHiddenCellsIfDifficultyIsTest() { // Arrange populatedTestMatrix.SetDifficulty(new Difficulty() { Name = "Test", DifficultyLevel = DifficultyLevel.TEST }); // Act sut = populatedTestMatrix; var result = false; foreach (var cell in sut.SudokuCells) { if (cell.Hidden == true) { result = true; } } // Assert Assert.That(result, Is.False);; }
public async Task SolveSudokuMatrices() { // Arrange var intList = new List <int>() { 4, 1, 9, 2, 6, 5, 3, 8, 7, 2, 8, 3, 1, 7, 9, 4, 5, 6, 5, 6, 7, 4, 3, 8, 9, 1, 2, 1, 2, 5, 3, 9, 4, 7, 6, 8, 7, 3, 8, 5, 1, 6, 2, 4, 9, 6, 9, 4, 7, 8, 2, 5, 3, 1, 3, 5, 6, 8, 2, 7, 1, 9, 4, 8, 7, 1, 9, 4, 3, 6, 2, 5, 9, 4, 2, 6, 5, 1, 8, 7, 3 }; sut = new SudokuMatrix(intList); sut.SetDifficulty(new Difficulty() { Name = "Easy", DifficultyLevel = DifficultyLevel.EASY } ); // Act await sut.Solve(); // Assert Assert.That(sut.IsValid(), Is.EqualTo(true)); }
public void DetermineIfMatrixIsSolved() { // Arrange var intList = new List <int>() { 4, 1, 9, 2, 6, 5, 3, 8, 7, 2, 8, 3, 1, 7, 9, 4, 5, 6, 5, 6, 7, 4, 3, 8, 9, 1, 2, 1, 2, 5, 3, 9, 4, 7, 6, 8, 7, 3, 8, 5, 1, 6, 2, 4, 9, 6, 9, 4, 7, 8, 2, 5, 3, 1, 3, 5, 6, 8, 2, 7, 1, 9, 4, 8, 7, 1, 9, 4, 3, 6, 2, 5, 9, 4, 2, 6, 5, 1, 8, 7, 3 }; // Act sut = new SudokuMatrix(intList); sut.SetDifficulty(new Difficulty() { Name = "Test", DifficultyLevel = DifficultyLevel.TEST }); // Assert Assert.That(sut.IsSolved(), Is.True); }
public void HaveNoObscuredCellsOnTestDifficulty() { // Arrange populatedTestMatrix.SetDifficulty(new Difficulty() { Name = "Test", DifficultyLevel = DifficultyLevel.TEST }); // Act sut = populatedTestMatrix; var result = 0; foreach (var cell in sut.SudokuCells) { if (cell.Hidden == false) { result++; } } // Assert Assert.That(result, Is.EqualTo(81)); }
public void ImplementIDBEntry() { // Arrange and Act sut = new SudokuMatrix(stringList); // Assert Assert.That(sut, Is.InstanceOf <IEntityBase>()); }
public void ReturnTrueIfValid() { // Arrange and Act sut = populatedTestMatrix; // Assert Assert.That(sut.IsValid(), Is.True); }
public void HaveAnID() { // Arrange and Act sut = new SudokuMatrix(stringList); // Assert Assert.That(sut.Id, Is.TypeOf <int>()); Assert.That(sut.Id, Is.EqualTo(0)); }
public async static Task AttachSudokuCells( this ISudokuMatrix matrix, DatabaseContext context) { var cells = await context.SudokuCells .Where(cell => cell.SudokuMatrixId == matrix.Id) .ToListAsync(); matrix.SudokuCells = cells; }
public void AcceptStringInConstructor() { // Arrange and Act sut = new SudokuMatrix(stringList); // Assert Assert.That(stringList, Is.TypeOf <string>()); Assert.That(sut, Is.Not.Null); Assert.That(sut.SudokuCells.Count, Is.GreaterThan(0)); }
public void AcceptIntListInConstructor() { // Arrange and Act intList = populatedTestMatrix.ToIntList(); sut = new SudokuMatrix(intList); // Assert Assert.That(intList, Is.TypeOf <List <int> >()); Assert.That(sut, Is.Not.Null); Assert.That(sut.SudokuCells.Count, Is.GreaterThan(0)); }
public void GenerateValidSolutions() { // Arrange sut = new SudokuMatrix(); // Act sut.GenerateSolution(); // Assert Assert.That(sut.IsValid(), Is.True); }
public void OutputValuesAsStringWithToString() { // Arrange sut = populatedTestMatrix; // Act var result = sut.ToString(); // Assert Assert.That(result, Is.TypeOf <string>()); Assert.That(result.Length, Is.EqualTo(81)); }
public void OutputValuesAsIntListWithToDisplayedValuesList() { // Arrange sut = populatedTestMatrix; // Act var result = sut.ToDisplayedIntList(); // Assert Assert.That(result, Is.TypeOf <List <int> >()); Assert.That(result.Count, Is.EqualTo(81)); }
public void CreateZeroedListWithBlankConstructor() { // Arrange and Act sut = new SudokuMatrix(); // Assert Assert.That(sut.SudokuCells[0].Value, Is.EqualTo(0)); Assert.That(sut.SudokuCells[9].Value, Is.EqualTo(0)); Assert.That(sut.SudokuCells[18].Value, Is.EqualTo(0)); Assert.That(sut.SudokuCells[27].Value, Is.EqualTo(0)); Assert.That(sut.SudokuCells[36].Value, Is.EqualTo(0)); Assert.That(sut.SudokuCells[45].Value, Is.EqualTo(0)); Assert.That(sut.SudokuCells[54].Value, Is.EqualTo(0)); Assert.That(sut.SudokuCells[63].Value, Is.EqualTo(0)); Assert.That(sut.SudokuCells[72].Value, Is.EqualTo(0)); }
public void AcceptDifficultyAndIntListConstructor() { // Arrange var difficulty = new Difficulty { DifficultyLevel = DifficultyLevel.TEST }; intList = populatedTestMatrix.ToIntList(); // Act sut = new SudokuMatrix(difficulty, intList); // Assert Assert.That(difficulty, Is.TypeOf <Difficulty>()); Assert.That(intList, Is.TypeOf <List <int> >()); Assert.That(sut, Is.TypeOf <SudokuMatrix>()); Assert.That(sut.SudokuCells.Count, Is.GreaterThan(0)); }
internal static List <int> IsolateIntersectingValues(ISudokuMatrix sudokuMatrix, List <int> paramList) { var MissingFirstColumn = MissingSudokuValues(sudokuMatrix.FirstColumnValues); var MissingSecondColumn = MissingSudokuValues(sudokuMatrix.SecondColumnValues); var MissingThirdColumn = MissingSudokuValues(sudokuMatrix.ThirdColumnValues); var MissingFourthColumn = MissingSudokuValues(sudokuMatrix.FourthColumnValues); var MissingFifthColumn = MissingSudokuValues(sudokuMatrix.FifthColumnValues); var MissingSixthColumn = MissingSudokuValues(sudokuMatrix.SixthColumnValues); var MissingSeventhColumn = MissingSudokuValues(sudokuMatrix.SeventhColumnValues); var MissingEighthColumn = MissingSudokuValues(sudokuMatrix.EighthColumnValues); var MissingNinthColumn = MissingSudokuValues(sudokuMatrix.NinthColumnValues); var MissingFirstRegion = MissingSudokuValues(sudokuMatrix.FirstRegionValues); var MissingSecondRegion = MissingSudokuValues(sudokuMatrix.SecondRegionValues); var MissingThirdRegion = MissingSudokuValues(sudokuMatrix.ThirdRegionValues); var MissingFourthRegion = MissingSudokuValues(sudokuMatrix.FourthRegionValues); var MissingFifthRegion = MissingSudokuValues(sudokuMatrix.FifthRegionValues); var MissingSixthRegion = MissingSudokuValues(sudokuMatrix.SixthRegionValues); var MissingSeventhRegion = MissingSudokuValues(sudokuMatrix.SeventhRegionValues); var MissingEighthRegion = MissingSudokuValues(sudokuMatrix.EighthRegionValues); var MissingNinthRegion = MissingSudokuValues(sudokuMatrix.NinthRegionValues); var MissingFirstRow = MissingSudokuValues(sudokuMatrix.FirstRowValues); var MissingSecondRow = MissingSudokuValues(sudokuMatrix.SecondRowValues); var MissingThirdRow = MissingSudokuValues(sudokuMatrix.ThirdRowValues); var MissingFourthRow = MissingSudokuValues(sudokuMatrix.FourthRowValues); var MissingFifthRow = MissingSudokuValues(sudokuMatrix.FifthRowValues); var MissingSixthRow = MissingSudokuValues(sudokuMatrix.SixthRowValues); var MissingSeventhRow = MissingSudokuValues(sudokuMatrix.SeventhRowValues); var MissingEighthRow = MissingSudokuValues(sudokuMatrix.EighthRowValues); var MissingNinthRow = MissingSudokuValues(sudokuMatrix.NinthRowValues); var tmp = new SudokuMatrix(paramList); var count = 0; do { for (var i = 0; i < tmp.SudokuCells.Count; i++) { if (i == 0) { ReviewSudokuCharacterForPossibleUpdate(ref MissingFirstColumn, ref MissingFirstRegion, ref MissingFirstRow, tmp.SudokuCells[i]); } else if (i == 1) { ReviewSudokuCharacterForPossibleUpdate(ref MissingSecondColumn, ref MissingFirstRegion, ref MissingFirstRow, tmp.SudokuCells[i]); } else if (i == 2) { ReviewSudokuCharacterForPossibleUpdate(ref MissingThirdColumn, ref MissingFirstRegion, ref MissingFirstRow, tmp.SudokuCells[i]); } else if (i == 3) { ReviewSudokuCharacterForPossibleUpdate(ref MissingFourthColumn, ref MissingSecondRegion, ref MissingFirstRow, tmp.SudokuCells[i]); } else if (i == 4) { ReviewSudokuCharacterForPossibleUpdate(ref MissingFifthColumn, ref MissingSecondRegion, ref MissingFirstRow, tmp.SudokuCells[i]); } else if (i == 5) { ReviewSudokuCharacterForPossibleUpdate(ref MissingSixthColumn, ref MissingSecondRegion, ref MissingFirstRow, tmp.SudokuCells[i]); } else if (i == 6) { ReviewSudokuCharacterForPossibleUpdate(ref MissingSeventhColumn, ref MissingThirdRegion, ref MissingFirstRow, tmp.SudokuCells[i]); } else if (i == 7) { ReviewSudokuCharacterForPossibleUpdate(ref MissingEighthColumn, ref MissingThirdRegion, ref MissingFirstRow, tmp.SudokuCells[i]); } else if (i == 8) { ReviewSudokuCharacterForPossibleUpdate(ref MissingNinthColumn, ref MissingThirdRegion, ref MissingFirstRow, tmp.SudokuCells[i]); } else if (i == 9) { ReviewSudokuCharacterForPossibleUpdate(ref MissingFirstColumn, ref MissingFirstRegion, ref MissingSecondRow, tmp.SudokuCells[i]); } else if (i == 10) { ReviewSudokuCharacterForPossibleUpdate(ref MissingSecondColumn, ref MissingFirstRegion, ref MissingSecondRow, tmp.SudokuCells[i]); } else if (i == 11) { ReviewSudokuCharacterForPossibleUpdate(ref MissingThirdColumn, ref MissingFirstRegion, ref MissingSecondRow, tmp.SudokuCells[i]); } else if (i == 12) { ReviewSudokuCharacterForPossibleUpdate(ref MissingFourthColumn, ref MissingSecondRegion, ref MissingSecondRow, tmp.SudokuCells[i]); } else if (i == 13) { ReviewSudokuCharacterForPossibleUpdate(ref MissingFifthColumn, ref MissingSecondRegion, ref MissingSecondRow, tmp.SudokuCells[i]); } else if (i == 14) { ReviewSudokuCharacterForPossibleUpdate(ref MissingSixthColumn, ref MissingSecondRegion, ref MissingSecondRow, tmp.SudokuCells[i]); } else if (i == 15) { ReviewSudokuCharacterForPossibleUpdate(ref MissingSeventhColumn, ref MissingThirdRegion, ref MissingSecondRow, tmp.SudokuCells[i]); } else if (i == 16) { ReviewSudokuCharacterForPossibleUpdate(ref MissingEighthColumn, ref MissingThirdRegion, ref MissingSecondRow, tmp.SudokuCells[i]); } else if (i == 17) { ReviewSudokuCharacterForPossibleUpdate(ref MissingNinthColumn, ref MissingThirdRegion, ref MissingSecondRow, tmp.SudokuCells[i]); } else if (i == 18) { ReviewSudokuCharacterForPossibleUpdate(ref MissingFirstColumn, ref MissingFirstRegion, ref MissingThirdRow, tmp.SudokuCells[i]); } else if (i == 19) { ReviewSudokuCharacterForPossibleUpdate(ref MissingSecondColumn, ref MissingFirstRegion, ref MissingThirdRow, tmp.SudokuCells[i]); } else if (i == 20) { ReviewSudokuCharacterForPossibleUpdate(ref MissingThirdColumn, ref MissingFirstRegion, ref MissingThirdRow, tmp.SudokuCells[i]); } else if (i == 21) { ReviewSudokuCharacterForPossibleUpdate(ref MissingFourthColumn, ref MissingSecondRegion, ref MissingThirdRow, tmp.SudokuCells[i]); } else if (i == 22) { ReviewSudokuCharacterForPossibleUpdate(ref MissingFifthColumn, ref MissingSecondRegion, ref MissingThirdRow, tmp.SudokuCells[i]); } else if (i == 23) { ReviewSudokuCharacterForPossibleUpdate(ref MissingSixthColumn, ref MissingSecondRegion, ref MissingThirdRow, tmp.SudokuCells[i]); } else if (i == 24) { ReviewSudokuCharacterForPossibleUpdate(ref MissingSeventhColumn, ref MissingThirdRegion, ref MissingThirdRow, tmp.SudokuCells[i]); } else if (i == 25) { ReviewSudokuCharacterForPossibleUpdate(ref MissingEighthColumn, ref MissingThirdRegion, ref MissingThirdRow, tmp.SudokuCells[i]); } else if (i == 26) { ReviewSudokuCharacterForPossibleUpdate(ref MissingNinthColumn, ref MissingThirdRegion, ref MissingThirdRow, tmp.SudokuCells[i]); } else if (i == 27) { ReviewSudokuCharacterForPossibleUpdate(ref MissingFirstColumn, ref MissingFourthRegion, ref MissingFourthRow, tmp.SudokuCells[i]); } else if (i == 28) { ReviewSudokuCharacterForPossibleUpdate(ref MissingSecondColumn, ref MissingFourthRegion, ref MissingFourthRow, tmp.SudokuCells[i]); } else if (i == 29) { ReviewSudokuCharacterForPossibleUpdate(ref MissingThirdColumn, ref MissingFourthRegion, ref MissingFourthRow, tmp.SudokuCells[i]); } else if (i == 30) { ReviewSudokuCharacterForPossibleUpdate(ref MissingFourthColumn, ref MissingFifthRegion, ref MissingFourthRow, tmp.SudokuCells[i]); } else if (i == 31) { ReviewSudokuCharacterForPossibleUpdate(ref MissingFifthColumn, ref MissingFifthRegion, ref MissingFourthRow, tmp.SudokuCells[i]); } else if (i == 32) { ReviewSudokuCharacterForPossibleUpdate(ref MissingSixthColumn, ref MissingFifthRegion, ref MissingFourthRow, tmp.SudokuCells[i]); } else if (i == 33) { ReviewSudokuCharacterForPossibleUpdate(ref MissingSeventhColumn, ref MissingSixthRegion, ref MissingFourthRow, tmp.SudokuCells[i]); } else if (i == 34) { ReviewSudokuCharacterForPossibleUpdate(ref MissingEighthColumn, ref MissingSixthRegion, ref MissingFourthRow, tmp.SudokuCells[i]); } else if (i == 35) { ReviewSudokuCharacterForPossibleUpdate(ref MissingNinthColumn, ref MissingSixthRegion, ref MissingFourthRow, tmp.SudokuCells[i]); } else if (i == 36) { ReviewSudokuCharacterForPossibleUpdate(ref MissingFirstColumn, ref MissingFourthRegion, ref MissingFifthRow, tmp.SudokuCells[i]); } else if (i == 37) { ReviewSudokuCharacterForPossibleUpdate(ref MissingSecondColumn, ref MissingFourthRegion, ref MissingFifthRow, tmp.SudokuCells[i]); } else if (i == 38) { ReviewSudokuCharacterForPossibleUpdate(ref MissingThirdColumn, ref MissingFourthRegion, ref MissingFifthRow, tmp.SudokuCells[i]); } else if (i == 39) { ReviewSudokuCharacterForPossibleUpdate(ref MissingFourthColumn, ref MissingFifthRegion, ref MissingFifthRow, tmp.SudokuCells[i]); } else if (i == 40) { ReviewSudokuCharacterForPossibleUpdate(ref MissingFifthColumn, ref MissingFifthRegion, ref MissingFifthRow, tmp.SudokuCells[i]); } else if (i == 41) { ReviewSudokuCharacterForPossibleUpdate(ref MissingSixthColumn, ref MissingFifthRegion, ref MissingFifthRow, tmp.SudokuCells[i]); } else if (i == 42) { ReviewSudokuCharacterForPossibleUpdate(ref MissingSeventhColumn, ref MissingSixthRegion, ref MissingFifthRow, tmp.SudokuCells[i]); } else if (i == 43) { ReviewSudokuCharacterForPossibleUpdate(ref MissingEighthColumn, ref MissingSixthRegion, ref MissingFifthRow, tmp.SudokuCells[i]); } else if (i == 44) { ReviewSudokuCharacterForPossibleUpdate(ref MissingNinthColumn, ref MissingSixthRegion, ref MissingFifthRow, tmp.SudokuCells[i]); } else if (i == 45) { ReviewSudokuCharacterForPossibleUpdate(ref MissingFirstColumn, ref MissingFourthRegion, ref MissingSixthRow, tmp.SudokuCells[i]); } else if (i == 46) { ReviewSudokuCharacterForPossibleUpdate(ref MissingSecondColumn, ref MissingFourthRegion, ref MissingSixthRow, tmp.SudokuCells[i]); } else if (i == 47) { ReviewSudokuCharacterForPossibleUpdate(ref MissingThirdColumn, ref MissingFourthRegion, ref MissingSixthRow, tmp.SudokuCells[i]); } else if (i == 48) { ReviewSudokuCharacterForPossibleUpdate(ref MissingFourthColumn, ref MissingFifthRegion, ref MissingSixthRow, tmp.SudokuCells[i]); } else if (i == 49) { ReviewSudokuCharacterForPossibleUpdate(ref MissingFifthColumn, ref MissingFifthRegion, ref MissingSixthRow, tmp.SudokuCells[i]); } else if (i == 50) { ReviewSudokuCharacterForPossibleUpdate(ref MissingSixthColumn, ref MissingFifthRegion, ref MissingSixthRow, tmp.SudokuCells[i]); } else if (i == 51) { ReviewSudokuCharacterForPossibleUpdate(ref MissingSeventhColumn, ref MissingSixthRegion, ref MissingSixthRow, tmp.SudokuCells[i]); } else if (i == 52) { ReviewSudokuCharacterForPossibleUpdate(ref MissingEighthColumn, ref MissingSixthRegion, ref MissingSixthRow, tmp.SudokuCells[i]); } else if (i == 53) { ReviewSudokuCharacterForPossibleUpdate(ref MissingNinthColumn, ref MissingSixthRegion, ref MissingSixthRow, tmp.SudokuCells[i]); } else if (i == 54) { ReviewSudokuCharacterForPossibleUpdate(ref MissingFirstColumn, ref MissingSeventhRegion, ref MissingSeventhRow, tmp.SudokuCells[i]); } else if (i == 55) { ReviewSudokuCharacterForPossibleUpdate(ref MissingSecondColumn, ref MissingSeventhRegion, ref MissingSeventhRow, tmp.SudokuCells[i]); } else if (i == 56) { ReviewSudokuCharacterForPossibleUpdate(ref MissingThirdColumn, ref MissingSeventhRegion, ref MissingSeventhRow, tmp.SudokuCells[i]); } else if (i == 57) { ReviewSudokuCharacterForPossibleUpdate(ref MissingFourthColumn, ref MissingEighthRegion, ref MissingSeventhRow, tmp.SudokuCells[i]); } else if (i == 58) { ReviewSudokuCharacterForPossibleUpdate(ref MissingFifthColumn, ref MissingEighthRegion, ref MissingSeventhRow, tmp.SudokuCells[i]); } else if (i == 59) { ReviewSudokuCharacterForPossibleUpdate(ref MissingSixthColumn, ref MissingEighthRegion, ref MissingSeventhRow, tmp.SudokuCells[i]); } else if (i == 60) { ReviewSudokuCharacterForPossibleUpdate(ref MissingSeventhColumn, ref MissingNinthRegion, ref MissingSeventhRow, tmp.SudokuCells[i]); } else if (i == 61) { ReviewSudokuCharacterForPossibleUpdate(ref MissingEighthColumn, ref MissingNinthRegion, ref MissingSeventhRow, tmp.SudokuCells[i]); } else if (i == 62) { ReviewSudokuCharacterForPossibleUpdate(ref MissingNinthColumn, ref MissingNinthRegion, ref MissingSeventhRow, tmp.SudokuCells[i]); } else if (i == 63) { ReviewSudokuCharacterForPossibleUpdate(ref MissingFirstColumn, ref MissingSeventhRegion, ref MissingEighthRow, tmp.SudokuCells[i]); } else if (i == 64) { ReviewSudokuCharacterForPossibleUpdate(ref MissingSecondColumn, ref MissingSeventhRegion, ref MissingEighthRow, tmp.SudokuCells[i]); } else if (i == 65) { ReviewSudokuCharacterForPossibleUpdate(ref MissingThirdColumn, ref MissingSeventhRegion, ref MissingEighthRow, tmp.SudokuCells[i]); } else if (i == 66) { ReviewSudokuCharacterForPossibleUpdate(ref MissingFourthColumn, ref MissingEighthRegion, ref MissingEighthRow, tmp.SudokuCells[i]); } else if (i == 67) { ReviewSudokuCharacterForPossibleUpdate(ref MissingFifthColumn, ref MissingEighthRegion, ref MissingEighthRow, tmp.SudokuCells[i]); } else if (i == 68) { ReviewSudokuCharacterForPossibleUpdate(ref MissingSixthColumn, ref MissingEighthRegion, ref MissingEighthRow, tmp.SudokuCells[i]); } else if (i == 69) { ReviewSudokuCharacterForPossibleUpdate(ref MissingSeventhColumn, ref MissingNinthRegion, ref MissingEighthRow, tmp.SudokuCells[i]); } else if (i == 70) { ReviewSudokuCharacterForPossibleUpdate(ref MissingEighthColumn, ref MissingNinthRegion, ref MissingEighthRow, tmp.SudokuCells[i]); } else if (i == 71) { ReviewSudokuCharacterForPossibleUpdate(ref MissingNinthColumn, ref MissingNinthRegion, ref MissingEighthRow, tmp.SudokuCells[i]); } else if (i == 72) { ReviewSudokuCharacterForPossibleUpdate(ref MissingFirstColumn, ref MissingSeventhRegion, ref MissingNinthRow, tmp.SudokuCells[i]); } else if (i == 73) { ReviewSudokuCharacterForPossibleUpdate(ref MissingSecondColumn, ref MissingSeventhRegion, ref MissingNinthRow, tmp.SudokuCells[i]); } else if (i == 74) { ReviewSudokuCharacterForPossibleUpdate(ref MissingThirdColumn, ref MissingSeventhRegion, ref MissingNinthRow, tmp.SudokuCells[i]); } else if (i == 75) { ReviewSudokuCharacterForPossibleUpdate(ref MissingFourthColumn, ref MissingEighthRegion, ref MissingNinthRow, tmp.SudokuCells[i]); } else if (i == 76) { ReviewSudokuCharacterForPossibleUpdate(ref MissingFifthColumn, ref MissingEighthRegion, ref MissingNinthRow, tmp.SudokuCells[i]); } else if (i == 77) { ReviewSudokuCharacterForPossibleUpdate(ref MissingSixthColumn, ref MissingEighthRegion, ref MissingNinthRow, tmp.SudokuCells[i]); } else if (i == 78) { ReviewSudokuCharacterForPossibleUpdate(ref MissingSeventhColumn, ref MissingNinthRegion, ref MissingNinthRow, tmp.SudokuCells[i]); } else if (i == 79) { ReviewSudokuCharacterForPossibleUpdate(ref MissingEighthColumn, ref MissingNinthRegion, ref MissingNinthRow, tmp.SudokuCells[i]); } else { ReviewSudokuCharacterForPossibleUpdate(ref MissingNinthColumn, ref MissingNinthRegion, ref MissingNinthRow, tmp.SudokuCells[i]); } } count++; } while (count < 10); var result = new SudokuMatrix(tmp.ToIntList()); return(result.ToIntList()); }