SoloCodigo
Programación General => C/C++ => Mensaje iniciado por: Ergon en Miércoles 14 de Octubre de 2009, 12:19
-
muy buenas !!!
soy muy novato en el tema de la programacion en C++ y os pido ayuda para que me ayudaeis a interpretar un algoritmo.
Tengo que hacer el juego de las torres de Hanoi con un brazo robotico. El robot usara idioma RAPL-II
El profesor nos ha pasado esto:
-------------------------------------------------------------------------------------------------------------------------
Las Torres de Hanoi (RECURSIVA).
Esta practica trata de implementar el problema de las Torres de Hanoi de
manera recursiva. Se parte de unas condiciones iniciales conocidas (p. ex. Hay 6
piezas en una de las torres y las otras dos estan vacias) y el programa tiene que aceptar
reproducir acciones del tipo: “Mueve n piezas de la torre A a la torre B”. El algoritmo
recursivo que mueve N piezas de la Torre_A a la Torre_B, es el siguiente:
Mover_Piezas(Torre_A, Torre_B, Npiezas)
{
Torre_C= Otra_Torre(Torre_A, Torre_B) // Busca la torre auxiliar
Si (n!=1)
{
Mover_Piezas(Torre_A, Torre_C, Npiezas-1);
Cambiar_Pieza(Torre_A, Torre_B); // Mueve solo la pieza superior
Mover_Piezas(Torre_C, Torre_B, Npiezas-1);
}
sinó
Cambiar_Pieza(Torre_A, Torre_B); // Mueve solo la pieza superior
el tema esta en si me podrias explicar como funciona este algoritmo ya q no entiendo como trabaja.
Podrias decirme que variables deberia declarar?
"Mover_Piezas" , "Cambiar_Piezas" es una variable de estructura?
muchas gracias por adelnatado !!!!
P.D: si alguien tiene otro algoritmo donde crea q lo entenderia mejor...
-
te sugiero que veas esto: http://www.solotuweb.com/fs~id~5319.html (http://www.solotuweb.com/fs~id~5319.html" onclick="window.open(this.href);return false;)
:alien:
-
muchas gracias por el link !!!sera de gran ayuda, aunque yo lo hago en c++ y las cosas cambian algo...
Pero una cosilla, alguien podria explicarme como se supone q deberia funcionar el algoritmo q puse??
Por ejemplo, si le digo q jugaremos con 4 piezas hace el algoritmo 4 veces. Primero cuando N=4, cuando N=3, cuando N=2... ??
gracias
-
el órden del algorítmo se basa en la cantidad de discos, por lo cual para mover todos los dicos(N) de A a C pasando por B, se requieren 2^N - 1 Movimientos B)
mas info acá http://www.rodoval.com/heureka/hanoi/ (http://www.rodoval.com/heureka/hanoi/" onclick="window.open(this.href);return false;)