Skip to main content

Lektion 3: Verwenden von If-Anweisungen

Navigieren im Festplattenlabyrinth mit  If-Anweisungen

In der Disk Maze Challenge überprüft der VR-Roboter den Zustand des Front Eye Sensors, um zu sehen, welche Farbe gemeldet wird. Jede der Farben richtet sich nach einem anderen Verhalten, das der VR-Roboter ausführen sollte.

Zur Kenntnisnahme

Die if-Anweisung akzeptiert nur boolesche Bedingungen. Unter Verwendung der Muster, die beim Lösen des Plattenlabyrinths in Lektion 2 beobachtet wurden, kann ein Projekt erstellt werden, bei dem der VR-Roboter eine Entscheidung trifft, ob die Bedingung als wahr oder falsch gemeldet wird.

wenn Bedingung: 
	bestanden

Die if-Anweisung wird einmal in einem Projekt ausgeführt. In diesem Beispiel meldet der Front Eye Sensor True, wenn ein grünes Objekt erkannt wird, und führt den Befehl innerhalb der if-Anweisung aus - biegen Sie um 90 Grad rechts ab. Wenn kein grünes Objekt erkannt wird, wechselt das Projekt zum nächsten Befehl.

def main():
    wenn front_eye.detect(GRÜN):
        drivetrain.turn_for(RECHTS, 90, GRAD)
    drivetrain.stop()
  • Starten Sie ein neues Projekt und wählen Sie den Disk Maze Playground, wenn Sie dazu aufgefordert werden. Disk Maze Playground Auswahlkachel in VEXcode VR.
  • Nennen Sie es Unit7Lesson3.Symbolleiste in VEXcode VR mit dem aufgerufenen Feld Projektname. Der Projektname lautet Einheit 7 Lektion 3.

     

  • Fügen Sie Kommentare hinzu, um die Absicht für das Verhalten des VR-Roboters in jedem folgenden Abschnitt des Projekts zu beschreiben. 
def main():
    # Wenn das vordere Auge Grün erkennt, dann rechts abbiegen

    # Wenn das vordere Auge Blau erkennt, dann links abbiegen
  • Ziehen Sie die if-Anweisung unter den ersten Kommentar oder geben Sie sie ein.
def main():
    # Wenn das vordere Auge Grün erkennt, dann nach rechts abbiegen
    , wenn Bedingung: 
    	bestanden

    # Wenn das vordere Auge Blau erkennt, dann nach links abbiegen
  • Setzen Sie die Bedingung der Anweisung if auf den Befehl front_eye.detect und setzen Sie den Parameter auf „GRÜN“.
def main():
    # Wenn das vordere Auge grün erkennt, dann rechts abbiegen
	, wenn front_eye.detect(GREEN): 
    	pass
    	
    # Wenn das vordere Auge blau erkennt, dann links abbiegen
  • Ziehen Sie einen turn_for -Befehl in die if -Anweisung oder geben Sie ihn ein, um 'pass'zu ersetzen. Stellen Sie die Parameter so ein, dass sie um 90 Grad nach rechts drehen. Wenn der Vorderaugensensor nun „GRÜN“ erkennt, dreht sich der VR-Roboter um 90 Grad nach rechts.
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
  • Wir werden die gleichen Schritte ausführen, um zusätzliche if -Anweisungen für alle drei Farben im Disk Maze (grün, blau und rot) hinzuzufügen. Jede Farbe ist mit einem anderen Verhalten verbunden. Die Befehle in den if-Anweisungen müssen diesem beabsichtigten Verhalten entsprechen. Fügen Sie dem Projekt unter dem zweiten Kommentar die folgenden Befehle hinzu, sodass sich der VR-Roboter um 90 Grad nach links dreht, wenn der Front Eye Sensor die Farbe „BLAU“ erkennt.
	# Wenn das vordere Auge blau erkennt, dann links abbiegen
	, wenn front_eye.detect (BLAU) 
    	:     	drivetrain.turn_for (LEFT, 90, DEGREES)
  • Wenn der VR-Roboter das Ende des Labyrinths erreicht, erkennt der Front Eye Sensor die Farbe "ROT".

    Eine Nahaufnahme des VR-Roboters, der am Ende des Disk Labyrinths an der roten Scheibe ankam und davor anhielt.
  • Um den VR-Roboter zu stoppen, muss eine weitere if -Anweisung mit Anweisungen hinzugefügt werden, was zu tun ist, wenn der Front Eye Sensor "ROT" erkennt. Fügen Sie dem Projekt den folgenden Kommentar und die folgenden Befehle hinzu, damit der VR-Roboter die Fahrt stoppt, wenn er "ROT" erkennt. 
	# Wenn das vordere Auge rot erkennt, dann stoppen
	, wennfront_eye.detect (ROT): 
    	drivetrain.stop()

Wenn keine der Farben erkannt wird

Der VR-Roboter kann auch eine Entscheidung treffen, wenn er keine Farbe sieht, indem er den Wert "keine" verwendet. Zum Beispiel erkennt der Front Eye Sensor am Startpunkt des Disk Labyrinths keine Farben.

Die VR-Spielplatzansicht mit geöffnetem Armaturenbrett und einem roten Kästchen, das die Erfassungswerte des Roboters für das vordere Auge hervorhebt. Der aktuelle 'Objekt' -Wert ist false und der aktuelle 'Farbe' -Wert ist none.

Da der Front Eye Sensor zu Beginn des Disk Labyrinths keine Farbe erkennt, muss der VR-Roboter vorwärts fahren, bis er die grüne Platte erkennt. Eine weitere if-Anweisung kann hinzugefügt werden, um den VR-Roboter anzuweisen, was zu tun ist, wenn keine Farbe erkannt wird. 

  • Fügen Sie dem Projekt den folgenden Kommentar und die folgenden Befehle hinzu, damit der VR-Roboter vorwärts fährt, wenn der Front Eye Sensor keine Farbe erkennt.
	# Wenn Frontauge nichts erkennt, dann vorwärts fahren
	, wenn Front_Eye.detect(NONE): 
    	drivetrain.drive(FORWARD)
  • Der VR-Roboter verfügt nun über Anweisungen für jede Farbe, die vom Front Eye Sensor erkannt wird.
    • Wenn der Vorderaugensensor „GRÜN“ erkennt – um 90 Grad nach rechts drehen
    • Wenn der Vorderaugensensor „BLAU“ erkennt – um 90 Grad nach links  drehen
    • Wenn der Vorderaugensensor „ROT“ erkennt – Fahren Sie nicht weiter
    • Wenn der Vorderaugensensor "KEINE" erkennt – Vorwärts fahren
  • Öffnen Sie das Playground-Fenster, wenn es noch nicht geöffnet ist. Stellen Sie sicher, dass sich der Disk Maze Playground öffnet, und führen Sie das Projekt aus. Das gesamte Projekt sollte so aussehen: 
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)
  • Verhält sich der VR-Roboter so, wie Sie es beabsichtigt haben? Warum oder warum nicht? Auf der nächsten Seite der Lektion erfahren wir mehr über dieses Projekt.

Wählen Sie die Schaltfläche Weiter um mit dem Rest dieser Lektion fortzufahren.