Skip to main content

Lektion 4: Verwenden von Infinite While Loops

Lösen des Disk-Labyrinth-Problems

Aufbau des Projekts

  • Laden Sie das Unit7Lesson3-Projekt aus der vorherigen Lektion oder erstellen Sie das hier gezeigte Projekt neu, um zu beginnen.
def main():
	# Wenn das vordere Auge grün erkennt, dann rechts abbiegen,
    wenn front_eye.detect (GREEN):
        drivetrain.turn_for (RIGHT, 90, DEGREES)

    # Wenn das vordere Auge blau erkennt, dann links abbiegen,
    wenn front_eye.detect (BLUE):
        drivetrain.turn_for (LEFT, 90, DEGREES)

    # Wenn das vordere Auge rot erkennt, dann anhalten,
    wenn front_eye.detect (RED): 
        drivetrain.stop ()

    # Wenn das vordere Auge nichts erkennt, dann vorwärts fahren,
    wenn front_eye.detect (NONE): 
        drivetrain.drive(FORWARD)
  • Benennen Sie das Projekt Unit7Lesson4 um.VEXcode VR Toolbar mit aufgerufenem Projektnamen-Feld. Das Projekt heißt Einheit 7 Lektion 4.

     

  • Ziehen Sie eine Endlosschleife an den Anfang des Projekts oder geben Sie sie ein, und setzen Sie die Bedingung auf True.
def main():
    while Wahr:
    	warten(5, MS)
  • Verschieben Sie den Befehl wait , um Platz für die Befehle zu schaffen, die in die Endlosschleife while eingefügt werden.
def main():
    while Wahr:
    
    
    	warten(5, MS)
  • Innerhalb der unendlichen  while-Schleife kopieren und fügen Sie die vorherigen if-Anweisungen innerhalb der Schleife ein. Löschen Sie nicht den Befehl wait am Ende der Schleife while. Ihr Projekt könnte so aussehen. Beachten Sie, dass das Kopieren und Einfügen von Befehlen auf diese Weise nicht zu einer korrekten Einrückung führt.
def main():
    while True:
        
    # Wenn das vordere Auge grün erkennt, dann rechts abbiegen,
    wenn front_eye.detect (GREEN):
        drivetrain.turn_for (RIGHT, 90, DEGREES)

    # Wenn das vordere Auge blau erkennt, dann links abbiegen,
    wenn front_eye.detect (BLUE):
        drivetrain.turn_for (LEFT, 90, DEGREES)

    # Wenn das vordere Auge rot erkennt, dann anhalten,
    wenn front_eye.detect (RED): 
        drivetrain.stop ()

    # Wenn das vordere Auge nichts erkennt, dann vorwärts fahren,
    wenn front_eye.detect (NONE) 
        : drivetrain.drive (FORWARD)

    wait(5, MSEC)
  • Denken Sie daran, dass die Einrückung in VEXcode VR Python SEHR wichtig ist. Damit der Projektablauf wie beabsichtigt ausgeführt werden kann, müssen die if -Anweisungen innerhalb der unendlichen while -Schleife eingerückt werden. Wählen Sie die  if-Anweisungen aus und drücken Sie 'Tab' , um sie in die unendliche  while-Schleife einzuziehen. Wenn Ihr Projekt richtig eingerückt ist, sollte es wie folgt aussehen: 
def main():
    while True:
        
        # Wenn das vordere Auge grün erkennt, dann rechts abbiegen,
        wenn front_eye.detect (GREEN):
            drivetrain.turn_for (RIGHT, 90, DEGREES)

        # Wenn das vordere Auge blau erkennt, dann links abbiegen,
        wenn front_eye.detect (BLUE):
            drivetrain.turn_for (LEFT, 90, DEGREES)

        # Wenn das vordere Auge rot erkennt, dann anhalten,
        wenn front_eye.detect (RED): 
            drivetrain.stop ()

        # Wenn das vordere Auge nichts erkennt, dann vorwärts fahren,
        wenn front_eye.detect (NONE) 
            : drivetrain.drive (FORWARD)

        wait(5, MSEC)
  • Mit der unendlichen while-Schleife, die dem Projekt hinzugefügt wurde, werden alle if-Anweisungen wiederholt auf ihre Bedingungen überprüft. Ö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.

    VR-Roboter auf dem Disk Maze Playground mit dem VR-Roboter vor der roten Scheibe in der unteren rechten Ecke des Spielplatzes.

Zusammenfassung

  • Im Projekt aus der vorherigen Lektion wurden die Bedingungen innerhalb der if-Anweisungen nur einmal geprüft. Da die Bedingungen innerhalb der if-Anweisungen nur einmal überprüft wurden, fuhr der VR-Roboter für immer vorwärts, da der Zustand, dass keine Farbe erkannt wurde, zu Beginn des Projekts als wahr gemeldet wurde.
  • Nachdem nun die unendliche while-Schleife hinzugefügt wurde, wird jede Bedingung der if-Anweisungen wiederholt überprüft. Die Bedingung der while-Schleife ist immer True, und daher wird der Code innerhalb der while-Schleife immer ausgeführt. Dadurch werden die Bedingungen der if -Aussagen wiederholt überprüft, während das Projekt ausgeführt wird. 
  • Wenn während des Projektablaufs die Bedingung der if -Anweisungen True ist, werden die Befehle innerhalb der if -Anweisung ausgeführt. Wenn die Bedingung der if-Anweisung False ist, werden die Befehle innerhalb der if-Anweisung nicht ausgeführt, und der Fluss des Projekts wird mit dem nächsten Befehl fortgesetzt. Dies ermöglicht es dem VR-Roboter, diskrete Verhaltensweisen wie Drehen oder Anhalten auszuführen, sobald er eine bestimmte Farbe erkennt.
  • Wenn Anweisungen mit unendlichen  while-Schleifen verwendet werden, um sicherzustellen, dass die Bedingungen ständig überprüft werden.

Fragen

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

Google Doc / .docx / .pdf