Example #1
0
        static void Main()
        {
            int nbTests = 3000;

            Console.CursorVisible = false;
            Console.Clear();
            //int reussis = 0, echoues = 0, exceptions = 0;
            uint nbMouvementsResolution = 0;
            //int nbMouvementsShuffle = (int)Math.Pow(2, 12);
            int          nbMouvementsShuffle = Int16.MaxValue;
            int          curMouvements = 0, meilleurMouvement = int.MaxValue /*, meilleurShuffle = 0*/;
            int          start = 1;
            Manipulateur ctManip;
            CasseTete    ct = new CasseTete(40, 20, true, 0);

            Console.WindowHeight += 5;

            //ctManip = new Manipulateur(ct);
            for (int i = start; i <= nbTests; i++)
            {
                ctManip = new Manipulateur(ct, i);

                //nbMouvementsShuffle = ctManip.MelangerCasseTeteAleatoire(nbMouvementsShuffle);
                nbMouvementsShuffle = ctManip.MelangerCasseTeteRotation(nbMouvementsShuffle);
                //nbMouvementsShuffle = ctManip.InverserCasseTete();
                curMouvements           = ctManip.Resoudre();
                nbMouvementsResolution += (uint)curMouvements;

                if ((double)nbMouvementsShuffle / meilleurMouvement < (double)nbMouvementsShuffle / curMouvements)
                {
                    meilleurMouvement = curMouvements;
                }

                Console.SetCursorPosition(0, ct.Hauteur + 1);
                Console.ForegroundColor = ConsoleColor.Magenta;
                Console.WriteLine("Nombre de tests: {0:n0}", i);
                Console.WriteLine();

                Console.ForegroundColor = ConsoleColor.Green;
                Console.Write("Dernier: {0:n0}/{1:0 000}", nbMouvementsShuffle, curMouvements);
                Console.ForegroundColor = ConsoleColor.Yellow;

                //Console.ForegroundColor = ConsoleColor.Red;
                Console.Write(" Total: {0:n}%", (double)nbMouvementsShuffle * (i - start + 1) / nbMouvementsResolution * 100);
                Console.ForegroundColor = ConsoleColor.Cyan;
                Console.WriteLine(" Déplacements avg: {0:n0} ", nbMouvementsResolution / (i - start + 1));
            }
            Console.ReadKey();
        }
Example #2
0
        public Manipulateur(CasseTete ct, int?seed)
        {
            this.ct   = ct;
            this.seed = seed;

            if ((this.seed = seed).HasValue)
            {
                this.rng = new Random(this.seed.Value);
            }
            else
            {
                this.rng = new Random();
            }

            this.dictTuiles = ct.GetDictionary();
        }
Example #3
0
 public Manipulateur(CasseTete ct)
     : this(ct, null)
 {
 }