Skip to main content

Leçon 2 : Flux d'un projet avec une boucle For

Lorsqu'un projet utilise une boucle pour , il suit toujours la même logique lors de l'exécution des commandes. Par exemple, ces deux exemples de code feront bouger le robot VR de la même manière. Cependant, le projet avec la boucle pour répète les deux commandes Drivetrain quatre fois pour ce faire.

Deux extraits de code à conduire dans un carré affiché côte à côte pour illustrer la différence entre l'utilisation de la boucle for et non. Celui de gauche n'a pas de boucle for, et a l'entraînement et la rotation pour les commandes répétées quatre fois chacune. Celui de droite a une boucle for et des flèches rouges dans un motif circulaire avec les mots 4 fois à l'intérieur, indiquant que la boucle for provoque la répétition des commandes drive for et turn for quatre fois.

Une boucle pour est utilisée pour répéter une série de commandes un nombre spécifié de fois. La boucle pour se répète (également appelée itération) sur la séquence de commandes qu'elle contient. Dans une boucle Python pour , la variable « valeur » est utilisée pour suivre l'itération en cours et le mot clé « in » utilise la fonction range pour spécifier le nombre d'itérations. Répartition de la syntaxe d'une boucle for affichée avec du texte au-dessus de chaque mot de la commande pour identifier sa fonction. Le premier mot, pour, a le texte "identifie la boucle" au-dessus de lui. Le deuxième mot, value, a le texte : "Identifie la variable (combien de fois a-t-elle itéré dans la boucle ?). Le troisième mot, dans, a le texte "Connecte la variable à la liste (plage). Le dernier mot est range avec le paramètre 10 entre parenthèses. Le texte ci-dessus indique, "Identifie la liste (Combien de fois itérera-t-il dans la boucle ?).

La fonction range identifie le nombre de fois que la boucle doit itérer (ou se répéter). Pour répéter les comportements le nombre de fois souhaité, définissez le paramètre de la fonction plage sur.

La fonction range crée essentiellement une liste temporaire qui spécifie ce que la boucle doit parcourir pour être terminée. Dans le cas de comportements répétitifs, comme dessiner les quatre côtés d'un carré, la fonction range utilise une liste temporaire de (0, 1, 2, 3) pour permettre au robot VR d'exécuter ces commandes quatre fois. Le mouvement du robot VR changera en fonction du paramètre de la fonction de portée, comme indiqué ici. 

Projet VEXcode illustrant la fonction range. Il lit def main open parenthesis close parenthesis colon next line which is indented read pen dot move open parenthesis down close parenthesis next line for value in range open parenthesis 0 close parenthesis colon next line which is indented read drivetrain dot drive underscore for open parenthesis forward, 600, MM close parenthesis next line drivetrain dot turn underscore for open parenthesis right, 90, degree close parenthesis next line wait open parenthesis five comma M S E C). Art Canvas Playground avec le robot au centre. Commandes du groupe motopropulseur exécutées 0 fois.
Le même projet que ci-dessus, mais avec 1 dans le paramètre de la fonction range. Art Canvas Playground avec projet de dessiner un côté d'un carré complet. Commandes du groupe motopropulseur exécutées 1 fois.
Le même projet que ci-dessus, mais avec 2 dans le paramètre de la fonction range. Art Canvas Playground montrant que le robot a dessiné les deux premiers côtés de la place. Commandes du groupe motopropulseur exécutées 2 fois.
Le même projet que ci-dessus, mais avec 3 dans le paramètre de la fonction range. Art Canvas Playground montrant que le robot a dessiné trois côtés de la place. Commandes du groupe motopropulseur exécutées 3 fois.
Le même projet que ci-dessus, mais avec 4 dans le paramètre de la fonction range. Art Canvas Playground montrant que le robot a dessiné les quatre côtés de la place. Commandes de transmission exécutées 4 fois, complétant les 4 côtés du carré.

 

Le même projet que ci-dessus, mais avec 5 dans le paramètre de la fonction range.

Art Canvas Playground montrant que le robot a dessiné les quatre côtés de la place, puis tracé à nouveau sur le premier côté. Commandes de transmission exécutées 5 fois, complétant le carré, puis traçant à nouveau sur le premier côté.

Notez que la forme dessinée du carré n'a pas changé lorsque la fonction range est passée de quatre à cinq ; mais la position finale du robot VR l'a fait. Ainsi, l'utilisation d'une boucle pour avec la fonction par défaut plage de dix, entraînerait le dessin de la même forme carrée, mais le robot VR continuerait à répéter les comportements six fois supplémentaires. 

Le robot VR se déplacera à travers les commandes de l'en-tête de boucle pour  jusqu'à la dernière commande en retrait. L'en-tête de boucle pour  indique que le robot VR doit répéter les actions à l'intérieur de la boucle  le nombre de fois spécifié avant de passer à la commande suivante en dehors de la boucle for. Les lignes en retrait indiquent quelles commandes se trouvent à l'intérieur de la boucle pour et doivent être répétées.

Pour votre information

Dans VEXcode VR, une commande wait est toujours ajoutée avec la boucle for . L'objectif de la commande wait est de garantir que VEXcode VR peut exécuter correctement le projet comme prévu, en raison de la nature Web de la plate-forme VEXcode VR. La commande wait ne doit jamais être supprimée lors de l'utilisation d'une boucle for , sinon votre projet risque de ne pas fonctionner comme prévu.

Pour la boucle avec une commande wait.

Le nombre spécifié de fois que la boucle pour est configurée pour s'exécuter permet au projet de sortir de la boucle pour lorsqu'il a terminé les itérations nécessaires. Le paramètre de la fonction range dans la boucle for doit être atteint avant que le projet ne passe à la commande suivante en dehors de la boucle. Dans l'exemple de code ci-dessous, une fois que les commandes Drivetrain dans la boucle for ont été exécutées quatre fois, le projet sortira de la boucle for , définira la couleur du stylo sur rouge et roulera en marche arrière. Le projet VEXcode vu d'en haut, avec 4 dans le paramètre de plage affiché avec des flèches rouges autour de la boucle for et la notation 4x montrant que le projet itérerait à travers la boucle quatre fois. 2 lignes de code supplémentaires sont ajoutées en bas. Les flèches montrent que ces 2 lignes s'exécuteraient une fois les quatre itérations terminées. Ces lignes lisent, la couleur du point du stylo définit la parenthèse ouverte, la parenthèse fermée rouge et le trait de soulignement du point du groupe motopropulseur pour la parenthèse ouverte, la virgule inverse, la virgule 600, la virgule mm, la parenthèse fermée. À droite, une image du projet après son exécution sur la cour de récréation montre un carré noir avec une ligne rouge en sortant tracée par le robot VR.

Mini Défi

Dans ce projet, le robot VR doit dessiner un carré bleu sur le Art Canvas Playground, mais il y a des erreurs dans le projet. Modifiez le projet pour résoudre le mini défi !

Terrain de jeu Art Canvas avec un carré bleu dessiné par le VR Robot.

La vidéo ci-dessous montre ce qu'il faut faire pour terminer le mini défi. Le robot démarre au milieu de l'aire de jeux et dessine les quatre côtés d'un grand carré bleu. 

Fichier vidéo
  • Regardez la vidéo de la solution et examinez comment le robot VR doit se déplacer afin de relever le mini défi.
  • Modifiez le projet Unit3Lesson2 pour qu'il corresponde à cette image, ou copiez le code ci-dessous.
     
def main() :
	pen.move(DOWN)
	pen.set_pen_color(RED)
	drivetrain.drive_for(FORWARD, 600, MM)
	
	for value in range(3) :
		drivetrain.drive_for(FORWARD, 600, MM)
		drivetrain.turn_for(RIGHT, 90, DEGREES)
		wait (5, MSEC)
  • Lancez le projet et identifiez les cas où le robot de réalité virtuelle ne parvient pas à adopter les comportements attendus.
  • Modifiez le projet et exécutez-le à nouveau. Voyez si le robot de réalité virtuelle complète les comportements attendus.
  • Si le robot VR ne dessine pas de carré bleu, répétez l'étape précédente et réessayez. Continuez à modifier et à exécuter votre projet jusqu'à ce que le robot VR dessine un carré bleu.
  • Une fois que le robot VR dessine avec succès un carré bleu sur le Art Canvas Playground, enregistrez le projet.

Félicitations ! Vous avez résolu le mini défi !

Questions

Veuillez sélectionner un lien ci-dessous pour accéder au questionnaire de la leçon.

Google Doc / .docx / .pdf