Пример #1
0
        private static void SolveSmall()
        {
            SudokuBoard board = SudokuFactory.SizeAndBoxes(4, 4, 2, 2);

            board.AddRow("0003");
            board.AddRow("0004");
            board.AddRow("1000");
            board.AddRow("4000");
            CompleteSolve(board);
        }
Пример #2
0
        private static void SolveFail()
        {
            SudokuBoard board = SudokuFactory.SizeAndBoxes(4, 4, 2, 2);

            board.AddRow("0003");
            board.AddRow("0204"); // the 2 must be a 1 on this row to be solvable
            board.AddRow("1000");
            board.AddRow("4000");
            CompleteSolve(board);
        }
Пример #3
0
        private static void SolveHyper()
        {
            // http://en.wikipedia.org/wiki/File:A_nonomino_sudoku.svg
            string[] areas = new string[] {
                "111233333",
                "111222333",
                "144442223",
                "114555522",
                "444456666",
                "775555688",
                "977766668",
                "999777888",
                "999997888"
            };
            SudokuBoard board = SudokuFactory.ClassicWithSpecialBoxes(areas);

            board.AddRow("3.......4");
            board.AddRow("..2.6.1..");
            board.AddRow(".1.9.8.2.");
            board.AddRow("..5...6..");
            board.AddRow(".2.....1.");
            board.AddRow("..9...8..");
            board.AddRow(".8.3.4.6.");
            board.AddRow("..4.1.9..");
            board.AddRow("5.......7");
            CompleteSolve(board);
        }
Пример #4
0
        private static void SolveExtraZones()
        {
            // http://en.wikipedia.org/wiki/File:Oceans_Hypersudoku18_Puzzle.svg
            SudokuBoard board = SudokuFactory.ClassicWith3x3BoxesAndHyperRegions();

            board.AddRow(".......1.");
            board.AddRow("..2....34");
            board.AddRow("....51...");
            board.AddRow(".....65..");
            board.AddRow(".7.3...8.");
            board.AddRow("..3......");
            board.AddRow("....8....");
            board.AddRow("58....9..");
            board.AddRow("69.......");
            CompleteSolve(board);
        }
Пример #5
0
        private static void SolveSamurai()
        {
            // http://www.freesamuraisudoku.com/1001HardSamuraiSudokus.aspx?puzzle=42
            SudokuBoard board = SudokuFactory.Samurai();

            board.AddRow("6..8..9..///.....38..");
            board.AddRow("...79....///89..2.3..");
            board.AddRow("..2..64.5///...1...7.");
            board.AddRow(".57.1.2..///..5....3.");
            board.AddRow(".....731.///.1.3..2..");
            board.AddRow("...3...9.///.7..429.5");
            board.AddRow("4..5..1...5....5.....");
            board.AddRow("8.1...7...8.2..768...");
            board.AddRow(".......8.23...4...6..");
            board.AddRow("//////.12.4..9.//////");
            board.AddRow("//////......82.//////");
            board.AddRow("//////.6.....1.//////");
            board.AddRow(".4...1....76...36..9.");
            board.AddRow("2.....9..8..5.34...81");
            board.AddRow(".5.873......9.8..23..");
            board.AddRow("...2....9///.25.4....");
            board.AddRow("..3.64...///31.8.....");
            board.AddRow("..75.8.12///...6.14..");
            board.AddRow(".......2.///.31...9..");
            board.AddRow("..17.....///..7......");
            board.AddRow(".7.6...84///8...7..5.");
            CompleteSolve(board);
        }