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(); }