Solución de limpiando la casa
Entendiendo el problema
En este problema nos piden recoger todos los zumbadores.
Idea de solución
Para esta solución aplicaremos la idea de colocar a Karel en un lugar en el cual es práctico recoger los zumbadores.
Si primero llevamos a Karel a la pared que está enfrente de él, y le damos media vuelta, ya solo bastaría recoger los zumbadores.
Usa un cuaderno donde puedas dibujar este proceso. En la siguiente imagen te muestro el mío.
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, otra que se llame mediaVuelta, y una última que se llame recoger. Imagina que existiera un Dios de los algoritmos al cual le pudieras pedir las tres nuevas funciones. Siendo así, nuestra idea de solución quedaría de la siguiente manera:
- llegarPared
- mediaVuelta
- recoger
Como tú eres el Dios de los algoritmos, te toca escribir el programa.
La función de llegarPared tiene como finalidad que Karel llegue a la pared de enfrente, y para lograrlo solo tiene que avanzar mientras el frente esté libre.
La función de mediaVuelta debe dar la media vuelta, y esto se logra con dos girar izquierda
La función de recoger es un poco mas complicada, ya que Karel debe avanzar mientras el frente esté libre, y en cada casilla debe preguntar si esta junto a zumbador para recogerlo. Observa que al final vuelvo a preguntar si está junto a zumbador para recogerlo.
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 3 nuevas funcionalidades: llegarPared, mediaVuelta y recoger.
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.