¿Cómo hacer un juego de la Torre de Hanoi programado en lenguaje C?
#include\x0d\ void move(char x, char y)\x0d\ {\x0d\ printf("c--gt;c\n",x,y);\x0d\ } \x0d\ void hanoi(int n, char one, char two, char three)\x0d\ {\x0d\ if(n==1) move(one, three);\x0d\ else\x0d\ {\x0d\ hanoi(n-1, uno, tres, dos);\x0d\ mover(uno, tres);\x0d\ hanoi(n-1, dos, uno, tres);\x0d\ }\x0d\ }\x0d\ main()\x0d\ {\x0d\ int m;\x0d\ printf("ingrese el número de discos: ");\x0d\ scanf("d",amp;m);\x0d\ printf("el paso para mover discos 3d:\n",m);\x0d\ hanoi(m,'A','B','C');\x0d\ }\x0d\Introducción al algoritmo:\x0d\ De hecho, el algoritmo Es muy simple: cuando el número de placas es n, el número de movimientos debe ser igual a 2 ^ n _ 1 (si estás interesado, puedes probarlo tú mismo). Más tarde, un académico estadounidense descubrió un método inesperadamente sencillo, que sólo requería turnarse para realizar dos pasos. Primero, coloque los tres pilares en orden con una fuente perfecta. Coloque todos los discos en el pilar A en orden de mayor a menor. Determine el orden de disposición de los pilares según el número de discos: si n es un número par, ordene. en el sentido de las agujas del reloj. Coloque A B C; \x0d\ Si n es un número impar, coloque A C B en el sentido de las agujas del reloj. \x0d\ (1) Mueva el disco 1 del pilar actual al siguiente pilar en el sentido de las agujas del reloj, es decir, cuando n es un número par, si el disco 1 está en el pilar A, muévalo a B si el disco es 1; está en el pilar B, muévalo a C; si el disco 1 está en el pilar C, muévalo a A. \x0d\ (2) Luego, mueva los discos móviles de los otros dos pilares al nuevo pilar. Es decir, mueva el disco del pilar que no está vacío al pilar vacío. Cuando ambos pilares no estén vacíos, mueva el disco más pequeño. Este paso no especifica claramente qué disco mover. Puedes pensar que hay muchas posibilidades, pero en realidad no es así. La acción que se puede implementar es la única. \x0d\ (3) Repite las operaciones (1) (2), y finalmente podrás completar el movimiento de la Torre de Hanoi como se especifica. \x0d\ Entonces el resultado es muy simple, que es mover la pieza de oro en una dirección de acuerdo con las reglas de movimiento: \x0d\ Por ejemplo, el movimiento de la Torre Hanoi de tercer orden: A→C, A→B, C →B, A→C, B→A, B→C, A→C\x0d\ El problema de la Torre de Hanoi también es un problema recursivo clásico en programación. A continuación, presentaremos diferentes códigos fuente de implementación de recursivo y no recursivo.