Solución de repartiendo juguetes
Entendiendo el problema
El problema nos indica que Karel debe repartir los zumbadores en sentido contrario a las manecillas del reloj. Esta repartición debe ser lo más equitativa posible.
Idea de solución
La situación se complica debido a que Karel solo puede tomar un zumbador y dejar un zumbador a la vez, y no puede realizar operaciones de suma y resta o de multiplicación y división como lo hacemos nosotros los humanos.
Sin embargo Karel sí puede ir dejando los zumbadores de uno en uno en cada esquina, y cuando se le acaben quedarán repartidos como se pide. Para realizar esta trabajo lo que debe hacer Karel es recoger todos los zumbadores, y después, mientras tenga zumbadores en la mochila, debe dejar 1 zumbador, llegar a la siguiente esquina y girar la izquierda.
El esquema de solución quedaría así:
- Recoger todos los zumbadores
- Mientras tenga zumbadores en la mochila:
- Dejar 1 zumbador
- Llegar a la siguiente esquina (que equivale llegar a la pared de enfrente)
- Girar a la izquierda
- Fin
Reflexiona un momento en esta serie de pasos.
Código de la solución
Una manera elegante de realizar este trabajo sería crear una función llamada llegarPared, cuya misión sería llegar a la pared de enfrente, y así el código se vería de la siguiente manera:
Te recomiendo que dibujes otros mundos y pruebes tu programa.