Paso 2: Codificar el patrón recursivo
Para solucionar para los discos de N, tenemos que ser capaces de resolver para los discos de N-1. Esto es donde entra la recursividad. Como parte de este plan, que desea escribir código que se aplica a un número diferente de discos para el rompecabezas, así como los mensajes de inicio y destino diferentes.
El pseudo código para que se ve:
Específicamente que se refiere el post A, B, y y post C arriba, pero el código debe ser generalizado porque según el disco, el post de inicio y destino los mensajes serán diferentes. Si lo piensas, estamos resolviendo el puzzle 3 veces:
- Moviendo N-1 discos de post A post B
- Moviendo N-1 discos de poste B a C
- Móvil N discos del poste A poste C
Así que se necesita un programa generalizado que le dilo Cuáles son los puestos de salida y destino. Lo interesante es que realmente no estás escribiendo mucho código, que es una parte importante de la apelación de la recursividad. Simplemente describir en el programa de cómo romper un cálculo en pedazos más pequeños, y el ordenador hace el resto.
El seudocódigo detallada parece:
Aquí es cómo se ve el código JavaScript:
Si no eres un programador, me explico que el código anterior se envuelve en una "función" que le permite ejecutar el mismo código con diferentes entradas. Ahora puede decirle al programa cuántos discos tiene en su rompecabezas, así como que los mensajes son Inicio, destino y puestos de estacionamiento. La función también es la base para poder ejecutar la recursividad, en que se ejecuta el mismo código una y otra vez pero con diferentes entradas (entradas también son conocidas como "parámetros" o "argumentos" en jerga de programación).