Solución siguiendo el mapa
Entendiendo el problema
En este problema nos piden detenernos en la primera casilla en blanco que encontremos siguiendo las indicaciones. Si estamos sobre un zumbador, avanzamos al norte, y si estamos sobre dos zumbadores, avanzamos al este.
Idea de solución
Si observamos los ejemplos, nos damos cuenta de que es necesario orientarse y avanzar mientras no junto a zumbador.
Si tuviera la instrucción de orientar, el programa quedaría de la siguiente manera:
- Mientras junto a zumbador
- Orientar
- Avanzar
- Fin
Ahora, ¿cómo le hacemos para orientarnos ya sea al norte o al este? La clave es la siguiente: orientamos a Karel al norte, tomamos un zumbador y si sigue estando junto a otro zumbador, entonces lo orientemos al este.
Para que nuestro código sea fácil de entender, crearemos tres nuevas funciones: una llamada norte, que tendrá el objetivo de orientar a Karel al norte; otra llamada este, que tendrá el objetivo de orientar a Karel al este; y por último otra llamada orientar, cuyo objetivo es decidir si Karel mira al norte o al este.
Quedando el programa de la siguiente manera:
Este programa recoge los zumbador conforme va siguiendo el camino (la descripción del problema menciona que solo se tomará en cuenta la posición final de Karel). Pero si quieres dejar el mundo como en los ejemplos, lo que debes hacer es dejar un zumbador antes de la instrucción avanzar.
Observaciones
- Cuando miras el código en función de inicio de programa, automáticamente sabes qué es lo que va hacer, sin necesidad de revisar el detalle de todas las instrucciones.
- Parece que con las nuevas funciones el lenguaje de Karel ya creció, porque ahora contamos con tres nuevas funcionalidades: la de norte y sur, que podremos usar en muchos más programas, y la de orientar, que le da claridad al programa.
SUPER TIP: Si con ayuda de tu cuaderno dibujas los recorridos que debe realizar Karel, te ayudará a encontrar la solución en poco tiempo.
Tip 1: Es buena idea pensar que ya tienes nuevas funcionalidades, y en base a ellas construir tu algoritmo.
Tip 2: Te recomiendo que dividas la solución de tu programa en etapas o partes mas pequeñas.
Tip 3: Cuando creamos programas en base a nuevas funciones, tiene como consecuencia que nuestros programas son mas claros de leer.
Tip 4: Te recomiendo el uso de una libreta o pizarra para que separes las acciones, y dibujes los recorridos que deberá seguir Karel.
Te recomiendo que dibujes otros mundos y pruebes tu programa.