Skip to main content

Leçon 4 : Utiliser des blocs [Forever]

Vérification répétée des conditions

Comme observé dans la leçon précédente, le bloc [If then] ne vérifie les conditions qu'une seule fois. Pour que les conditions contenues dans les blocs [If then] soient vérifiées à plusieurs reprises, un bloc [Forever] C est nécessaire. Le bloc [Forever] est un bloc C de la catégorie Contrôle qui répète les comportements qu'il contient, pour toujours.

Un bloc VEXcode VR Forever vide.
  • Chargez le projet Unit7Lesson3 de la leçon précédente.

    Le même VEXcode VR bloque le projet à partir de la fin de la dernière leçon. Cela commence par un bloc When Started, puis il y a un bloc If Then avec un paramètre booléen d'un bloc Color Sensing qui indique « Front Eye detects green ? » et un bloc Turn right for 90 degrés à l'intérieur du conteneur If. Ensuite, il en va de même si le bloc et tournez la pile de blocs, mais changé pour tourner à gauche sur 90 degrés si la couleur bleue est détectée. Ensuite, la même chose si le bloc et la pile de blocs de virage sont utilisés, mais changés en Arrêter la conduite si la couleur rouge est détectée. Enfin, la même chose si le bloc et la pile de blocs de virage sont utilisés, mais changés en Drive Forward si aucune couleur n'est détectée.
  • Renommer le projet Unit7Lesson4.

    VEXcode VR Toolbar avec le bouton « Project Name » surligné dans une case rouge, à gauche du bouton Select Playground. Le nom du projet est défini sur Unité 7 Leçon 4.
  • Faites glisser un bloc [Forever] dans l'espace de travail et fixez-le au sommet de la pile de blocs. Notez que cela inclura les quatre blocs [If then] à l'intérieur du bloc [Forever].

    Le VEXcode VR bloque le projet depuis plus tôt mais avec une flèche indiquant l'ajout d'un bloc Forever enroulé autour de toutes les instructions if. Cela commence par un bloc When Started, puis il y a une série de quatre instructions if enveloppées dans un bloc Forever. Le premier est un bloc If Then avec un paramètre booléen d'un bloc Color Sensing qui indique « L'œil avant détecte le vert ? » et un bloc Turn right for 90 degrés à l'intérieur du conteneur If. Ensuite, il en va de même si le bloc et tournez la pile de blocs, mais changé pour tourner à gauche sur 90 degrés si la couleur bleue est détectée. Ensuite, la même chose si le bloc et la pile de blocs de virage sont utilisés, mais changés en Arrêter la conduite si la couleur rouge est détectée. Enfin, la même chose si le bloc et la pile de blocs de virage sont utilisés, mais changés en Drive Forward si aucune couleur n'est détectée.

    Pour votre information

    Les blocs peuvent être ajoutés au début ou au milieu de la pile de projet en alignant le haut du bloc, avec le placement souhaité dans la pile.

    Une visualisation de la façon dont un bloc Forever peut être déplacé vers le haut d'une pile et s'enrouler automatiquement autour du contenu de la pile. Le projet de blocs VR VEXcode est le même qu'avant et contenu dans une boucle éternelle. Les instructions if sont les suivantes : First est un bloc If Then avec un paramètre booléen d'un bloc Color Sensing qui indique « L'œil avant détecte le vert ? » et un bloc Turn right for 90 degrés à l'intérieur du conteneur If. Ensuite, il en va de même si le bloc et tournez la pile de blocs, mais changé pour tourner à gauche sur 90 degrés si la couleur bleue est détectée. Ensuite, la même chose si le bloc et la pile de blocs de virage sont utilisés, mais changés en Arrêter la conduite si la couleur rouge est détectée. Enfin, la même chose si le bloc et la pile de blocs de virage sont utilisés, mais changés en Drive Forward si aucune couleur n'est détectée.

    Cette vidéo ci-dessous montre comment ajouter le [bloc Forever] autour des quatre blocs [If then] dans le projet en cours. Notez que le haut du bloc [Forever] est aligné juste après [When started] et le premier bloc [If then]. Le bloc [Forever] s'enroule ensuite autour de tous les blocs suivants de la pile de projets.

  • Maintenant que le bloc [Forever] est ajouté au projet afin que tous les blocs [If then] aient constamment leurs conditions vérifiées, ouvrez le Disk Maze Playground et exécutez le projet.
  • Lorsque ce projet est exécuté, le robot VR naviguera sur le terrain de jeu du labyrinthe de disques du début à la fin. Une fois que le robot VR détecte le rouge, il arrête de conduire.

    Une vue de haut en bas du terrain de jeu VR Disk Maze, avec le robot VR ayant passé chaque disque et reposant sur le disque rouge final.
  • Dans le projet de la leçon précédente, les conditions dans les blocs [If then] n'ont été vérifiées qu'une seule fois. Étant donné que les conditions dans les blocs [If then] n'ont été vérifiées qu'une seule fois, le robot VR a avancé pour toujours car la condition d'absence de couleur détectée a été signalée comme VRAIE.

    Un diagramme du flux de logique dans notre projet de blocs VR VEXcode sans le bloc Forever. Les flèches indiquent que chaque instruction if n'est exécutée qu'une seule fois avant la fin du projet, ce qui rend notre projet beaucoup moins réactif que nous ne le souhaiterions. Notre projet vérifie si l'œil avant détecte le vert, et si oui, il tourne à droite sur 90 degrés. Ensuite, si l'œil avant détecte le bleu, il tourne à gauche sur 90 degrés. Ensuite, si l'œil avant détecte du rouge, il arrête de conduire. Enfin, si l'œil avant n'en détecte aucun, il avance.
  • Maintenant que le bloc [Forever] a été ajouté, chaque condition des blocs [If then] C sera vérifiée à plusieurs reprises. Pendant le déroulement du projet, si la condition du bloc [If then] C est VRAIE, les blocs à l'intérieur du bloc [If then] C sont exécutés. Si la condition du bloc [If then] C est FAUSSE, les blocs à l'intérieur du bloc [If then] C sont ignorés et le flux du projet se poursuivra jusqu'au bloc suivant dans la pile. 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.

    Un diagramme du flux de logique des blocs VR VEXcode se projette vers la gauche en passant par un exemple du robot VR dans l'image de droite. L'image montre le robot VR atteignant un disque bleu et tournant à gauche. Le diagramme indique que les instructions if se répètent indéfiniment, et chacune est vérifiée à chaque boucle. Une fois que l'œil avant ne détecte pas le vert, il vérifie la couleur bleue suivante qui renvoie vrai et tourne le robot à gauche de 90 degrés. Après cela, le flux de logique continue le long de la pile, vérifiant le rouge et rien.
  • Les blocs [If then] sont utilisés avec les blocs [Forever] pour s'assurer que les conditions sont constamment vérifiées.

    Un diagramme du flux de logique dans notre projet de blocs VR VEXcode avec le bloc Forever externe inclus. Chaque flèche est maintenant étiquetée avec ce que cette commande logique mesure, et une flèche jaune montre le flux de logique se répétant à travers chaque bloc dans la boucle Forever continuellement. Il est clair que chaque instruction if est vérifiée sur chaque boucle du bloc forever, peu importe si le résultat est vrai ou faux.

Utilisation des blocs de commutation 

C'est le bloc Switch [Forever]. La commande Switch Python pour Forever crée une boucle while où la condition est True. Les commandes imbriquées dans la boucle sont ensuite répétées indéfiniment, car la condition est toujours vraie. 

Une version de bloc de commutation VR VEXcode du bloc Forever. Le code Python indique « while True : », qui est l'équivalent Python d'une instruction forever.

Questions

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

Google Doc / .docx / .pdf