Leçon 4 : Utilisation de boucles imbriquées
Dans la leçon précédente, vous avez créé un projet pour demander au robot VR de se diriger vers, de ramasser et de déplacer les trois disques bleus du terrain de jeu Disk Mover dans l'objectif bleu. Dans cette leçon, vous allez créer un projet pour ramasser et déplacer un disque de chaque couleur dans son objectif coloré correspondant dans le Disk Mover Playground en utilisant des boucles imbriquées !

Résultats d'apprentissage
- Identifiez comment imbriquer des boucles.
- Décrire le flux d'un projet à travers des boucles imbriquées.
- Expliquez pourquoi des boucles imbriquées seraient utilisées dans un projet.
Que sont les boucles imbriquées ?
Dans les unités et leçons précédentes de ce cours, vous avez utilisé des boucles de la catégorie Contrôle telles que la boucle pour , la boucle pendant et les boucles infinies pendant pour répéter des comportements. Placer une boucle à l'intérieur d'une autre boucle est appelé « imbrication ». Les boucles imbriquées sont utiles dans les projets où un robot VR répète les mêmes comportements plus d'une fois, comme pour déplacer plusieurs disques sur le terrain de jeu. Les boucles d'imbrication peuvent organiser et condenser un projet, pour le rendre plus facilement compréhensible. Cela peut être utile pour mieux comprendre le contexte et l'objectif du code, ainsi que pour faciliter l'identification des erreurs et le dépannage d'un projet.
Par exemple, pour déplacer les trois disques bleus vers le but bleu, une boucle pour peut être utilisée pour répéter le processus de collecte d'un disque plusieurs fois. Le projet présenté ici place le projet de la leçon 3 pour déplacer le premier disque bleu vers le but bleu à l'intérieur d'une boucle pour , avec le paramètre défini sur 3. Notez comment les quatre sections du projet précédent sont indentées dans la boucle pour.
def main() :
for repeat_count in range(3) :
#1. Drive to the first disk
while not down_eye.near_object() :
drivetrain.drive(FORWARD)
wait(5, MSEC)
drivetrain.stop()
# 2. Prenez l'aimant à disque
.Énergisez (BOOST)
# 3. Conduisez jusqu'à l'
objectifdrivetrain.turn_to_heading (180, DEGRÉS)
pendantfront_distance.get_distance (MM) > 200 :
drivetrain.drive(FORWARD)
wait(5, MSEC)
drivetrain.stop()
# 4. Déposez le disque dans l'objectif
magnet.energize(DROP)
drivetrain.drive_for(REVERSE, 100, MM)
drivetrain.turn_to_heading(0, DEGRÉS)
wait(5, MSEC)Lorsque vous « imbriquez » des boucles, la boucle externe contrôle le nombre de fois que la boucle interne est exécutée. Dans ce projet, la boucle pour est la boucle externe et répétera les comportements de la boucle trois fois.
Les boucles intérieures sont les boucles contenues dans la boucle extérieure. Dans cet exemple, chacune des boucles while (pour accéder au disque et à l'objectif) sont des « boucles internes » qui sont exécutées chaque fois que le projet se déplace dans la boucle for .
Pour votre information
L'indentation est importante dans les projets VEXcode VR Python. Vous pouvez utiliser les lignes d'indicateur grises dans l'espace de travail comme une aide visuelle lors de l'imbrication des boucles, pour vous assurer que votre projet fonctionne comme prévu. Chaque ligne indique le début et la fin d'une boucle.

Flux d'un projet de boucle imbriquée
Dans cet exemple, chaque fois que la boucle pour s'exécute, un disque bleu est récupéré et renvoyé vers l'objectif bleu.
Après la première itération, le premier disque bleu est retourné à l'objectif bleu et le robot VR est tourné pour être prêt à collecter le deuxième disque.
Après la deuxième itération, le deuxième disque bleu est collecté et le robot VR est tourné pour être prêt à collecter le troisième disque.
Après la troisième itération, le troisième disque bleu est collecté et le robot VR s'arrête de bouger. La boucle pour a maintenant complété sa portée, le projet est donc terminé.

Sélectionnez le bouton Suivant pour continuer le reste de cette leçon.