Пример #1
0
        public void HanoiHeeftEindToren()
        {
            var   hanoi = new Hanoi(5);
            Toren toren = hanoi.EindToren;

            Assert.NotNull(toren);
        }
Пример #2
0
        public void Play()
        {
            Hanoi hanoi = new Hanoi(5);
            int   moves = hanoi.Start();

            Assert.AreEqual(31, moves);
        }
Пример #3
0
        public void InsertSimulador(string inicio, string fim, long SimuladorId, int QtdDiscosinicial)
        {
            try
            {
                HanoiwebApi.api.HanoisController HanoiwebApi = new HanoiwebApi.api.HanoisController();

                Hanoi hanoi = new Hanoi();

                hanoi.id_simulacao          = SimuladorId;
                hanoi.qtddiscosInicial      = QtdDiscosinicial;
                hanoi.movimento_De          = inicio.ToString();
                hanoi.movimento_Para        = fim.ToString();
                hanoi.data_inicio_simulacao = DateTime.Now;

                if (String.IsNullOrEmpty(inicio))
                {
                    hanoi.data_fim_simulacao = DateTime.Now;
                }
                else
                {
                    hanoi.data_fim_simulacao = null;
                }

                var response = HanoiwebApi.PostHanoi(hanoi);
            }
            catch (Exception e)
            {
                Console.WriteLine("Log Erro" + e);
            }
        }
Пример #4
0
        public void BovensteSchijfInNieuweStartTorenHeeftDiameter1(int aantalSchijven)
        {
            var hanoi = new Hanoi(aantalSchijven);
            var toren = hanoi.StartToren;

            Assert.Equal(1, toren.BovensteSchijf.Diameter);
        }
Пример #5
0
        static void Main(string[] args)
        {
            Hanoi hanoi = new Hanoi();
            int   opcion;

            Console.WriteLine("MENU TORRES DE HANOI");
            Console.WriteLine("1. Calcular y Desplegar Total de Movimientos");
            Console.WriteLine("2. Salir" + '\n');
            Console.Write("Selecciona una opcion: ");
            opcion = int.Parse(Console.ReadLine());
            switch (opcion)
            {
            case 1: opcion = 1;
                {
                    Console.Clear();
                    int    num;
                    string origen   = "Torre 1";
                    string auxiliar = "Torre 2";
                    string destino  = "Torre 3";
                    Console.Write("Ingresa la cantidad de anillos: ");
                    num = int.Parse(Console.ReadLine());
                    hanoi.TorresDeHanoi(num, origen, auxiliar, destino);
                    Console.WriteLine("Movimientos realizados: {0}", cont);
                    break;
                }

            case 2: opcion = 2;
                {
                    Console.Clear();
                    break;
                }
            }
            Console.WriteLine("Pulsa cualquier tecla para salir");
            Console.ReadKey();
        }
Пример #6
0
        public void HanoiHeeftMiddelsteToren()
        {
            var   hanoi = new Hanoi(5);
            Toren toren = hanoi.MiddelsteToren;

            Assert.NotNull(toren);
        }
Пример #7
0
        public void TopLevelDiscInNewStartTowerHasDiameter1(int discCount)
        {
            var hanoi = new Hanoi(discCount);
            var Tower = hanoi.StartTower;

            Assert.Equal(1, Tower.TopLevelDisc.Diameter);
        }
Пример #8
0
        public void HanoiHasEndTower()
        {
            var   hanoi = new Hanoi(5);
            Tower Tower = hanoi.EndTower;

            Assert.NotNull(Tower);
        }
Пример #9
0
        public void HanoiHasMiddleTower()
        {
            var   hanoi = new Hanoi(5);
            Tower Tower = hanoi.MiddleTower;

            Assert.NotNull(Tower);
        }
Пример #10
0
    public static void main()
    {
        int   n = int.Parse(Console.ReadLine());
        Hanoi h = new Hanoi();

        h.hanoi(n, 'a', 'b', 'c');
    }
Пример #11
0
        public Hanoi StartHanoi()
        {
            var oHanoi = new TorreDeHanoi(3);

            oHanoi.torreId = Hanoi.Count();

            Hanoi.Add(oHanoi);

            return(oHanoi);
        }
Пример #12
0
        private void MoveHanoi(Hanoi hanoi)
        {
            MovePins(hanoi.Data.NumberDiscs, 'A', 'C', 'B');

            hanoi.Moves.AddRange(moves);
            hanoi.Data.FinalDateTime = DateTime.Now;
            hanoi.Status             = "Finished";

            hanoiRepository.Update(hanoi);
        }
Пример #13
0
        public void Data_SelfValidation_Null_IsNoValid()
        {
            var hanoi = new Hanoi {
            };

            var result = hanoi.IsValid();

            Assert.IsFalse(result);
            Assert.IsTrue(hanoi.ValidationResult.Erros.Any(e => e.Message == ErrorMessages.HanoiMustHaveStatusErrorMessage));
        }
Пример #14
0
        public void SolveHanoiWith1Disc()
        {
            var hanoi = new Hanoi(1);
            var Disc  = hanoi.StartTower.TakeDisc();

            hanoi.EndTower.LayDiscOnTop(Disc);
            Assert.Null(hanoi.StartTower.TopLevelDisc);     // the first Tower is empty when solution is found
            Assert.Null(hanoi.MiddleTower.TopLevelDisc);    // the second Tower is empty when solution is found
            Assert.NotNull(hanoi.EndTower.TopLevelDisc);    // the third Tower contains at least 1 Disc when solution is found
            Assert.Same(Disc, hanoi.EndTower.TopLevelDisc); // the top level Disc of the third Tower is the Disc from the start of the game
        }
Пример #15
0
        public void LosHanoiOpMet1Schijf()
        {
            var hanoi  = new Hanoi(1);
            var schijf = hanoi.StartToren.NeemSchijf();

            hanoi.EindToren.LegSchijf(schijf);
            Assert.Null(hanoi.StartToren.BovensteSchijf);        // de eerste toren is leeg na oplossen
            Assert.Null(hanoi.MiddelsteToren.BovensteSchijf);    // de tweede toren is leeg na oplossen
            Assert.NotNull(hanoi.EindToren.BovensteSchijf);      // de derde toren bevat minstens 1 schijf na oplossen
            Assert.Same(schijf, hanoi.EindToren.BovensteSchijf); // de bovenste schijf van de derde toren is de schijf waarmee werd gestart
        }
Пример #16
0
        public Hanoi Add(Hanoi hanoi)
        {
            if (hanoi == null)
            {
                throw new ArgumentNullException("Torre de Hanói nulo.");
            }

            hanois.Add(hanoi);

            return(hanoi);
        }
Пример #17
0
 /// <summary>
 /// Détection de collision (Rigidbody2D)
 /// Ici, quand l'object tombe sur le sol, reset du pointeurFil (pour avoir à le resélectionner).
 /// </summary>
 /// <param name="collision"></param>
 private void OnCollisionEnter2D(Collision2D collision)
 {
     if (pointeurFil != null && pointeurFil.GetComponent <Rigidbody2D>().gravityScale == 1f)
     {
         locked      = false;     // fin mouvement (bas / gravité) => déblocage
         pointeurFil = null;
         if (tours[2].Count == 3) // victoire
         {
             SceneManager.LoadScene("SortieAAAAA");
         }
     }
 }
Пример #18
0
        public void Data_SelfValidation_IsValid()
        {
            var hanoi = new Hanoi
            {
                Id     = Guid.NewGuid(),
                Status = "Finished"
            };

            var result = hanoi.IsValid();

            Assert.IsTrue(result);
        }
Пример #19
0
        public void HanoiStartTowerContainsDiscCount(int discCount)
        {
            var hanoi = new Hanoi(discCount);
            var Tower = hanoi.StartTower;

            // Take disks off of the tower until the tower should be empty
            for (int i = 0; i < discCount; i++)
            {
                Assert.NotNull(Tower.TopLevelDisc);
                Tower.TakeDisc();
            }
            Assert.Null(Tower.TopLevelDisc);
        }
Пример #20
0
        public void HanoiStartTorenBevatJuistAantalSchijven(int aantalSchijven)
        {
            var hanoi = new Hanoi(aantalSchijven);
            var toren = hanoi.StartToren;

            // Haal schijven van de toren tot de toren leeg zou moeten zijn.
            for (int i = 0; i < aantalSchijven; i++)
            {
                Assert.NotNull(toren.BovensteSchijf);
                toren.NeemSchijf();
            }
            Assert.Null(toren.BovensteSchijf);
        }
        public async Task <IHttpActionResult> PostHanoi(Hanoi hanoi)
        {
            try
            {
                db.Hanoi.Add(hanoi);
                await db.SaveChangesAsync();

                return(CreatedAtRoute("DefaultApi", new { id = hanoi.id_ }, hanoi));
            }
            catch (Exception e)
            {
                return(Ok(e));//CreatedAtRoute("DefaultApi", new { id = hanoi.id_ }, hanoi);
            }
        }
Пример #22
0
        public async Task Proccess(ProccessHanoiCommand command)
        {
            _hanoi = await _hanoiRepository.GetByGuidAsync(command.HanoiId);

            Trace.Write($"Start processing Hanoi {_hanoi.Id}");
            var start = new Tower(_hanoi.TotalDisks);
            var mid   = new Tower(ETowerPosition.End);
            var end   = new Tower(ETowerPosition.Mid);

            await SolveTower(_hanoi.TotalDisks, start, end, mid);

            _hanoi.EndHanoi();
            _hanoiRepository.NoTransactionUpdate(_hanoi);
            Trace.Write($"End processing Hanoi {_hanoi.Id}");
        }
Пример #23
0
        int totalTowers;    //just used for display purposes; used to calculate turn max. please delete if the text display is gone

        public MainWindow()
        {
            InitializeComponent();

            // You can set window properties in code
            this.Title = "Towers Of Hanoi Solver";
            this.WindowStartupLocation = WindowStartupLocation.CenterScreen;

            //Default Initialize the Hanoi Tower
            totalTowers = 3;
            HanoiObj    = new Hanoi(3);
            Display_Towers_Status_Message(null, null);

            //Update visual display with our HanoiObj
            UpdateTowersWithHanoi();
        }
Пример #24
0
    public static void Main(String[] args)
    {
        int n = 3;

        Console.WriteLine("Enter number of rings: ");
        n = Convert.ToInt32(Console.ReadLine());

        Hanoi tower = new Hanoi();
        Stack src, dest, aux;

        src  = tower.createStack(n);
        dest = tower.createStack(n);
        aux  = tower.createStack(n);

        tower.solve(n, src, dest, aux);
    }
Пример #25
0
        public void SolveHanoiWith2Discs()
        {
            var hanoi = new Hanoi(2);
            var Disc  = hanoi.StartTower.TakeDisc();

            // solve
            hanoi.MiddleTower.LayDiscOnTop(Disc);
            Disc = hanoi.StartTower.TakeDisc();
            hanoi.EndTower.LayDiscOnTop(Disc);
            Disc = hanoi.MiddleTower.TakeDisc();
            hanoi.EndTower.LayDiscOnTop(Disc);

            // Check whether the solution is correct
            Assert.Null(hanoi.StartTower.TopLevelDisc);  // the first Tower is empty when solution is found
            Assert.Null(hanoi.MiddleTower.TopLevelDisc); // the second Tower is empty when solution is found
            Assert.NotNull(hanoi.EndTower.TopLevelDisc); // the third Tower contains at least 1 Disc when solution is found
        }
Пример #26
0
        private void ChangeGameState()
        {
            FirstTower.Discs.Clear();
            SecondTower.Discs.Clear();
            ThirdTower.Discs.Clear();
            int discCount = GameControl.NumberOfDiscs;

            model = new Hanoi(discCount);
            FirstTower.SetTower(model.StartTower);
            SecondTower.SetTower(model.MiddleTower);
            ThirdTower.SetTower(model.EndTower);

            FirstTower.IsPlayedManually  = GameControl.IsPlayManuallyChecked;
            SecondTower.IsPlayedManually = GameControl.IsPlayManuallyChecked;
            ThirdTower.IsPlayedManually  = GameControl.IsPlayManuallyChecked;
            SetAllowTakeDisc(GameControl.IsPlayManuallyChecked);
        }
Пример #27
0
        public void LosHanoiOpMet2Schijven()
        {
            var hanoi  = new Hanoi(2);
            var schijf = hanoi.StartToren.NeemSchijf();

            // los op
            hanoi.MiddelsteToren.LegSchijf(schijf);
            schijf = hanoi.StartToren.NeemSchijf();
            hanoi.EindToren.LegSchijf(schijf);
            schijf = hanoi.MiddelsteToren.NeemSchijf();
            hanoi.EindToren.LegSchijf(schijf);

            // Controleer of de oplossing juist kan zijn
            Assert.Null(hanoi.StartToren.BovensteSchijf);     // de eerste toren is leeg na oplossen
            Assert.Null(hanoi.MiddelsteToren.BovensteSchijf); // de tweede toren is leeg na oplossen
            Assert.NotNull(hanoi.EindToren.BovensteSchijf);   // de derde toren bevat minstens 1 schijf na oplossen
        }
Пример #28
0
        public static void Case1()
        {
            int count = 4;
            int s     = 1;
            int x     = 2;
            int d     = 3;

            Console.WriteLine("recursive version:");

            Hanoi.Move(count, s, d, x);

            Console.WriteLine();
            Console.WriteLine();


            Console.WriteLine("non-recursive version:");
            HanoiNR.Move(count, s, d, x);
        }
Пример #29
0
        public Hanoi Update(Hanoi hanoi)
        {
            if (hanoi == null)
            {
                throw new ArgumentNullException("Torre de Hanói nulo.");
            }

            int hanoiIndex = hanois.FindIndex(p => p.Id == hanoi.Id);

            if (hanoiIndex == -1)
            {
                throw new ArgumentNullException("Torre de Hanói não localizado.");
            }

            hanois.RemoveAt(hanoiIndex);
            hanois.Add(hanoi);

            return(hanoi);
        }
Пример #30
0
    //and at last we will have to use our Hanoi Class to juggle?!
    //coded and solved by mohammad safari!:\
    static void Main(string[] args)
    {
        Console.WriteLine("\nEnter disk numbers, please:");
        //told that cap is important:\
        //(may be not that important, just my gut feelings:|)
        int n = Convert.ToInt32(Console.ReadLine());

        Hanoi.set_disk_num(n);
        Hanoi.initialize_Hanoi(Hanoi.A);
        Hanoi.Solve_Iterative(Hanoi.A, Hanoi.B, Hanoi.C);
        //da dan...!:)
        //by m. safari
        //hope you enjoy!
        //only for comparison:
        //Hanoi.Solve_Recursive(n);
        //p.s : recursive one only lack disk num that we can
        //perform it by arrays that i thought might not be
        //necessary for comparing
    }
 public string Get(int number, string source, string aux, string destination)
 {
     Hanoi h = new Hanoi();
     return h.MoveDisks(number, source, aux, destination);
 }