Μετάβαση στο κύριο περιεχόμενο

Μάθημα 2: Οδήγηση στους επόμενους δίσκους

Οδηγήστε προς τους Μπλε Δίσκους

Στο προηγούμενο έργο, το ρομπότ εικονικής πραγματικότητας (VR) στρίβει δεξιά όταν ο αισθητήρας μπροστινού ματιού ανιχνεύει έναν πράσινο δίσκο, ο οποίος οδήγησε το ρομπότ εικονικής πραγματικότητας στο πρώτο βήμα του λαβυρίνθου. Τώρα, θα συνεχίσουμε να αναπτύσσουμε το έργο, έτσι ώστε το ρομπότ εικονικής πραγματικότητας να οδηγεί στους πρώτους τέσσερις δίσκους στην παιδική χαρά δίσκους.

Κοιτάζοντας προς τα πού είναι στραμμένο το ρομπότ εικονικής πραγματικότητας (VR) αφού στρίψει δεξιά στον πράσινο δίσκο, μπορούμε να δούμε ότι για να πλοηγηθεί στους επόμενους τρεις μπλε δίσκους, το ρομπότ εικονικής πραγματικότητας (VR) θα πρέπει να κινηθεί προς τα εμπρός και να στρίψει αριστερά σε κάθε μπλε δίσκο. Μπορούμε να χρησιμοποιήσουμε την ίδια λογική του βρόχουwhileμε τη συνθήκηnotγια να κάνουμε το ρομπότ εικονικής πραγματικότητας να συνεχίσει να οδηγεί μέσα στον λαβύρινθο και να στρίψει αριστερά όταν ανιχνεύσει έναν μπλε δίσκο.Κάτοψη της παιδικής χαράς με τον λαβύρινθο των δίσκων από πάνω προς τα κάτω. Το ρομπότ στον πρώτο πράσινο δίσκο κοιτάζει δεξιά προς τον πρώτο μπλε δίσκο. Εμφανίζονται μαύρα βέλη που δείχνουν πώς θα πρέπει να κινηθεί το ρομπότ. Αυτό υποδεικνύει ότι το ρομπότ θα οδηγήσει προς τον μπλε δίσκο, θα στρίψει αριστερά, θα οδηγήσει προς έναν δεύτερο μπλε δίσκο, θα στρίψει αριστερά και θα σταματήσει σε έναν τρίτο μπλε δίσκο.

  • Προσθέστε ένα ακόμη σχόλιο κάτω από το turn_for στο υπάρχον έργο για να περιγράψετε τις επόμενες συμπεριφορές του ρομπότ εικονικής πραγματικότητας. Το έργο σας θα πρέπει να μοιάζει με αυτό:
def main():
    # Οδηγήστε μέχρι τον 1ο δίσκο (πράσινο), στρίψτε δεξιά
    ενώ δεν είναι ενεργοποιημένο το front_eye.detect(ΠΡΑΣΙΝΟ):
        drivetrain.drive(ΜΠΡΟΣΤΑ)
        wait(5, MSEC)

    drivetrain.turn_for(ΔΕΞΙΑ, 90, ΜΟΙΡΕΣ)

    # Οδηγήστε μέχρι τον 2ο δίσκο (μπλε), στρίψτε αριστερά
  • Κάτω από το νέο σχόλιο, προσθέστε έναν ακόμη βρόχο while με συνθήκη not. Ορίστε τη συνθήκη στην εντολή detectκαι ορίστε τις παραμέτρους σε "ΜΠΛΕ", καθώς ο επόμενος δίσκος που θα συναντήσει το ρομπότ εικονικής πραγματικότητας είναι μπλε.
    # Οδηγήστε μέχρι τον 2ο δίσκο (μπλε), στρίψτε αριστερά
    ενώ δεν έχετε front_eye.detect(BLUE):
        wait(5, MSEC)
  • Μέσα στον βρόχο while , σύρετε ή πληκτρολογήστε την εντολή μη αναμονής drive. 
    # Οδηγήστε μέχρι τον 2ο δίσκο (μπλε), στρίψτε αριστερά
    ενώ δεν έχετε front_eye.detect(ΜΠΛΕ):
        drivetrain.drive(ΜΠΡΟΣΤΑ)
        wait(5, MSEC)
  • Σύρετε ή πληκτρολογήστε μια εντολή turn_for και ορίστε τις παραμέτρους σε στροφή αριστερά 90 μοίρες.
    # Οδηγήστε μέχρι τον 2ο δίσκο (μπλε), στρίψτε αριστερά
    ενώ δεν έχετε front_eye.detect(ΜΠΛΕ):
        drivetrain.drive(ΜΠΡΟΣΤΑ)
        wait(5, MSEC)

    drivetrain.turn_for(ΑΡΙΣΤΕΡΑ, 90, ΜΟΙΡΕΣ)
  • Εκτελέστε το έργο για να δείτε πώς κινείται το ρομπότ εικονικής πραγματικότητας (VR) μέσα από την παιδική χαρά Disk Maze.Κάτοψη του ρομπότ εικονικής πραγματικότητας (VR) στην παιδική χαρά Disk Maze με ένα μαύρο βέλος που υποδεικνύει ότι το ρομπότ θα οδηγήσει μέχρι τον πράσινο δίσκο ακριβώς απέναντι από την τοποθεσία εκκίνησης, στη συνέχεια θα στρίψει δεξιά, θα οδηγήσει μπροστά μέχρι τον μπλε δίσκο, θα στρίψει αριστερά και στη συνέχεια θα σταματήσει να οδηγεί.
    • Παρατηρήστε ότι το ρομπότ εικονικής πραγματικότητας στρίβει δεξιά όταν ο αισθητήρας μπροστινού ματιού ανιχνεύσει έναν πράσινο δίσκο και στρίβει αριστερά όταν ο αισθητήρας μπροστινού ματιού ανιχνεύσει έναν μπλε δίσκο.
  • Συνεχίστε να κατασκευάζετε αυτό το έργο για να οδηγήσετε το Ρομπότ Εικονικής Πραγματικότητας (VR) σε δύο ακόμη μπλε δίσκους στην Παιδική Χαρά με Λαβύρινθο Δίσκου χρησιμοποιώντας τον Αισθητήρα Μπροστινού Ματιού. Προσθέστε εντολές στο έργο, πλοηγηθείτε στο ρομπότ VR στους επόμενους δύο δίσκους και στη συνέχεια σταματήστε. Το πλήρες έργο σας θα πρέπει τώρα να μοιάζει με αυτό:
def main():
    # Οδηγήστε στον 1ο δίσκο (πράσινο), στρίψτε δεξιά
    ενώ δεν είναι front_eye.detect(ΠΡΑΣΙΝΟ):
        drivetrain.drive(ΜΠΡΟΣΤΑ)
        wait(5, MSEC)

    drivetrain.turn_for(ΔΕΞΙΑ, 90, ΜΟΙΡΕΣ)

    # Οδηγήστε στον 2ο δίσκο (μπλε), στρίψτε αριστερά
    ενώ δεν είναι front_eye.detect(ΜΠΛΕ):
        drivetrain.drive(ΜΠΡΟΣΤΑ)
        wait(5, MSEC)

    drivetrain.turn_for(ΑΡΙΣΤΕΡΑ, 90, ΜΟΙΡΕΣ)

    # Οδηγήστε στον 3ο δίσκο (μπλε), στρίψτε αριστερά
    ενώ δεν είναι front_eye.detect(ΜΠΛΕ):
        drivetrain.drive(ΜΠΡΟΣΤΑ)
        wait(5, MSEC)

    drivetrain.turn_for(ΑΡΙΣΤΕΡΑ, 90, ΜΟΙΡΕΣ)

    # Οδηγήστε στον 4ο δίσκο (μπλε), στρίψτε αριστερά
    ενώ δεν είναι front_eye.detect(ΜΠΛΕ):
        σύστημα μετάδοσης κίνησης.οδήγηση(ΜΠΡΟΣΤΑ)
        αναμονή(5, MSEC)

    σύστημα μετάδοσης κίνησης.στροφή_για(ΑΡΙΣΤΕΡΑ, 90, ΜΟΙΡΕΣ)

Αναγνώριση ενός μοτίβου στις κινήσεις του ρομπότ εικονικής πραγματικότητας

Ο στόχος της επιτυχούς πλοήγησης στον Λαβύρινθο των Δίσκων με τον Αισθητήρα Μπροστινού Ματιού είναι η δημιουργία ενός συνεπούς μοτίβου όπου το Ρομπότ Εικονικής Πραγματικότητας στρίβει δεξιά όταν ο Αισθητήρας Μπροστινού Ματιού ανιχνεύει έναν πράσινο δίσκο και αριστερά όταν ο Αισθητήρας Μπροστινού Ματιού ανιχνεύει έναν μπλε δίσκο. Ο εντοπισμός τέτοιων μοτίβων μπορεί να σας βοηθήσει να απλοποιήσετε τα έργα σας καθώς αυτά αυξάνονται σε πολυπλοκότητα.

Κάτοψη της παιδικής χαράς με τον λαβύρινθο των δίσκων από πάνω προς τα κάτω. Το ρομπότ βρίσκεται στην αρχική θέση. Τα βέλη υποδεικνύουν την πορεία που θα ακολουθήσει το ρομπότ Vr, δείχνοντας την κίνηση προς τα εμπρός μέχρι τον πρώτο πράσινο δίσκο, τη στροφή δεξιά, την οδήγηση προς τον μπλε δίσκο, τη στροφή αριστερά, την οδήγηση προς έναν δεύτερο μπλε δίσκο, τη στροφή αριστερά και τη στάση σε έναν τρίτο μπλε δίσκο.

Για την ενημέρωσή σας

Παρατηρήστε ότι υπάρχει επίσης ένα μοτίβο στην ακολουθία των εντολών στο έργο. Υπάρχει μια σειρά από εντολές (για τους μπλε δίσκους) που επαναλαμβάνονται τρεις φορές στο έργο. Αυτό το τμήμα κώδικα μπορεί να συμπυκνωθεί χρησιμοποιώντας έναν βρόχο για . Το έργο που παρουσιάζεται εδώ συνδυάζει αυτούς τους τρεις βρόχους ενώ που σχετίζονται με μπλε δίσκους σε έναν μόνο βρόχο για.

def main():
    # Οδηγήστε στον 1ο δίσκο (πράσινο), στρίψτε δεξιά
    ενώ δεν είναι front_eye.detect(ΠΡΑΣΙΝΟ):
        drivetrain.drive(ΜΠΡΟΣΤΑ)
        wait(5, MSEC)

    drivetrain.turn_for(ΔΕΞΙΑ, 90, ΜΟΙΡΕΣ)

    # Οδηγήστε στους επόμενους 3 δίσκους (μπλε), στρίψτε αριστερά
    για τιμή στο range(3): 
        ενώ δεν είναι front_eye.detect(ΜΠΛΕ):
            drivetrain.drive(ΜΠΡΟΣΤΑ)
            wait(5, MSEC)

        drivetrain.turn_for(ΑΡΙΣΤΕΡΑ, 90, ΜΟΙΡΕΣ)

Η χρήση ενός βρόχουπροςμπορεί να κάνει το έργο σας απλούστερο και πιο ευανάγνωστο, αλλά να περιέχει τις επαναλαμβανόμενες εντολές μέσα σε έναν βρόχο.

  • Ανοίξτε το Disk Maze Playground εάν δεν είναι ήδη ανοιχτό και εκτελέστε το έργο.
  • Παρακολουθήστε το ρομπότ εικονικής πραγματικότητας να πλοηγείται σε τέσσερις δίσκους στην παιδική χαρά με τον λαβύρινθο Disk.

    Κάτοψη της παιδικής χαράς με τον λαβύρινθο των δίσκων από πάνω προς τα κάτω. Το ρομπότ βρίσκεται στην αρχική θέση. Τα βέλη υποδεικνύουν την πορεία που θα ακολουθήσει το ρομπότ εικονικής πραγματικότητας, δείχνοντας την κίνηση προς τα εμπρός μέχρι τον πρώτο πράσινο δίσκο, τη στροφή δεξιά, την οδήγηση προς τον μπλε δίσκο, τη στροφή αριστερά, την οδήγηση προς έναν δεύτερο μπλε δίσκο, τη στροφή αριστερά και τη στάση σε έναν τρίτο μπλε δίσκο. Ένα κόκκινο πλαίσιο βρίσκεται στον τελευταίο μπλε δίσκο που υποδεικνύει την τελική θέση.
  • Σε αυτό το έργο, το ρομπότ εικονικής πραγματικότητας (VR) κινείται προς τα εμπρός μέχρι ο αισθητήρας μπροστινού ματιού να ανιχνεύσει το πράσινο χρώμα.
    • Το ρομπότ εικονικής πραγματικότητας (VR) στρίβει δεξιά κατά 90 μοίρες και κινείται ξανά προς τα εμπρός μέχρι να ανιχνευθεί το μπλε χρώμα.
    • Το ρομπότ εικονικής πραγματικότητας (VR) στρίβει στη συνέχεια αριστερά και κινείται προς τα εμπρός μέχρι ο αισθητήρας μπροστινού ματιού να ανιχνεύσει μπλε χρώμα. Μόλις ανιχνευθεί το μπλε χρώμα, το ρομπότ εικονικής πραγματικότητας στρίβει ξανά αριστερά.
    • Τέλος, το ρομπότ εικονικής πραγματικότητας (VR) κινείται προς τα εμπρός μέχρι ο αισθητήρας μπροστινού ματιού να ανιχνεύσει μπλε χρώμα και στη συνέχεια να σταματήσει.
  • Παρατηρήστε το μοτίβο ότι όταν ο αισθητήρας μπροστινού ματιού ανιχνεύει πράσινο, το ρομπότ εικονικής πραγματικότητας στρίβει δεξιά. Όταν ο αισθητήρας μπροστινού ματιού ανιχνεύσει μπλε χρώμα, το ρομπότ εικονικής πραγματικότητας στρίβει αριστερά σε αυτό το έργο.

Επιλέξτε το κουμπί Επόμενο για να συνεχίσετε με το υπόλοιπο μάθημα.