Leçon 2 : Si d'autres déclarations
Dans cette leçon, vous créerez un projet où le robot VR renversera au moins deux châteaux 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 de configurations dynamiques de Castle Crasher Playground :

Résultats d'apprentissage
- Identifiez qu'une instruction if else exécute les commandes à l'intérieur de la branche 'if' ou 'else' en fonction de la valeur booléenne rapportée.
- Identifiez qu'une instruction if else est normalement utilisée avec une boucle for ou une boucle infinie while afin de vérifier la condition plus d'une fois.
- Identifiez et décrivez pourquoi une instruction if else est utilisée avec des boucles.
- Décrivez ce qui provoquerait l'exécution d'une branche « if » ou d'une branche « else » dans un projet avec une instruction if else.
Pourquoi utiliser une déclaration If Else ?
Le défi Crasher de château dynamique est différent du défi Crasher de château de l'unité 2. Le défi de l'unité 2 utilisait un séquençage simple et des commandes de transmission pour renverser les châteaux sur un terrain de jeu statique.
def main() :
drivetrain.set_drive_velocity(100, POUR CENT
) drivetrain.set_turn_velocity (100, POUR CENT
) drivetrain.drive_for (AVANT, 1550, MM
) drivetrain.turn_for (DROITE, 180, DEGRÉS
) drivetrain.drive_for (AVANT, 700, MM)
drivetrain.turn_for(DROITE, 90, DEGRÉS)Cependant, en raison des modifications apportées à la disposition de l'aire de jeux Dynamic Castle Crasher, les commandes du groupe motopropulseur ne suffiront pas à elles seules pour que le robot VR fasse tomber deux châteaux ou plus. 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 la sélection dans les itérations sera nécessaire. L'instruction if else sera utilisée pour créer un algorithme en ajoutant une sélection avec des instructions conditionnelles à ce projet.

L'énoncé If Else
L'instruction if else est une instruction qui accepte les conditions booléennes. L'instruction if else est une instruction conditionnelle qui contrôle le flux d'un projet. L'instruction if else exécutera une séquence particulière de commandes si la condition est remplie, sinon (lorsque la condition n'est pas remplie) un autre ensemble de commandes est exécuté – ce qui « ramifie » le flux du projet. Une seule branche dans le if else sera exécutée à la fois.
if condition :
pass
else :
pass- Si la condition est signalée comme vraie, les commandes à l'intérieur de la branche « if » sont exécutées.
- Si la condition est signalée comme fausse, les commandes à l'intérieur de la branche « else » sont exécutées.
- Une fois que toutes les commandes à l'intérieur de l'une des branches sont exécutées, le projet passera à la commande suivante en dehors de l'instruction if else.
Vous utilisez probablement souvent la logique si sinon dans vos actions quotidiennes. Par exemple, lorsque vous décidez de ce que vous devez prendre lorsque vous quittez la maison en fonction de la météo à l'extérieur, vous pouvez utiliser la logique. S' il pleut, prenez un parapluie ; sinon, prenez des lunettes de soleil.
La branche « Si » -
- Dans ce scénario, la condition « il pleut » est remplie, donc la branche « si » serait exécutée et vous prendriez un parapluie.

La branche « Else » -
- Dans ce scénario, la condition de « pluie » n'est pas remplie, de sorte que la branche « autre » serait exécutée, et vous prendriez des lunettes de soleil.

La déclaration If Else et le problème du crash de château dynamique
Il y a deux étapes principales pour que le robot VR réussisse à renverser des châteaux sur le terrain de jeu Dynamic Castle Crasher. Essentiellement, le robot VR doit être capable de localiser et de détecter les châteaux sur le terrain de jeu, puis de conduire pour les renverser. En termes d'instruction si sinon , cela pourrait être formulé comme suit :
- Si le robot VR détecte un château, avancez vers lui pour le renverser.

- Sinon, (lorsque le robot VR ne détecte pas de château), tournez et recherchez un château à un autre endroit sur l'aire de jeux.

Le capteur de distance du robot VR peut être utilisé pour détecter les châteaux sur ce terrain de jeu. Contrairement à tous les autres terrains de jeux, le terrain de jeu Dynamic Castle Crasher n'a pas de murs. Étant donné que les châteaux sont les seuls objets de l'aire de jeux Dynamic Castle Crasher, lorsque le capteur de distance détecte un objet, cet objet sera un château. Le robot VR devra vérifier l'état du capteur de distance à plusieurs reprises, de sorte qu'une fois ces deux étapes de base terminées, le robot VR puisse revenir en arrière et utiliser le capteur de distance pour trouver le prochain château à renverser.
Planification d'un projet avec la déclaration If Else
- Lancez un nouveau projet et sélectionnez le terrain de jeu Dynamic Castle Crasher lorsque vous y êtes invité.

- Nommez le projet Unit9Lesson2.

-
Ajoutez des commentaires dans l'espace de travail qui décrivent l'intention du projet, en fonction des étapes identifiées ci-dessus. Le premier commentaire explique l'état de l'instruction if else, et les deux suivants expliquent les actions de chaque branche de l'instruction if else. N'oubliez pas que les commentaires Python commencent par un symbole # (livre). Votre projet doit ressembler à ceci :
def main() : # Le capteur de distance détecte-t-il un château ? # Chateau d'accident détecté par un capteur de distance # Tournez pour trouver un château à l'aide du capteur de distance -
Une instruction if else peut être utilisée pour déclencher chacune des actions décrites ci-dessus. Chaque action dépend de si la condition booléenne dans l'instruction if else indique True ou False. Ajoutez une instruction if else après les commentaires. Votre projet devrait maintenant ressembler à ceci :
def main() : # Le capteur de distance détecte-t-il un château ? # Crash Castle détecté par un capteur de distance # Tournez pour trouver un château à l'aide du capteur de distance si la condition : pass else : pass -
Chaque branche de l'instruction if else peut être définie à l'aide des commentaires. Si le capteur de distance détecte un château, le robot VR doit conduire pour renverser le château ; sinon, il doit tourner pour détecter un château. Déplacez les branches if et else du projet pour les aligner sur les commentaires décrivant les actions associées. Votre projet devrait maintenant ressembler à ceci :
def main() : # Le capteur de distance détecte-t-il un château ? if condition : # Crash castle detected by a Distance Sensor pass else : # Turn to find a castle using the Distance Sensor pass
Sélectionnez le bouton Suivant pour continuer le reste de cette leçon.