6. Detectando y evitando obstáculos#

6.1. El problema#

Vamos a simular un robot que se va a mover continuamente en su mundo simulado. Se va a ir moviendo de tal manera que cuando encuentre un obstáculo, para y gira 100 grados a la derecha para esquivarlo. Y sigue avanzando a una velocidad de 50.

Verás que el robot no parará nunca y simplemente recorrerá todo el escenario detectando obstáculos (los bordes son obstáculos también) y esquivándolos. Como si tuviera un propósito propio (recuerda la definición de un robot - Robots).

Además, cada vez que encuentre un obstáculo, dirá Encontré un obstáculo. Giro y avanzo. Para ver qué escribe en la pantalla tendrás que activar la vista de robot.

Solución

Ya se van complicando un poquito los retos. En este caso se incluyen instrucciones de los tres tipos, y además tienes que obtener valores de los sensores e incluirlos en las condiciones de las instrucciones. En este caso el algoritmo será el siguiente:

  1. Repite indefinidamente

  2. Avanzar a una velocidad de 50

  3. Si detecta un obstáculo (a 20cm):

    1. Se para

    2. Habla y dice el texto

    3. Gira 100º a la derecha

  4. Sigue con el bucle

../../_images/reto-6.webp

Usé también una variable (giro) aunque no es imprescindible. Eso te permite, de forma sencilla ver como se comporta sin en vez de girar 100º, gira 125º. Haz la prueba.