Lección 2: Declaraciones condicionales If/Else
En esta lección, crearás un proyecto en el que el robot VR derriba al menos dos edificios en el Dynamic Castle Crasher Playground. Se necesitará un algoritmo para resolver el desafío utilizando bucles y retroalimentación del sensor porque el diseño del patio de recreo cambia con cada reinicio.
Ejemplos de diseños dinámicos de patios de recreo de colisiones de castillos:

Resultados de aprendizaje
- Identifique que un bloque [If then else] es un bloque C que ejecuta los bloques dentro de la rama If o Else en función del valor booleano informado.
- Identifique que un bloque [If then else] se usa normalmente con un bloque [Repeat] o [Forever] para verificar la condición más de una vez.
- Identifique y describa por qué se utiliza un bloque [If then else] con bucles.
- Describa qué causaría que se ejecutara una rama [If then else] en un proyecto.
Cómo usar un bloque [If then else]
Este desafío es diferente del desafío Castle Crasher en la Unidad 2. El desafío de la Unidad 2 utilizó una secuencia simple y comandos de transmisión para derribar los edificios en un patio de recreo estático.

Los comandos de transmisión por sí solos no serán suficientes para que el robot VR derribe dos o más edificios debido a los diseños cambiantes del Dynamic Castle Crasher Playground. Un conjunto de comandos de transmisión puede funcionar en un patio de recreo, pero no en otro. Será necesario un algoritmo que utilice sensores y selección. El bloque [If then else] se utilizará para crear un algoritmo añadiendo selección con sentencias condicionales a este proyecto.

Hay dos pasos principales para que el robot VR derribe edificios en el Dynamic Castle Crasher Playground.
- Si el robot VR detecta un edificio del castillo, dirígete hacia él para derribarlo.
-
A diferencia de cualquier otro parque infantil, el Dynamic Castle Crasher Playground no tiene paredes. Debido a que los edificios son los únicos objetos en el Dynamic Castle Crasher Playground, el sensor de distancia se puede utilizar para detectar edificios.

-
- Si el robot de realidad virtual no detecta un edificio del castillo, vuelva a girar y compruebe si hay un edificio del castillo.
-
Debido a que los edificios son los únicos objetos en el Dynamic Castle Crasher Playground, el sensor de distancia se puede utilizar para detectar edificios del castillo.

-
Una vez que se completen los pasos 1 y 2, el robot VR puede volver al paso 1 y usar el sensor de distancia para encontrar el siguiente edificio a derribar.
-
Inicie un nuevo proyecto en VEXcode VR y nombre el proyecto Unit9Lesson2.

-
Añade dos bloques [Comment] al espacio de trabajo y completa los pasos descritos anteriormente.

-
Se puede utilizar un bloque [If then else] para activar cada una de las acciones descritas anteriormente. Cada acción depende de si la condición booleana en el bloque [If then else] informa VERDADERO o FALSO. Añade un bloque [If then else] debajo de los bloques [Comment].

Para su información
El bloque [If then else] es un bloque C que acepta bloques informadores booleanos como entrada. El bloque [If then else] es una instrucción condicional que controla el flujo de un proyecto. El bloque [If then else] ejecutará una secuencia particular de instrucciones si se cumple la condición, y otro conjunto de instrucciones si NO se cumple la condición, "ramificando" así el flujo del proyecto. Solo se ejecutará una rama en [If then else].

- Si la condición se informa como VERDADERA, se ejecutan los bloques dentro de la rama If Then.
- Si la condición se informa como FALSA, se ejecutan los bloques dentro de la rama Else.

Una vez que se ejecuten todos los bloques dentro de una de las ramas, el proyecto pasará al siguiente bloque fuera del bloque [If then else].
-
En este proyecto, el sensor de distancia se puede utilizar para detectar edificios en el patio de recreo. Añade un <Distance found object> bloque al bloque [If then else].

Para su información
El <Distance found object> bloque es un bloque reportero booleano que informa si el sensor de distancia ha encontrado un objeto frente al robot VR. Este bloque informa VERDADERO cuando hay un objeto o superficie a menos de 3000 milímetros (mm) del robot VR.

-
Ahora cada rama del bloque [If then else] debe definirse utilizando los comentarios creados al comienzo del proyecto. Cuando el <Distance found object> bloque se informa como VERDADERO, el robot de realidad virtual debe conducir hacia ese edificio para derribarlo. Mueva ese bloque [Comment] a la rama ‘If Then’ del proyecto.

-
Mueva el otro bloque [Comment] a la rama ‘Else’ del proyecto para saber qué debería pasar si el robot VR NO detecta un edificio.

-
Añade un bloque [Drive] en la rama ‘If Then’ del bloque [If then else].

-
Cuando el <Distance found object> bloque informa FALSO, el robot VR tendrá que darse la vuelta y encontrar un edificio en el patio de recreo. Añade un bloque [Turn] debajo del bloque [Comment] en la rama ‘Else’ del bloque [If then else].

-
Antes de probar el proyecto, es necesario añadir un bloque más. Los bloques [If then else] solo verificarán la condición una vez antes de pasar al siguiente bloque de la pila. En la Unidad 7, se añadió un bloque [Forever] al proyecto para indicar al Robot VR que verificara repetidamente el estado del Sensor Down Eye. Para asegurarse de que el estado del sensor de distancia se compruebe repetidamente, arrastre un bloque [Forever] al espacio de trabajo alrededor del bloque [If then else].

-
Abre el Dynamic Castle Crasher Playground y ejecuta el proyecto.

-
Una vez que el robot VR haya derribado al menos dos edificios, recargue el patio de recreo y ejecute el proyecto en otro diseño del Dynamic Castle Crasher Playground.

-
En cada ejecución del proyecto, el robot VR girará hasta que el sensor de distancia detecte un edificio y luego se dirigirá hacia ese edificio para derribarlo.

- Durante la ejecución del proyecto, el robot de realidad virtual puede empujar una pieza de construcción hasta el borde y caerse del patio de recreo. Esto se debe a que el <Distance found object> bloque todavía informa que hay un objeto frente al robot de realidad virtual. Cuando este bloque se informa como VERDADERO, el robot VR avanza. Hacer que el robot de realidad virtual se caiga de la mesa.
Seleccione el botón Siguiente para continuar con el resto de esta lección.