static void Main(string[] args)
        {
            Console.WriteLine("\n\n\n               Résolution de Sudoku\n");

            Console.WriteLine("                1. Benchmark Easy");
            Console.WriteLine("                2. Benchmark Hardest");
            Console.WriteLine("                3. Benchmark Top 95");
            Console.WriteLine("                4. Benchmark initiale");

            Console.WriteLine("                5. Quitter");



            Console.WriteLine("\n         Que voulez vous faire ?");
            int choix;

            try

            {
                choix = int.Parse(Console.ReadLine());
            }

            catch (Exception e)

            {
                choix = -1;

                Console.WriteLine("\n\n                Saisie invalide\n\n");

                Console.WriteLine(e.ToString());
            }



            switch (choix)
            {
            case 1:
                Console.WriteLine("                1. Benchmark Easy");
                break;

            case 2:
                Console.WriteLine("                2. Benchmark Hardest");
                break;

            case 3:
                Console.WriteLine("                3. Benchmark Top 95");
                break;

            case 4:
                Console.WriteLine("                4. Benchmark initiale");
                Sudoku_init();
                break;

            case 5:
                Console.WriteLine("Vous Quittez le programme.");
                Console.ReadLine();
                break;
            }



            void Sudoku_init()
            {
                /**
                 * List<Sudoku>.ParseFile parsefile = new Sudoku.ParseFile;
                 * ParseFile(Sudoku_Easy50.txt);
                 * showScore(benchmark(sudoku.getFile("Sudoku_Easy50.txt")), 50, "Easy");
                 **/


                int[] initial_grid = new int[] { 0, 6, 0, 0, 5, 0, 0, 2, 0,

                                                 0, 0, 0, 3, 0, 0, 0, 9, 0,

                                                 7, 0, 0, 6, 0, 0, 0, 1, 0,

                                                 0, 0, 6, 0, 3, 0, 4, 0, 0,

                                                 0, 0, 4, 0, 7, 0, 1, 0, 0,

                                                 0, 0, 5, 0, 9, 0, 8, 0, 0,

                                                 0, 4, 0, 0, 0, 1, 0, 0, 6,

                                                 0, 3, 0, 0, 0, 8, 0, 0, 0,

                                                 0, 2, 0, 0, 4, 0, 0, 5, 0 };

                //declaration du chronometre
                Stopwatch stopwatch = new Stopwatch();

                NoyauTP.Sudoku s   = new NoyauTP.Sudoku(initial_grid);
                NoyauTP.Sudoku s_1 = new NoyauTP.Sudoku();
                NoyauTP.Sudoku s_2 = new NoyauTP.Sudoku();
                NoyauTP.Sudoku s_3 = new NoyauTP.Sudoku();
                NoyauTP.Sudoku s_4 = new NoyauTP.Sudoku();
                NoyauTP.Sudoku s_5 = new NoyauTP.Sudoku();
                NoyauTP.Sudoku s_6 = new NoyauTP.Sudoku();
                NoyauTP.Sudoku s_7 = new NoyauTP.Sudoku();



                ///var fitness = new SudokuFitness(s);

                Console.WriteLine("Sudoku initial :");
                Console.WriteLine(s.ToString());

                Console.WriteLine("\n");
                Console.WriteLine("******************************************************");
                Console.WriteLine("\n");

                Console.WriteLine("Genetic Solver");

                ///GeneticSolver gs = new GeneticSolver();

                //chrono start
                stopwatch.Start();

                ///s_1 = gs.Solve(s);

                //chrono stop
                stopwatch.Stop();

                Console.WriteLine(s_1.ToString());
                //fonction pour evaluer si un sudoku est bon : objectif 0
                Console.WriteLine("Fitness : ");
                ///Console.WriteLine(fitness.Evaluate(s_1));

                //instruction durée d'exe
                Console.WriteLine("Durée d'exécution: {0} secondes", stopwatch.Elapsed.TotalSeconds);
                stopwatch.Reset();

                Console.WriteLine("\n");
                Console.WriteLine("******************************************************");
                Console.WriteLine("\n");

                Console.WriteLine("ORToolsSolver");

                ///OrToolsSolver ots = new OrToolsSolver();

                //chrono start
                stopwatch.Start();

                ///s_2 = ots.Solve(s);

                //chrono stop
                stopwatch.Stop();

                Console.WriteLine(s_2.ToString());
                //fonction pour evaluer si un sudoku est bon : objectif 0
                Console.WriteLine("Fitness : ");
                ///Console.WriteLine(fitness.Evaluate(s_2));

                //instruction durée d'exe
                Console.WriteLine("Durée d'exécution: {0} secondes", stopwatch.Elapsed.TotalSeconds);
                stopwatch.Reset();

                Console.WriteLine("\n");
                Console.WriteLine("******************************************************");
                Console.WriteLine("\n");

                //instruction next algo
                Console.WriteLine("Résolution par CSP ");

                //CSP csp = new CSP();

                //chrono start
                stopwatch.Start();

                //s_3 = csp.Solve(s);

                //chrono stop
                stopwatch.Stop();
                Console.WriteLine(s_3.ToString());

                //fonction pour evaluer si un sudoku est bon : objectif 0
                Console.WriteLine("Fitness : ");
                ///Console.WriteLine(fitness.Evaluate(s_3));

                //instruction durée d'exe
                Console.WriteLine("Durée d'exécution: {0} secondes", stopwatch.Elapsed.TotalSeconds);
                stopwatch.Reset();


                Console.WriteLine("\n");
                Console.WriteLine("******************************************************");
                Console.WriteLine("\n");

                //instruction next algo
                Console.WriteLine("Résolution par SMT  ");

                //SMT smt = new SMT();

                //chrono start
                stopwatch.Start();

                //s_4 = smt.Solve(s);

                //chrono stop
                stopwatch.Stop();
                Console.WriteLine(s_4.ToString());

                //fonction pour evaluer si un sudoku est bon : objectif 0
                Console.WriteLine("Fitness : ");
                ///Console.WriteLine(fitness.Evaluate(s_4));

                //instruction durée d'exe
                Console.WriteLine("Durée d'exécution: {0} secondes", stopwatch.Elapsed.TotalSeconds);
                stopwatch.Reset();

                Console.WriteLine("\n");
                Console.WriteLine("******************************************************");
                Console.WriteLine("\n");

                //instruction next algo
                Console.WriteLine("Résolution par Dancing_Links  ");

                //Dancing_Links dancing = new Dancing_Links();

                //chrono start
                stopwatch.Start();

                //s_5 = dancing.Solve(s);

                //chrono stop
                stopwatch.Stop();
                Console.WriteLine(s_5.ToString());

                //fonction pour evaluer si un sudoku est bon : objectif 0
                Console.WriteLine("Fitness : ");
                ///Console.WriteLine(fitness.Evaluate(s_5));

                //instruction durée d'exe
                Console.WriteLine("Durée d'exécution: {0} secondes", stopwatch.Elapsed.TotalSeconds);
                stopwatch.Reset();


                Console.WriteLine("\n");
                Console.WriteLine("******************************************************");
                Console.WriteLine("\n");

                //instruction next algo
                Console.WriteLine("Résolution à la Norvig ");

                //SoverNorvig.SoverNorvig nor = new SoverNorvig.SoverNorvig();
                //nor.Solve(s);



                //chrono start
                stopwatch.Start();

                //s_6 = nor.Solve(s);

                //chrono stop
                stopwatch.Stop();
                Console.WriteLine(s_6.ToString());

                //fonction pour evaluer si un sudoku est bon : objectif 0
                Console.WriteLine("Fitness : ");
                ///Console.WriteLine(fitness.Evaluate(s_6));

                //instruction durée d'exe
                Console.WriteLine("Durée d'exécution: {0} secondes", stopwatch.Elapsed.TotalSeconds);
                stopwatch.Reset();

                Console.WriteLine("\n");
                Console.WriteLine("******************************************************");
                Console.WriteLine("\n");

                //instruction next algo
                Console.WriteLine(" Résolution par réseau de neurones convolués ");

                //Neurones neur = new Neurones();

                //chrono start
                stopwatch.Start();

                //s_7 = neur.Solve(s);

                //chrono stop
                stopwatch.Stop();
                Console.WriteLine(s_7.ToString());

                //fonction pour evaluer si un sudoku est bon : objectif 0
                Console.WriteLine("Fitness : ");
                ///Console.WriteLine(fitness.Evaluate(s_7));

                //instruction durée d'exe
                Console.WriteLine("Durée d'exécution: {0} secondes", stopwatch.Elapsed.TotalSeconds);
                stopwatch.Reset();

                Console.ReadLine();
            }
        }
Example #2
0
 public Sudoku Solve(Sudoku s)
 {
     return(s);
 }