Solución reto: Visitando a su tío
Entendiendo el problema
En este problema nos piden llegar al zumbador.
Idea de solución
Vamos a imaginar un cuarto desordenado, donde se encuentran juguetes y ropa en el suelo (que afortunadamente no es tu cuarto, ya que seguramente tú eres una persona que le agrada el orden), y si quieres llegar al ropero, solo tienes que caminar tres pasos, y seguramente los das, pero tu andar es inteligente, porque si en tu andar estaba tu video juego odiarías pisarlo y descomponerlo.
De esa misma manea imagina que se tiene un andar inteligente que te llevará por la orilla de la montaña, al que le vamos a llamar camina, y muy cierto, le atinaste: será una nueva función, como también sabes que con esta nueva función Karel va a ir pegado a la pared de la montaña.
El programa se simplifica por que solo debes caminar mientras no junto a zumbador, quedando tu programa quedaría de esta manera:

Sin embargo ahora necesitamos hacer la función camina, la cual debe ir siguiendo la línea. Para eso nos apoyamos en nuestro cuaderno. Observando los mundos de ejemplo, nos damos cuenta de que existen estas variantes.
A.- El frente esta libre y la izquierda bloqueada.
B.- El frente esta bloqueado.
C.- Está en una orilla.
Ahora debemos tener claro en dónde debe quedar Karel una vez que se ejecute la función de camina. En la siguiente imagen te muestro en color azul el lugar donde debe finalizar Karel (le llamaremos siguiente posición útil)
Entonces el código de camina nos queda de la siguiente manera:
Aquí puedes apreciar que si el frente esta libre, podrían ser los casos A y C. En caso de que esté bloqueado, es el caso B. Por lo tanto, para que pueda seguir la línea, debe girar a la derecha. Para los casos A y C debemos avanzar, y para saber si es el caso C utilizamos la pregunta izquierda libre, ya que la izquierda libre nos lleva al caso C, y por lo tanto debemos girar a la izquierda y avanzar.
A continuación te muestro el programa completo.
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.
SUPER TIP: Si con ayuda de tu cuaderno, dibuja las diferentes variantes. Te ayudará a visualizar la solución.
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.
Tip 5: En ocasiones, al resolver un problema, ayuda pensar en si existe un lugar que facilite la solución, y en caso de existir, nuestra primera acción será colocar a Karel en ese lugar.
Te recomiendo que dibujes otros mundos y pruebes tu programa.