Solución caminito de la escuela

Entendiendo el problema

En este problema nos piden detenernos sobre el renglón 1, en la última casilla que tenga la izquierda libre.

Idea de solución

Si observamos los ejemplos, nos damos cuenta de que, mirando al este, la última casilla con la izquierda libre corresponde, mirando de este a oeste, a la primera casilla con la derecha libre.

Esto nos hace pensar que la mejor manera de llegar a la escuela es colocar a Karel en el extremo derecho del mundo, mirando hacia el oeste, y hacerlo avanzar hasta detenerlo en la primera casilla con la derecha libre. 

Si nos apoyamos de nuestro cuaderno de la Olimpiada, podemos dibujar los recorridos, y asií tener claro lo que hará nuestro programa. En la siguiente figura te muestro el que yo hice.


Si te das cuenta, lo estamos resolviendo con nuestro acostumbrado lenguaje. Pensando un poco más, sería bueno contar con una función que se llame llegarPared, y otra que se llame mediaVuelta. Imagina que existiera un Dios de los algoritmos al cual le pudieras pedir ese par de nuevas funciones. Siendo así, nuestra idea de solución quedaría de la siguiente manera:

    • llegarPared
    • mediaVuelta
    • mientras derecha bloqueada avanzar (aunque puede ser una nueva función, he decidido no hacerla para este programa)

Como tú eres el Dios de los algoritmos, te toca escribir el programa.


La función de llegarPared tiene como finalidad hacer que Karel llegue a la pared de enfrente, y para lograrlo solo tiene que avanzar mientras el frente este libre.

La función de mediaVuelta debe dar la media vuelta, y esto se logra con repetir 2 veces girar izquierda

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 dos nuevas funcionalidades: llegarPared y mediaVuelta.

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.

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, nuestro primera acción será colocar a Karel en ese lugar.

Te recomiendo que dibujes otros mundos y pruebes tu programa.


RECUERDA COMPARAR TU SOLUCIÓN CON LA DEL COMITÉ ESTATAL.





Last modified: Friday, 18 August 2023, 8:01 PM