Lección 2: Declaraciones If Else
En esta lección, crearás un proyecto en el que el robot VR derriba al menos dos castillos 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 Castle Crasher Playground:

Resultados de aprendizaje
- Identifique que una instrucción if else ejecuta los comandos dentro de la rama 'if' o 'else' en función del valor booleano informado.
- Identifique que una declaración if else se usa normalmente con un bucle for o un bucle infinito while para verificar la condición más de una vez.
- Identifique y describa por qué se utiliza una declaración if else con bucles.
- Describa qué causaría que se ejecutara una rama "if" o una rama "else" en un proyecto con una instrucción if else.
¿Por qué usar una declaración If Else?
El desafío Dynamic Castle Crasher es diferente del desafío Castle Crasher de la Unidad 2. El desafío de la Unidad 2 utilizaba una secuencia simple y comandos de transmisión para derribar los castillos en un patio de recreo estático.
def main():
transmisión.set_drive_velocity(100, POR CIENTO
) transmisión.set_turn_velocity (100, POR CIENTO
) transmisión.drive_for (ADELANTE, 1550, MM
) transmisión.turn_for (DERECHA, 180, GRADOS
) transmisión.drive_for (ADELANTE, 700, MM)
transmisión.turn_for(DERECHA, 90, GRADOS)Sin embargo, debido a los diseños cambiantes del Dynamic Castle Crasher Playground, los comandos de Drivetrain por sí solos no serán suficientes para que el VR Robot derribe dos o más castillos. Un conjunto de comandos de transmisión puede funcionar en un patio de recreo, pero no en otro. Se necesitará un algoritmo que utilice sensores y selección en iteraciones. La instrucción if else se utilizará para crear un algoritmo añadiendo selección con instrucciones condicionales a este proyecto.

La declaración If Else
La instrucción if else es una instrucción que acepta condiciones booleanas. La instrucción if else es una instrucción condicional que controla el flujo de un proyecto. La instrucción if else ejecutará una secuencia particular de comandos si se cumple la condición, de lo contrario (cuando no se cumple la condición) se ejecuta otro conjunto de comandos, "ramificando" así el flujo del proyecto. Sólo se ejecutará una rama en el if else a la vez.
if condition:
pass
else:
pass- Si la condición se informa como Verdadero, se ejecutan los comandos dentro de la rama 'si'.
- Si la condición se informa como False, se ejecutan los comandos dentro de la rama 'else'.
- Una vez que se ejecuten todos los comandos dentro de una de las ramas, el proyecto pasará al siguiente comando fuera de la instrucción if else.
Es probable que uses la lógica de lo contrario a menudo en tus acciones cotidianas. Por ejemplo, al decidir qué necesitas llevar cuando sales de casa en función del tiempo que haga fuera, puedes usar la lógica if else. If it is raining, lleva un paraguas; else lleva gafas de sol.
La rama 'If' -
- En este escenario, se cumple la condición de 'lluvia', por lo que se ejecutaría la rama 'si' y se llevaría un paraguas.

La sucursal 'Else' -
- En este escenario, no se cumple la condición de 'lloviendo', por lo que se ejecutaría la rama 'else', y te llevarías unas gafas de sol.

La declaración If Else y el problema del choque dinámico del castillo
Hay dos pasos principales para que el robot VR derribe castillos con éxito en el Dynamic Castle Crasher Playground. Esencialmente, el robot VR debe ser capaz de localizar y detectar castillos en el patio de recreo, y luego conducir para derribarlos. En términos de una declaración if else , esto podría formularse de la siguiente manera:
- Si el robot VR detecta un castillo, dirígete hacia él para derribarlo.

- De lo contrario, (cuando el robot de realidad virtual no detecte un castillo), gire y busque un castillo en otra ubicación en el patio de recreo.

El sensor de distancia en el robot VR se puede utilizar para detectar castillos en este patio de recreo. A diferencia de cualquier otro parque infantil, el Dynamic Castle Crasher Playground no tiene paredes. Debido a que los castillos son los únicos objetos en el Dynamic Castle Crasher Playground, cuando el sensor de distancia detecta un objeto, ese objeto será un castillo. El robot VR deberá verificar el estado del sensor de distancia repetidamente, de modo que una vez que se completen estos dos pasos básicos, el robot VR pueda volver atrás y usar el sensor de distancia para encontrar el próximo castillo a derribar.
Planificación de un proyecto con la declaración If Else
- Inicie un nuevo proyecto y seleccione Dynamic Castle Crasher Playground cuando se le solicite.

- Nombra el proyecto Unit9Lesson2.

-
Añada comentarios en el espacio de trabajo que describan la intención del proyecto, en función de los pasos identificados anteriormente. El primer comentario explica la condición de la instrucción if else, y los dos siguientes explican las acciones de cada rama de la instrucción if else. Recuerda que los comentarios de Python comienzan con un símbolo # (libra). Tu proyecto debería verse así:
def main(): # ¿El sensor de distancia detecta un castillo? # Castillo estrellado detectado por un sensor de distancia # Gira para encontrar un castillo usando el sensor de distancia -
Se puede utilizar una declaración if else para activar cada una de las acciones descritas anteriormente. Cada acción depende de si la condición booleana en la instrucción if else se informa como Verdadero o Falso. Agregue una declaración if else después de los comentarios. Tu proyecto ahora debería verse así:
def main(): # ¿El sensor de distancia detecta un castillo? # Castillo estrellado detectado por un sensor de distancia # Gira para encontrar un castillo usando el sensor de distancia si condición: pasa de lo contrario: pasa -
Cada rama de la instrucción if else se puede definir utilizando los comentarios. Si el sensor de distancia detecta un castillo, el robot VR debe conducir para derribar el castillo; de lo contrario debe girar para detectar un castillo. Mueva las ramas if y else del proyecto para alinearse con los comentarios que describen las acciones asociadas. Tu proyecto ahora debería verse así:
def main(): # ¿El sensor de distancia detecta un castillo? if condition: # Castillo de choque detectado por un pase de sensor de distancia else: # Gira para encontrar un castillo usando el pase de sensor de distancia
Seleccione el botón Siguiente para continuar con el resto de esta lección.