Skip to main content

Lección 4: Uso de bloques [Forever]

Comprobación repetida de las condiciones

Como se observó en la lección anterior, el bloque [If then] solo verifica las condiciones una vez. Para que las condiciones contenidas en los bloques [If then] se verifiquen repetidamente, se necesita un bloque [Forever] C. El bloque [Forever] es un bloque C de la categoría Control que repite los comportamientos contenidos en su interior, para siempre.

Un bloque vacío de VEXcode VR Forever.
  • Cargue el proyecto Unit7Lesson3 de la lección anterior.

    El mismo VEXcode VR bloquea el proyecto desde el final de la última lección. Comienza con un bloque When Started y luego hay un bloque If Then con un parámetro booleano de un bloque Color Sensing que dice '¿El ojo frontal detecta verde?' y un bloque Turn right for 90 degrees dentro del contenedor If. A continuación, hay la misma pila de bloques si se bloquea y se gira, pero se cambia a girar a la izquierda 90 grados si se detecta el color azul. A continuación, se utiliza el mismo bloque si se utiliza la pila de bloques de giro, pero se cambia a Detener conducción si se detecta el color rojo. Por último, lo mismo si se utiliza la pila de bloques de bloque y giro, pero se cambia a Conducir hacia adelante si no se detecta ningún color.
  • Cambie el nombre del proyecto Unit7Lesson4.

    Barra de herramientas VEXcode VR con el botón 'Project Name' resaltado en un cuadro rojo, a la izquierda del botón Select Playground. El nombre del proyecto es Unidad 7 Lección 4.
  • Arrastre un bloque [Forever] al espacio de trabajo y adjúntelo a la parte superior de la pila de bloques. Tenga en cuenta que esto incluirá los cuatro bloques [If then] dentro del bloque [Forever].

    El VEXcode VR bloquea el proyecto desde antes, pero con una flecha que indica la adición de un bloque Forever envuelto alrededor de todas las instrucciones if. Comienza con un bloque When Started y luego hay una serie de cuatro declaraciones if envueltas en un bloque Forever. Primero es un bloque If Then con un parámetro booleano de un bloque de detección de color que dice '¿El ojo frontal detecta verde?' y un bloque Turn right for 90 degrees dentro del contenedor If. A continuación, hay la misma pila de bloques si se bloquea y se gira, pero se cambia a girar a la izquierda 90 grados si se detecta el color azul. A continuación, se utiliza el mismo bloque si se utiliza la pila de bloques de giro, pero se cambia a Detener conducción si se detecta el color rojo. Por último, lo mismo si se utiliza la pila de bloques de bloque y giro, pero se cambia a Conducir hacia adelante si no se detecta ningún color.

    Para su información

    Los bloques se pueden añadir al principio o a la mitad de la pila del proyecto alineando la parte superior del bloque, con la colocación deseada en la pila.

    Una visualización de cómo se puede arrastrar un bloque Forever a la parte superior de una pila y envolver automáticamente el contenido de la pila. El proyecto VEXcode VR Blocks es el mismo que antes y está contenido en un bucle para siempre. Las instrucciones if son las siguientes: Primero es un bloque If Then con un parámetro booleano de un bloque de detección de color que dice '¿El ojo frontal detecta verde?' y un bloque Turn right for 90 degrees dentro del contenedor If. A continuación, hay la misma pila de bloques si se bloquea y se gira, pero se cambia a girar a la izquierda 90 grados si se detecta el color azul. A continuación, se utiliza el mismo bloque si se utiliza la pila de bloques de giro, pero se cambia a Detener conducción si se detecta el color rojo. Por último, lo mismo si se utiliza la pila de bloques de bloque y giro, pero se cambia a Conducir hacia adelante si no se detecta ningún color.

    Este vídeo a continuación muestra cómo añadir el [bloque Forever] alrededor de los cuatro bloques [If then] en el proyecto actual. Observe que la parte superior del bloque [Forever] está alineada justo después de [When started] y el primer bloque [If then]. El bloque [Forever] luego envuelve todos los siguientes bloques en la pila del proyecto.

  • Ahora que el bloque [Forever] se ha añadido al proyecto para que todos los bloques [If then] tengan sus condiciones comprobadas constantemente, abra el Disk Maze Playground y ejecute el proyecto.
  • Cuando se ejecute este proyecto, el VR Robot navegará por el Disk Maze Playground de principio a fin. Una vez que el robot VR detecte el rojo, dejará de conducir.

    Una vista de arriba hacia abajo del VR Disk Maze Playground, con el robot VR pasando cada disco y descansando en el disco rojo final.
  • En el proyecto de la lección anterior, las condiciones dentro de los bloques [If then] solo se verificaron una vez. Dado que las condiciones dentro de los bloques [If then] solo se verificaron una vez, el robot VR avanzó para siempre porque la condición de no detección de color se informó como VERDADERA.

    Un diagrama del flujo de la lógica en nuestro proyecto de bloques VEXcode VR sin el bloque Forever. Las flechas indican que cada instrucción if solo se ejecuta una vez antes de que finalice el proyecto, lo que hace que nuestro proyecto sea mucho menos receptivo de lo que nos gustaría. Nuestro proyecto comprueba si el ojo frontal detecta verde y, de ser así, gira a la derecha 90 grados. A continuación, si el ojo delantero detecta azul, gira a la izquierda 90 grados. A continuación, si el ojo delantero detecta rojo, deja de conducir. Por último, si el ojo delantero no detecta ninguno, conduce hacia adelante.
  • Ahora que se ha añadido el bloque [Forever], cada condición de los bloques [If then] C se comprobará repetidamente. Durante el flujo del proyecto, si la condición del bloque [If then] C es VERDADERA, se ejecutan los bloques dentro del bloque [If then] C. Si la condición del bloque [If then] C es FALSA, se omiten los bloques dentro del bloque [If then] C y el flujo del proyecto continuará al siguiente bloque de la pila. Esto permite que el robot VR realice comportamientos discretos, como girar o detenerse una vez que detecta un determinado color.

    Un diagrama del flujo de lógica del proyecto de bloques VEXcode VR a la izquierda que recorre un ejemplo del robot VR en la imagen de la derecha. La imagen muestra al robot VR alcanzando un disco azul y girando a la izquierda. El diagrama indica que las sentencias if se repiten para siempre, y cada una se comprueba en cada bucle. Después de que el ojo frontal no detecta el verde, busca el color azul siguiente que devuelve verdadero y gira el robot a la izquierda 90 grados. Después de eso, el flujo de la lógica continúa por la pila, buscando rojo y nada.
  • Los bloques [If then] se utilizan con bloques [Forever] para garantizar que las condiciones se verifiquen constantemente.

    Un diagrama del flujo de lógica en nuestro proyecto de bloques VEXcode VR con el bloque externo Forever incluido. Cada flecha ahora está etiquetada con lo que está midiendo ese comando lógico, y una flecha amarilla muestra el flujo de lógica que se repite continuamente a través de cada bloque en el bucle Forever. Está claro que todas las sentencias if se comprueban en cada bucle del bloque forever, sin importar si el resultado es verdadero o falso.

Uso de bloques de interruptores 

Este es el bloque Switch [Forever]. El comando Switch de Python para Forever crea un bucle while donde la condición es Verdadera. Los comandos anidados dentro del bucle cuando se repiten para siempre, ya que la condición siempre es verdadera. 

Una versión de bloque de interruptor VEXcode VR del bloque Forever. El código de Python dice 'while True:', que es el equivalente en Python de una sentencia forever.

Preguntas

Seleccione un enlace a continuación para acceder al cuestionario de la lección.

Google Doc / .docx / .pdf