Leçon 4 : Comportements répétés
Dans la leçon précédente, vous avez observé comment utiliser les instructions if pour que le robot VR vérifie les conditions. Cependant, en raison du flux du projet, les conditions dans les instructions if ne sont vérifiées qu'une seule fois. Dans cette leçon, vous découvrirez une boucle infinie et comment elle peut être utilisée pour résoudre le défi du labyrinthe de disques.

Résultats d'apprentissage
- Identifiez qu'une boucle infinie while répète les comportements à l'intérieur de la boucle pour toujours.
- Décrivez pourquoi une boucle infinie while serait utilisée dans un projet.
- Décrivez le déroulement d'un projet comportant plusieurs instructions if à l'intérieur d'une boucle infinie while .
- Expliquez pourquoi les instructions if sont utilisées avec des boucles infinies while .
Vérification répétée des conditions
Comme observé dans la leçon précédente, l’instruction if ne vérifie une condition qu’une seule fois. Pour que les conditions contenues dans les instructions if soient vérifiées à plusieurs reprises, le projet doit revenir au début encore et encore. Pour ce faire, une boucle infinie while est nécessaire.
while True :
wait (5, MSEC)Une boucle infinie while utilise une condition qui est toujours évaluée à True. Tandis que les boucles exécutent le corps de la boucle lorsque la condition est True, de sorte que les commandes à l'intérieur de la boucle se répètent à l'infini.
La boucle infinie while et le problème du labyrinthe à disques
Pour que le robot VR se comporte comme nous le souhaitons et parvienne à naviguer avec succès dans le labyrinthe de disques, les conditions définies par les instructions si doivent être vérifiées à plusieurs reprises lorsque le robot VR se déplace dans l'aire de jeu. L'ajout d'une boucle infinie while à l'ensemble du projet permettra que cela se produise car toutes les instructions if contenues dans la boucle infinie while du projet ci-dessous sont vérifiées de manière répétée jusqu'à ce que le projet soit arrêté.
Notez l'indentation ici. Toutes les instructions if sont indentées pour être dans la boucle infinie while. La fin de la boucle infinie while est notée par la commande wait.
def main() :
while True :
# If front eye detects green then turn right
if front_eye.detect (GREEN) :
drivetrain.turn_for (RIGHT, 90, DEGREES)
# If front eye detects blue then turn left
if front_eye.detect (BLUE) :
drivetrain.turn_for (LEFT, 90, DEGREES)
# If front eye detects red then stop
if front_eye.detect (RED) :
drivetrain.stop ()
# If front eye detects none then drive forward
if front_eye.detect (NONE) :
drivetrain.drive (FORWARD)
wait(5, MSEC)Dans le projet de la leçon précédente, les conditions dans les instructions si n'ont été vérifiées qu'une seule fois. Étant donné que les conditions dans les instructions si n'ont été vérifiées qu'une seule fois, le robot VR a continué à avancer indéfiniment car la condition selon laquelle aucune couleur n'était détectée était signalée comme vraie au début du projet.
Maintenant que la boucle infinie while a été ajoutée, chaque condition des instructions if sera vérifiée à plusieurs reprises.
- La condition de la boucle infinie while est toujours vraie, et donc le code à l'intérieur de la boucle infinie while s'exécutera toujours. Cela vérifiera en permanence les conditions des instructions si pendant l'exécution du projet.
- N'oubliez pas que « l'intérieur » d'une boucle while est indiqué par une indentation.
- Pendant le déroulement du projet, si la condition de l'instruction if est vraie, les commandes à l'intérieur de l'instruction if sont exécutées. Si la condition de l'instruction if est fausse, les commandes à l'intérieur de l'instruction if ne sont pas exécutées et le flux du projet continuera jusqu'à la commande suivante. Cela permet au robot VR d'effectuer des comportements discrets tels que tourner ou s'arrêter une fois qu'il détecte une certaine couleur.
- Si instructions sont utilisées avec des boucles infinies tandis que pour garantir que les conditions sont constamment vérifiées, combinant essentiellement le flux de projet des instructions si dans celui de la boucle.
Sélectionnez le bouton Suivant pour continuer le reste de cette leçon.