Lección 4: Flujo del proyecto con bucles anidados
Recoger los dos discos siguientes
-
Ahora que el robot VR está frente a los discos rojos, el robot VR tendrá que repetir los mismos comportamientos que se utilizaron para recoger el disco azul, con el fin de recoger y mover el disco rojo. Los comportamientos de conducir hacia adelante para recoger el disco, darse la vuelta y conducir de vuelta al mismo objetivo de color para dejar el disco.
-
Una vez que se mueve el primer disco rojo, el robot VR deberá conducir hasta el objetivo verde y realizar las mismas acciones que se utilizaron para mover el disco azul y rojo, para mover el primer disco verde.
- Para repetir comportamientos varias veces, se puede utilizar un bucle por.
-
Agregue un bucle para en la parte superior del proyecto, encima del primer comentario, y configure el parámetro de función rango en '3'. Asegúrese de que el bucle para esté sangrado dentro de la definición principal.
def main(): for repeat_count in range(3): wait(5, MSEC)
-
Para copiar el código en el bucle for , será necesario prestar especial atención a la sangría. Primero, agregue espacio antes del comando wait , para que el bucle se vea así:
def main(): for repeat_count in range(3): wait(5, MSEC)
- A continuación, seleccione los comandos que desea colocar en el bucle for y cópielos y péguelos encima del comando wait . Tenga en cuenta que la sangría será incorrecta después de simplemente copiar y pegar. La línea indicadora gris del bucle para está rota y desconectada del comando esperar . Esta es una señal visual de que su proyecto no se ejecutará según lo previsto.
-
Seleccione los comandos dentro del bucle para y use "Tab" para sangrar correctamente los comandos dentro del bucle. Cuando está correctamente sangrada, la línea indicadora gris debe conectar el bucle para con el comando esperar para mostrar los límites del bucle externo. Cuando esté completo, su proyecto debe verse así:
def main(): for repeat_count in range(3): # 1. Conduzca al disco usando Down Eye Sensor mientras no estédown_eye.near_object () : drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.stop() # 2. Recoge el disco magnet.energize(BOOST) # 3. Conduzca hasta la meta usando el sensor de distancia drivetrain.turn_to_heading (180, GRADOS) mientras front_distance.get_distance (MM) > 200 :drivetrain.drive (FORWARD) wait(5, MSEC) drivetrain. stop() # 4. Suelte el disco en goalmagnet.energize (DROP ) drivetrain.drive_for(REVERSE, 100, MM) # 5. Gire y conduzca al siguiente objetivo drivetrain.turn_to_heading(90, GRADOS) drivetrain.drive_for(ADELANTE, 800, MM) # 6. Gire a discos drivetrain.turn_to_heading(0, GRADOS) espere(5, MSEC)
- Mire el video a continuación para ver cómo mover los comandos y ajustar la sangría como se describió anteriormente. En el videoclip, se resaltan las seis secciones de comentarios del proyecto y se abre el menú contextual. Se selecciona la opción ‘Cortar’ y luego el cursor se coloca debajo del comando for Loop. El menú contextual se abre de nuevo y se selecciona "Pegar". Los comandos entonces están dentro del bucle para , pero sangrados incorrectamente. Las seis secciones de comentarios se resaltan de nuevo y se pulsa ‘Tab’ en el teclado para sangrar correctamente el proyecto dentro del bucle.
- Abra Disk Mover Playground si aún no está abierto y ejecute el proyecto.
-
Cuando se ejecuta este proyecto, el robot VR recoge y deja caer un disco de cada color en su objetivo de color correspondiente.
Para su información
Tenga en cuenta que el robot de realidad virtual siguió chocando contra la pared. Se espera este comportamiento ya que el proyecto instruyó al robot de realidad virtual para que girara a la derecha y condujera hacia la siguiente meta, tres veces. La primera vez es conduciendo de azul a rojo. La segunda es de rojo a verde, y la tercera es de verde a la pared, ya que no hay otra portería de color. Detenga el proyecto una vez que el robot VR golpee la pared. El proyecto podría mejorarse para que el robot VR se detenga después de recoger y mover el disco verde, pero esto aumentaría la complejidad general del proyecto.
Preguntas
Seleccione un enlace a continuación para acceder al cuestionario de la lección.
Google Doc / .docx / .pdf