Leçon 4 : Flux de projet avec des boucles imbriquées
Collectez les deux disques suivants
-
Maintenant que le robot VR fait face aux disques rouges, le robot VR devra répéter les mêmes comportements que ceux utilisés pour collecter le disque bleu, afin de ramasser et de déplacer le disque rouge. Comportements consistant à avancer pour ramasser le disque, à faire demi-tour et à revenir au même objectif coloré pour déposer le disque.
-
Une fois le premier disque rouge déplacé, le robot VR devra alors se diriger vers l'objectif vert et effectuer les mêmes actions que celles utilisées pour déplacer le disque bleu et le disque rouge, pour déplacer le premier disque vert.
- Afin de répéter plusieurs fois les comportements, une boucle pour peut être utilisée.
-
Ajoutez une boucle pour en haut du projet, au-dessus du premier commentaire, et définissez le paramètre de fonction range sur « 3 ». Assurez-vous que la boucle pour est en retrait dans la définition principale.
def main() : for repeat_count in range(3) : wait(5, MSEC)
-
Pour copier le code dans la boucle pour , une attention particulière devra être portée à l'indentation. Tout d’abord, ajoutez un espace avant la commande wait , de sorte que la boucle ressemble à ceci :
def main() : for repeat_count in range(3) : wait(5, MSEC)
- Ensuite, sélectionnez les commandes à placer dans la boucle pour , puis copiez-les et collez-les au-dessus de la commande wait . Notez que l'indentation sera incorrecte après avoir simplement copié et collé. La ligne indicatrice grise de la boucle pour est rompue et déconnectée de la commande wait . Il s'agit d'un indice visuel que votre projet ne s'exécutera pas comme prévu.
-
Sélectionnez les commandes à l'intérieur de la boucle pour et utilisez « Tab » pour mettre correctement en retrait les commandes dans la boucle. Lorsqu'elle est correctement indentée, la ligne indicatrice grise doit connecter la boucle pour avec la commande wait pour afficher les limites de la boucle externe. Une fois terminé, votre projet devrait ressembler à ceci :
def main() : for repeat_count in range(3) : # 1. Drive to disk using Down Eye Sensor while not down_eye.near_object() : drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.stop() # 2. Ramassez l'aimant à disque. Énergisez (BOOST) # 3. Conduisez jusqu'au but à l'aide du capteur de distance drivetrain.turn_to_heading (180, DEGRÉS) tandis que front_distance.get_distance (MM) > 200 : DRIVETRAIN.DRIVE (FORWARD) wait(5, MSEC) drivetrain. stop() # 4. Déposez le disque dans l' objectifmagnet.energize (DROP )drivetrain.drive_for (REVERSE, 100, MM) # 5. Tournez et conduisez jusqu'au prochain objectifdrivetrain.turn_to_heading (90, DEGRÉS) drivetrain.drive_for(AVANT, 800, MM) # 6. Tourner à disques drivetrain.turn_to_heading(0, DEGRÉS) attendre(5, MSEC)
- Regardez la vidéo ci-dessous pour voir comment déplacer les commandes et ajuster l'indentation comme décrit ci-dessus. Dans le clip vidéo, les six sections de commentaires du projet sont mises en surbrillance et le menu contextuel est ouvert. L'option « Couper » est sélectionnée, puis le curseur est placé sous la commande pour boucle. Le menu contextuel s'ouvre à nouveau et « Coller » est sélectionné. Les commandes sont alors dans la boucle pour , mais mal indentées. Les six sections de commentaires sont mises en surbrillance à nouveau et « Tab » sur le clavier est pressé pour indenter correctement le projet dans la boucle.
- Ouvrez le Disk Mover Playground s'il n'est pas déjà ouvert et exécutez le projet.
-
Lorsque ce projet est exécuté, le robot VR ramasse et dépose un disque de chaque couleur dans son objectif coloré correspondant.
Pour votre information
Notez que le robot VR a continué à s'enfoncer dans le mur. Ce comportement est attendu puisque le projet a demandé au robot VR de tourner à droite et de se diriger vers le prochain objectif, trois fois. La première fois, vous passez du bleu au rouge. Le deuxième va du rouge au vert, et le troisième va du vert au mur, car il n'y a pas d'autre objectif coloré. Arrêtez le projet une fois que le robot VR a heurté le mur. Le projet pourrait être amélioré de sorte que le robot VR s'arrête après avoir ramassé et déplacé le disque vert, mais cela augmenterait la complexité globale du projet.
Questions
Veuillez sélectionner un lien ci-dessous pour accéder au questionnaire de la leçon.
Google Doc / .docx / .pdf