PONTIFICIA UNIVERSIDAD CATÓLICA MADRE Y MAESTRA – PUCMM FACULTAD DE CIENCIAS DE LAS INGENIERÍAS Departamento de Ingeniería en Sistemas y Computación – ISC

Asignatura: Programación I

Matrículas: 2006-0098 2006-0139

DEFINICIÓN DEL PROBLEMA
Realice un programa que simule el juego “Las Torres de Hanoi”. Este juego consiste en que existen tres pivotes o palitos de madera uno al lado del otro, el primero tiene al inicio del juego una cantidad de discos con un hueco en el centro que son acomodados de manera tal que nunca puede haber un disco de mayor diámetro sobre uno de menor diámetro. El reto está en que el jugador debe trasladar todos los discos al pivote número 3 sin violar esa regla. El juego permitirá al jugador avanzar a través de los distintos niveles en la medida en que resuelve cada problema, o permitirá a la computadora resolverlo automáticamente mediante un algoritmo recursivo.

....................................................................................................................................................................................................................................................................................................................................... 7 Notas al Profesor ......................................................................................................................................................................................................................................................................................................... 6 Ejemplos de Uso ................................................................................................................................................................................................................................................................................................................................................................................................................................ 5 Condiciones de Error ..........PONTIFICIA UNIVERSIDAD CATÓLICA MADRE Y MAESTRA – PUCMM FACULTAD DE CIENCIAS DE LAS INGENIERÍAS Departamento de Ingeniería en Sistemas y Computación – ISC Asignatura: Programación I Matrículas: 2006-0098 2006-0139 TABLA DE CONTENIDO Análisis..................... 2 Código Fuente .................................................................................................... 8 .......................................... 1 Diseño............

Al iniciar el programa se colocan de 3 a 6 discos en el primer poste para dar inicio al juego.Programación I Nombre de la Asignación: Escriba aquí el nombre de esta asignación. Solo se puede desplazar el disco que se encuentre más arriba del poste 4. En la siguiente tabla podemos ver la relación entre el número de discos y la cantidad de movimientos. Nunca podrá poner un disco de mayor diámetro sobre uno de menor diámetro. 1 de 8 ANÁLISIS El Juego consiste de tres postes paralelos en los cuales se colocan los discos de diferentes diámetros. Es por esa razón que se limitó el número de discos a 3 como mínimo y a 6 como máximo. 2. El juego consiste en ir moviendo los discos del poste principal ósea el primero hacia el tercer poste. El número de disco influye muy grande mente en la cantidad de pasos para ganar el juego. Pág. Los movimientos de los discos deben hacerse bajo las siguientes restricciones: 1. . El poste del centro puede utilizarse como comodín para traspasar los discos.Asignatura: ISC-201-P-071 . 3. Solo podrá moverse un disco a la vez.

El movimiento inicial es colocar el disco de arriba en el poste del centro. Solución simple: La colocación del disco más pequeño el fundamental. Z a la tercera (destino) e Y a la intermedia (auxiliar) y a la función le pudiéramos llamar hanoi (origen. Es decir. terminar. b) terminar. El resultado es: La pila destino. 1. Si no. en este caso el disco número tres. Pág.Programación I Nombre de la Asignación: Escriba aquí el nombre de esta asignación..destino. Mover disco n a destino //mover la ficha grande hasta al poste final. Por solución simple es el método para resolver el juego en modo jugador y por recursividad es la manera de resolver el juego automáticamente con la pc. *Salida: La pila destino. a) hanoi ({0. Si origen == {0} entonces. encima de la ficha grande (n). 3. destino.auxiliar) //mover todas las fichas menos la más grande (n) al poste auxiliar. destino) //mover todas las fichas restantes. 2 de 8 DISEÑO El problema fue resuelto de dos maneras distintas por recursividad y el por el método de solución simple. y llamamos X a la primera pila de discos (origen). como parámetros. hanoi (auxiliar. la función recibiría las pilas de discos. con la pila origen ordenada. A continuación se mueve el disco que sigue del poste uno. destino).…n-1}. auxiliar. se debe mover hacia el poste número tres. 4. el truco está en el disco más pequeño. a) mover el disco 1 de la pila origen a la pila destino.n-1. Finalmente el disco número uno regresa del poste tres al uno uno (sin pasar por la dos) y así sucesivamente. Recursividad: Si numeramos los discos desde 1 hasta n. origen. Luego el disco uno se mueve al poste tres para que quede sobre el disco dos.. auxiliar. El algoritmo de la función sería el siguiente: *Entrada: Tres pilas de números origen. y se coloca en el poste dos. 0.Asignatura: ISC-201-P-071 . 5. 6. . 2. El disco número dos por regla.

Programación I Nombre de la Asignación: Escriba aquí el nombre de esta asignación.Asignatura: ISC-201-P-071 . Diagrama de clase: Pág. 3 de 8 .

Asignatura: ISC-201-P-071 . 4 de 8 . Diagrama de actividades: Pág.Programación I Nombre de la Asignación: Escriba aquí el nombre de esta asignación.

Programación I Nombre de la Asignación: Escriba aquí el nombre de esta asignación.Asignatura: ISC-201-P-071 . Pág. .zip incluido en la carpeta del portafolio. 5 de 8 CÓDIGO FUENTE El código fuente esta como archivo .

Programación I Nombre de la Asignación: Escriba aquí el nombre de esta asignación. 6 de 8 CONDICIONES DE ERROR No tiene condiciones de error.Asignatura: ISC-201-P-071 . Pág. .

Pág. 7 de 8 EJEMPLOS DE USO .Programación I Nombre de la Asignación: Escriba aquí el nombre de esta asignación.Asignatura: ISC-201-P-071 .

8 de 8 NOTAS AL PROFESOR En caso de que desee hacer un señalamiento al profesor acerca de su trabajo.Programación I Nombre de la Asignación: Escriba aquí el nombre de esta asignación. Pág.Asignatura: ISC-201-P-071 . . incluirlo bajo este título al final.