Пример #1
0
        public static void Main()
        {
            Random rnd = new Random();

            var gen = new SudokuGenerator(rnd);


            byte[][] fullBaord = gen.Solver.CreateRandom();

            SudokuGenerator.PrintBoard(fullBaord);

            byte[][] board   = gen.Solver.CreateEmpty();
            int      current = 0;
            int      i       = 0;
            int      pos     = 0;

            Progress <int[]> progress = new Progress <int[]>((b) =>
            {
                current = b[0];
                i       = b[1];
                pos     = b[2];
            });


            bool res = false;
            Task T   = new Task(() => res = gen.Gen4(SudokuGenerator.Difficulty.NoNoNo, fullBaord, board, progress).Result);

            T.Start();
            while (!res)
            {
                //Thread.Sleep(100);
                //System.Console.Clear();
                //SudokuGenerator.PrintBoard(board);
                //System.Console.WriteLine();
                //System.Console.WriteLine($"Current: {current}");
                //System.Console.WriteLine($"I: {i}");
                //System.Console.WriteLine($"Position: {pos}");
            }

            System.Console.WriteLine($"Valid: {res}");
            SudokuGenerator.PrintBoard(board);
            int sulu = gen.Solver.BackTrackSenc(board, 0);

            System.Console.WriteLine($"Solutions: {sulu}");

            System.Console.ReadLine();
        }