Trabajo Torre de Hanoi

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 10

PONTIFICIA UNIVERSIDAD CATLICA MADRE Y MAESTRA PUCMM FACULTAD DE CIENCIAS DE LAS INGENIERAS Departamento de Ingeniera en Sistemas y Computacin ISC

SC Asignatura: Programacin I

Matrculas: 2006-0098 2006-0139

DEFINICIN 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 dimetro sobre uno de menor dimetro. El reto est en que el jugador debe trasladar todos los discos al pivote nmero 3 sin violar esa regla. El juego permitir al jugador avanzar a travs de los distintos niveles en la medida en que resuelve cada problema, o permitir a la computadora resolverlo automticamente mediante un algoritmo recursivo.

PONTIFICIA UNIVERSIDAD CATLICA MADRE Y MAESTRA PUCMM FACULTAD DE CIENCIAS DE LAS INGENIERAS Departamento de Ingeniera en Sistemas y Computacin ISC Asignatura: Programacin I

Matrculas: 2006-0098 2006-0139

TABLA DE CONTENIDO

Anlisis......................................................................................................................................................................................................................... 1 Diseo........................................................................................................................................................................................................................... 2 Cdigo Fuente ........................................................................................................................................................................................................... 5 Condiciones de Error ............................................................................................................................................................................................. 6 Ejemplos de Uso ....................................................................................................................................................................................................... 7 Notas al Profesor ..................................................................................................................................................................................................... 8

Asignatura: ISC-201-P-071 - Programacin I Nombre de la Asignacin: Escriba aqu el nombre de esta asignacin.

Pg. 1 de 8

ANLISIS
El Juego consiste de tres postes paralelos en los cuales se colocan los discos de diferentes dimetros. Al iniciar el programa se colocan de 3 a 6 discos en el primer poste para dar inicio al juego. El juego consiste en ir moviendo los discos del poste principal sea el primero hacia el tercer poste. Los movimientos de los discos deben hacerse bajo las siguientes restricciones: 1. Solo podr moverse un disco a la vez. 2. Nunca podr poner un disco de mayor dimetro sobre uno de menor dimetro. 3. Solo se puede desplazar el disco que se encuentre ms arriba del poste 4. El poste del centro puede utilizarse como comodn para traspasar los discos.

El nmero de disco influye muy grande mente en la cantidad de pasos para ganar el juego. Es por esa razn que se limit el nmero de discos a 3 como mnimo y a 6 como mximo. En la siguiente tabla podemos ver la relacin entre el nmero de discos y la cantidad de movimientos.

Asignatura: ISC-201-P-071 - Programacin I Nombre de la Asignacin: Escriba aqu el nombre de esta asignacin.

Pg. 2 de 8

DISEO
El problema fue resuelto de dos maneras distintas por recursividad y el por el mtodo de solucin simple. Por solucin simple es el mtodo para resolver el juego en modo jugador y por recursividad es la manera de resolver el juego automticamente con la pc. Solucin simple: La colocacin del disco ms pequeo el fundamental. El movimiento inicial es colocar el disco de arriba en el poste del centro. El disco nmero dos por regla, se debe mover hacia el poste nmero tres. Luego el disco uno se mueve al poste tres para que quede sobre el disco dos. A continuacin se mueve el disco que sigue del poste uno, en este caso el disco nmero tres, y se coloca en el poste dos. Finalmente el disco nmero uno regresa del poste tres al uno uno (sin pasar por la dos) y as sucesivamente. Es decir, el truco est en el disco ms pequeo. Recursividad: Si numeramos los discos desde 1 hasta n, y llamamos X a la primera pila de discos (origen), Z a la tercera (destino) e Y a la intermedia (auxiliar) y a la funcin le pudiramos llamar hanoi (origen, auxiliar, destino), como parmetros, la funcin recibira las pilas de discos. El algoritmo de la funcin sera el siguiente: *Entrada: Tres pilas de nmeros origen, auxiliar, destino, con la pila origen ordenada. *Salida: La pila destino. 1. Si origen == {0} entonces. a) mover el disco 1 de la pila origen a la pila destino. b) terminar. 2. Si no. a) hanoi ({0,n-1},destino,auxiliar) //mover todas las fichas menos la ms grande (n) al poste auxiliar. 3. Mover disco n a destino //mover la ficha grande hasta al poste final. 4. hanoi (auxiliar, origen, destino) //mover todas las fichas restantes, 0...n-1, encima de la ficha grande (n). 5. terminar. 6. El resultado es: La pila destino.

Asignatura: ISC-201-P-071 - Programacin I Nombre de la Asignacin: Escriba aqu el nombre de esta asignacin. Diagrama de clase:

Pg. 3 de 8

Asignatura: ISC-201-P-071 - Programacin I Nombre de la Asignacin: Escriba aqu el nombre de esta asignacin. Diagrama de actividades:

Pg. 4 de 8

Asignatura: ISC-201-P-071 - Programacin I Nombre de la Asignacin: Escriba aqu el nombre de esta asignacin.

Pg. 5 de 8

CDIGO FUENTE
El cdigo fuente esta como archivo .zip incluido en la carpeta del portafolio.

Asignatura: ISC-201-P-071 - Programacin I Nombre de la Asignacin: Escriba aqu el nombre de esta asignacin.

Pg. 6 de 8

CONDICIONES DE ERROR
No tiene condiciones de error.

Asignatura: ISC-201-P-071 - Programacin I Nombre de la Asignacin: Escriba aqu el nombre de esta asignacin.

Pg. 7 de 8

EJEMPLOS DE USO

Asignatura: ISC-201-P-071 - Programacin I Nombre de la Asignacin: Escriba aqu el nombre de esta asignacin.

Pg. 8 de 8

NOTAS AL PROFESOR
En caso de que desee hacer un sealamiento al profesor acerca de su trabajo, incluirlo bajo este ttulo al final.

También podría gustarte