Skip to main content

Lektion 4: Verwenden von [Forever] -Blöcken

Wiederholte Überprüfung der Bedingungen

Wie in der vorherigen Lektion beobachtet, überprüft der Block [Wenn dann] die Bedingungen nur einmal. Damit die in den [If then] -Blöcken enthaltenen Bedingungen wiederholt überprüft werden können, wird ein [Forever] -C-Block benötigt. Der [Forever] -Block ist ein C-Block aus der Steuerungskategorie, der die darin enthaltenen Verhaltensweisen für immer wiederholt.

Ein leerer VEXcode VR Forever-Block.
  • Laden Sie das Unit7Lesson3-Projekt aus der vorherigen Lektion.

    Das gleiche VEXcode VR blockiert das Projekt ab dem Ende der letzten Lektion. Es beginnt mit einem When Started-Block und dann gibt es einen If Then-Block mit einem booleschen Parameter eines Color Sensing-Blocks, der lautet "Front Eye detects green?" und einen Turn right for 90 degrees-Block innerhalb des If-Containers. Als nächstes gibt es das gleiche, wenn Block und Blockstapel drehen, aber geändert werden, um für 90 Grad nach links zu drehen, wenn die Farbe Blau erkannt wird. Als Nächstes das gleiche, wenn Block- und Wendeblockstapel verwendet wird, aber zu Stop Driving geändert wird, wenn die Farbe Rot erkannt wird. Schließlich gilt dasselbe, wenn Block- und Wendeblockstapel verwendet werden, aber in Vorwärts fahren geändert werden, wenn keine Farbe erkannt wird.
  • Benennen Sie das Projekt Unit7Lesson4 um.

    VEXcode VR Toolbar mit der Schaltfläche "Projektname", die in einem roten Feld links neben der Schaltfläche "Playground auswählen" hervorgehoben ist. Der Projektname ist auf Einheit 7 Lektion 4 festgelegt.
  • Ziehen Sie einen [Forever] -Block in den Arbeitsbereich und befestigen Sie ihn oben auf dem Blockstapel. Beachten Sie, dass dies alle vier [If then] -Blöcke innerhalb des [Forever] -Blocks umfasst.

    Der VEXcode VR blockiert das Projekt von früher, aber mit einem Pfeil, der das Hinzufügen eines Forever-Blocks anzeigt, der um alle if-Anweisungen gewickelt ist. Es beginnt mit einem "When Started" -Block und dann gibt es eine Reihe von vier "if" -Aussagen, die in einen "Forever" -Block eingewickelt sind. Zuerst ist ein Wenn-Dann-Block mit einem booleschen Parameter eines Farbsensor-Blocks, der lautet "Vorderes Auge erkennt Grün?" und ein Biegen Sie im Wenn-Behälter um 90 Grad nach rechts ab. Als nächstes gibt es das gleiche, wenn Block und Blockstapel drehen, aber geändert werden, um für 90 Grad nach links zu drehen, wenn die Farbe Blau erkannt wird. Als Nächstes das gleiche, wenn Block- und Wendeblockstapel verwendet wird, aber zu Stop Driving geändert wird, wenn die Farbe Rot erkannt wird. Schließlich gilt dasselbe, wenn Block- und Wendeblockstapel verwendet werden, aber in Vorwärts fahren geändert werden, wenn keine Farbe erkannt wird.

    Zur Kenntnisnahme

    Blöcke können dem Anfang oder der Mitte des Projektstapels hinzugefügt werden, indem die Oberseite des Blocks mit der gewünschten Platzierung im Stapel ausgerichtet wird.

    Eine Visualisierung, wie ein Forever-Block an die Spitze eines Stapels gezogen und automatisch um den Inhalt des Stapels gewickelt werden kann. Das VEXcode VR-Blöcke-Projekt ist das gleiche wie zuvor und in einer Endlosschleife enthalten. Die if-Anweisungen lauten wie folgt: Zuerst ist ein If Then-Block mit einem booleschen Parameter eines Farberkennungsblocks, der lautet "Vorderes Auge erkennt Grün?" und ein Biegen Sie im If-Container um 90 Grad nach rechts ab. Als nächstes gibt es das gleiche, wenn Block und Blockstapel drehen, aber geändert werden, um für 90 Grad nach links zu drehen, wenn die Farbe Blau erkannt wird. Als Nächstes das gleiche, wenn Block- und Wendeblockstapel verwendet wird, aber zu Stop Driving geändert wird, wenn die Farbe Rot erkannt wird. Schließlich gilt dasselbe, wenn Block- und Wendeblockstapel verwendet werden, aber in Vorwärts fahren geändert werden, wenn keine Farbe erkannt wird.

    Dieses Video unten zeigt, wie Sie den [Forever-Block] um die vier [If then] -Blöcke im aktuellen Projekt hinzufügen. Beachten Sie, dass die Oberseite des [Forever] -Blocks kurz nach [When started] und dem ersten [If then] -Block ausgerichtet ist. Der [Forever] -Block umschließt dann alle folgenden Blöcke im Projektstapel.

  • Nachdem der [Forever] -Block dem Projekt hinzugefügt wurde, sodass alle [If then] -Blöcke ständig auf ihre Bedingungen überprüft werden, öffnen Sie den Disk Maze Playground und führen Sie das Projekt aus.
  • Wenn dieses Projekt ausgeführt wird, navigiert der VR-Roboter durch den Disk Maze Playground von Anfang bis Ende. Sobald der VR-Roboter Rot erkennt, hört er auf zu fahren.

    Eine Draufsicht auf den VR Disk Maze Playground, wobei der VR-Roboter jede Festplatte passiert hat und auf der letzten roten Festplatte ruht.
  • Im Projekt aus der vorherigen Lektion wurden die Bedingungen innerhalb der Blöcke [Wenn dann] nur einmal geprüft. Da die Bedingungen innerhalb der [If then] -Blöcke nur einmal überprüft wurden, fuhr der VR-Roboter für immer vorwärts, da der Zustand, dass keine Farbe erkannt wurde, als WAHR gemeldet wurde.

    Ein Diagramm des Logikflusses in unserem VEXcode VR Blockprojekt ohne den Forever Block. Pfeile zeigen an, dass jede if-Anweisung nur einmal ausgeführt wird, bevor das Projekt endet, wodurch unser Projekt viel weniger reaktionsschnell ist, als wir möchten. Unser Projekt prüft, ob das vordere Auge grün erkennt, und wenn ja, dreht es sich um 90 Grad nach rechts. Wenn das vordere Auge Blau erkennt, dreht es sich um 90 Grad nach links. Wenn das vordere Auge Rot erkennt, hört es auf zu fahren. Wenn das vordere Auge schließlich keine erkennt, fährt es vorwärts.
  • Jetzt, da der [Forever] -Block hinzugefügt wurde, wird jede Bedingung der [If then] -C-Blöcke wiederholt überprüft. Wenn während des Projektablaufs die Bedingung des C-Blocks [Wenn dann] WAHR ist, werden die Blöcke innerhalb des C-Blocks [Wenn dann] ausgeführt. Wenn die Bedingung des C-Blocks [Wenn dann] FALSCH ist, werden die Blöcke innerhalb des C-Blocks [Wenn dann] übersprungen, und der Fluss des Projekts wird zum nächsten Block im Stapel fortgesetzt. Dies ermöglicht es dem VR-Roboter, diskrete Verhaltensweisen wie Drehen oder Anhalten auszuführen, sobald er eine bestimmte Farbe erkennt.

    Ein Diagramm des Logikflusses der VEXcode VR-Blöcke projiziert nach links und läuft durch ein Beispiel des VR-Roboters im Bild nach rechts. Das Bild zeigt den VR-Roboter, der eine blaue Scheibe erreicht und nach links abbiegt. Das Diagramm zeigt an, dass sich die if-Anweisungen für immer wiederholen, und jede einzelne wird in jeder Schleife überprüft. Nachdem das vordere Auge kein Grün erkennt, sucht es nach der Farbe Blau als nächstes, die wahr zurückgibt und den Roboter um 90 Grad nach links dreht. Danach setzt sich der Logikfluss im Stapel fort und prüft auf Rot und nichts.
  • [If then] -Blöcke werden mit [Forever] -Blöcken verwendet, um sicherzustellen, dass die Bedingungen ständig überprüft werden.

    Ein Diagramm des Logikflusses in unserem VEXcode VR-Blöcke-Projekt mit dem äußeren Forever-Block. Jeder Pfeil ist nun mit dem beschriftet, was dieser Logikbefehl misst, und ein gelber Pfeil zeigt den Fluss der Logik, die sich kontinuierlich durch jeden Block in der Forever-Schleife wiederholt. Es ist klar, dass jede if-Anweisung in jeder Schleife des Forever-Blocks überprüft wird, unabhängig davon, ob das Ergebnis wahr oder falsch ist.

Verwenden von Schalterblöcken 

Dies ist der Switch [Forever] -Block. Der Befehl Python wechseln für Forever erstellt eine while -Schleife, in der die Bedingung True ist. Die Befehle, die innerhalb der Schleife verschachtelt sind, werden dann für immer wiederholt, da die Bedingung immer wahr ist. 

Eine VEXcode VR-Schalterblockversion des Forever-Blocks. Der Python-Code lautet 'while True:', was das Python-Äquivalent einer Forever-Anweisung ist.

Fragen

Bitte wählen Sie unten einen Link aus, um auf das Lektionsquiz zuzugreifen.

Google Doc / .docx / .pdf