Leçon 2 : Déclarations conditionnelles si/autrement
Dans cette leçon, vous allez créer un projet dans lequel le robot VR renversera au moins deux bâtiments sur le terrain de jeu Dynamic Castle Crasher. Un algorithme sera nécessaire pour résoudre le défi en utilisant des boucles et des retours de capteurs, car la disposition du terrain de jeu change à chaque réinitialisation.
Exemples d'aménagements dynamiques du terrain de jeu Castle Crasher :

Résultats d'apprentissage
- Identifiez qu'un bloc [If then else] est un bloc C qui exécute les blocs à l'intérieur de la branche If ou Else en fonction de la valeur booléenne signalée.
- Identifiez qu'un bloc [If then else] est normalement utilisé avec un bloc [Repeat] ou [Forever] afin de vérifier la condition plus d'une fois.
- Identifiez et décrivez pourquoi un bloc [If then else] est utilisé avec des boucles.
- Décrivez ce qui entraînerait l'exécution d'une succursale [If then else] dans un projet.
Comment utiliser un bloc [If then else]
Ce défi est différent du défi Castle Crasher de l'Unité 2. Le défi de l'unité 2 a utilisé un séquençage simple et des commandes de transmission pour renverser les bâtiments sur un terrain de jeu statique.

Les commandes du groupe motopropulseur à elles seules ne suffiront pas pour que le robot VR détruise deux bâtiments ou plus en raison des modifications de la disposition de l'aire de jeu du casse-tête du château dynamique. Un ensemble de commandes de transmission peut fonctionner dans un terrain de jeu, mais pas dans un autre. Un algorithme qui utilise des capteurs et une sélection sera nécessaire. Le bloc [If then else] sera utilisé pour créer un algorithme en ajoutant une sélection avec des instructions conditionnelles à ce projet.

Il y a deux étapes principales pour le robot VR pour renverser les bâtiments sur le terrain de jeu Dynamic Castle Crasher.
- Si le robot VR détecte un bâtiment du château, avancez vers lui pour le renverser.
-
Contrairement à tous les autres terrains de jeux, le terrain de jeu Dynamic Castle Crasher n'a pas de murs. Étant donné que les bâtiments sont les seuls objets de l'aire de jeux Dynamic Castle Crasher, le capteur de distance peut être utilisé pour détecter les bâtiments.

-
- Si le robot VR ne détecte pas un bâtiment de château, tournez et vérifiez à nouveau un bâtiment de château.
-
Étant donné que les bâtiments sont les seuls objets de l'aire de jeux Dynamic Castle Crasher, le capteur de distance peut être utilisé pour détecter les bâtiments du château.

-
Une fois les étapes 1 et 2 terminées, le robot VR peut revenir à l'étape 1 et utiliser le capteur de distance pour trouver le prochain bâtiment à renverser.
-
Lancez un nouveau projet dans VEXcode VR et nommez le projet Unit9Lesson2.

-
Ajoutez deux blocs [Commentaire] dans l'espace de travail et remplissez les étapes décrites ci-dessus.

-
Un bloc [If then else] peut être utilisé pour déclencher chacune des actions décrites ci-dessus. Chaque action dépend de si la condition booléenne dans le bloc [If then else] rapporte TRUE ou FALSE. Ajoutez un bloc [If then else] sous les blocs [Comment].

Pour votre information
Le bloc [If then else] est un bloc C qui accepte les blocs rapporteurs booléens comme entrée. Le bloc [If then else] est une instruction conditionnelle qui contrôle le flux d'un projet. Le bloc [If then else] exécutera une séquence d'instructions particulière si la condition est remplie, et un autre ensemble d'instructions si la condition N'EST PAS remplie, « ramifiant » ainsi le flux du projet. Une seule branche dans le [If then else] sera exécutée.

- Si la condition est signalée comme VRAIE, les blocs à l'intérieur de la branche If Then sont exécutés.
- Si la condition est signalée comme FAUSSE, les blocs à l'intérieur de la branche Else sont exécutés.

Une fois que tous les blocs à l'intérieur de l'une des branches sont exécutés, le projet passera au bloc suivant en dehors du bloc [If then else].
-
Dans ce projet, le capteur de distance peut être utilisé pour détecter les bâtiments sur le terrain de jeu. Ajoutez un <Distance found object> bloc au bloc [If then else].

Pour votre information
Le <Distance found object> bloc est un bloc rapporteur booléen qui signale si le capteur de distance a trouvé un objet devant le robot VR. Ce bloc indique VRAI lorsqu'il y a un objet ou une surface à moins de 3000 millimètres (mm) du robot VR.

-
Maintenant, chaque branche du bloc [If then else] doit être définie à l'aide des commentaires créés au début du projet. Lorsque le <Distance found object> bloc rapporte VRAI, le robot VR doit se diriger vers ce bâtiment pour le renverser. Déplacez ce bloc [Commentaire] vers la branche « Si alors » du projet.

-
Déplacez l'autre bloc [Commentaire] vers la branche « Autre » du projet pour savoir ce qui devrait se passer si le robot VR ne détecte PAS un bâtiment.

-
Ajoutez un bloc [Drive] dans la branche « If Then » du bloc [If then else].

-
Lorsque le <Distance found object> bloc signale FAUX, le robot VR devra faire demi-tour et trouver un bâtiment sur le terrain de jeu. Ajoutez un bloc [Turn] sous le bloc [Comment] dans la branche « Else » du bloc [If then else].

-
Avant de tester le projet, un bloc supplémentaire doit être ajouté. Les blocs [If then else] ne vérifieront la condition qu'une seule fois avant de passer au bloc suivant dans la pile. Dans l'unité 7, un bloc [Forever] a été ajouté au projet pour demander au robot VR de vérifier à plusieurs reprises l'état du capteur Down Eye. Pour vous assurer que l'état du capteur de distance est vérifié à plusieurs reprises, faites glisser un bloc [Forever] dans l'espace de travail autour du bloc [If then else].

-
Ouvrez le terrain de jeu Dynamic Castle Crasher et exécutez le projet.

-
Une fois que le robot VR a renversé au moins deux bâtiments, rechargez l'aire de jeux et exécutez le projet sur une autre disposition de l'aire de jeux Dynamic Castle Crasher.

-
À chaque exécution du projet, le robot VR tournera jusqu'à ce qu'un bâtiment soit détecté par le capteur de distance, puis se dirigera vers ce bâtiment pour le renverser.

- Pendant le déroulement du projet, le robot VR peut pousser une pièce de construction jusqu'au bord et tomber du terrain de jeu. En effet, le <Distance found object> bloc signale toujours qu'il y a un objet devant le robot VR. Lorsque ce bloc rapporte VRAI, le robot VR avance. Amener le robot VR à tomber de la table.
Sélectionnez le bouton Suivant pour continuer le reste de cette leçon.