Exemplo n.º 1
0
        public static void MueveTorre(int discos, string torre1, string torre2, string torre3)
        {
            //Si numero de movimiento es menor a cero, mueve a torre
            if (discos < 2)
            {
                Hanoi.mover(discos, torre1, torre2);
            }
            else
            {
                //Generar iteración de recursividad para mover a torre auxiliar
                Hanoi.MueveTorre(discos - 1, torre1, torre3, torre2);
                //Cambiar disco de torres
                Hanoi.mover(discos, torre1, torre2);

                //Mover a torre auxiliar para generar pivote de torre
                Hanoi.MueveTorre(discos - 1, torre3, torre2, torre1);
            }
            return;
        }
Exemplo n.º 2
0
        public static void MueveTorre(int num, int desde, int hasta, int pivote)
        {
            //Si numero de movimiento es menor a cero, mueve a torre
            if (num < 2)
            {
                Hanoi.mover(num, desde, hasta);
            }
            else
            {
                //Generar iteración de recursividad para mover a torre auxiliar
                Hanoi.MueveTorre(num - 1, desde, pivote, hasta);
                //Cambiar disco de torres
                Hanoi.mover(num, desde, hasta);

                //Mover a torre auxiliar para generar pivote de torre
                Hanoi.MueveTorre(num - 1, pivote, hasta, desde);
            }

            return;
        }