Skip to main content

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 !

Une vue de haut en bas du Disk Mover Playground avec le premier disque de chaque couleur dans l'objectif de couleur correspondant. Le robot VR fait face à la paroi latérale droite au bord du but vert, dans le coin inférieur droit.

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.

Le projet d'en haut avec la boucle for surlignée dans une case rouge. Indenté sous la définition principale, le deux-points pour le nombre de traits de soulignement répétés dans la plage (3) est le début de la boucle, et les quatre sections du projet sont indentées sous cela. Une commande wait est alignée avec la commande for loop en bas du projet, indiquant où la boucle se termine.

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 .Le même projet vu d'en haut, avec chacune des boucles intérieures en surbrillance dans une boîte rouge. Les première et troisième sections de commentaires du projet contiennent des boucles while pour utiliser les capteurs du robot pour entraîner jusqu'à ce qu'un disque soit détecté, puis jusqu'à ce que le mur soit détecté.

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.

Le même projet vu d'en haut avec les lignes directrices mises en évidence dans les cases rouges, montrant l'alignement de l'indentation de chacune des boucles intérieures par rapport au reste du projet. La ligne de boucle for s'étend directement jusqu'à la commande d'attente finale. Et chacune des lignes de boucle while s'étend jusqu'aux commandes d'arrêt.

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.

Une image côte à côte du projet depuis le haut, affichée dans l'espace de travail à gauche, et la fenêtre Playground affichée à droite. Le projet comporte une flèche orange enroulée à partir de la commande for loop autour de l'ensemble du projet, illustrant la première itération de la boucle for. Sur le terrain de jeu, le premier disque bleu est dans le but bleu, et le robot VR est positionné face aux disques bleus restants, à l'extrémité avant du but, indiquant la position du robot après la première itération.

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.

Une image côte à côte du projet depuis le haut, affichée dans l'espace de travail à gauche, et la fenêtre Playground affichée à droite. Le projet comporte une flèche orange enroulée à partir de la commande for loop autour de l'ensemble du projet, illustrant la deuxième itération de la boucle for. Sur le terrain de jeu, 2 disques bleus sont dans le but bleu, et le robot VR est positionné face au disque bleu restant, à l'extrémité avant du but, indiquant la position du robot après la deuxième itération.

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é. 

Une image côte à côte du projet depuis le haut, affichée dans l'espace de travail à gauche, et la fenêtre Playground affichée à droite. Le projet comporte une flèche orange enroulée à partir de la commande for loop autour de l'ensemble du projet, illustrant la troisième itération de la boucle for. Sur le terrain de jeu, les trois disques bleus sont dans le but bleu, et le robot VR est positionné face au but juste à l'extérieur de la zone de but, indiquant la position du robot après l'itération finale.

 

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