예제 #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;
        }
예제 #2
0
파일: Hanoi.cs 프로젝트: Docente2018/G800
        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;
        }