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

Μάθημα 3: Ροή έργου με πολλαπλούς βρόχους While

Τώρα που έχετε δημιουργήσει ένα έργο κειμένου για να πλοηγηθείτε με το Ρομπότ Εικονικής Πραγματικότητας (VR) στο γράμμα «A» στον Λαβύρινθο Wall Maze Playground, θα επεκτείνετε τις δεξιότητές σας χρησιμοποιώντας υποθετικές εκφράσεις και τιμές αισθητήρων. Σε αυτό το μάθημα, θα πλοηγηθείτε με το ρομπότ εικονικής πραγματικότητας στον αριθμό «2» στον λαβύρινθο τοίχου παιδική χαράκαι, στη συνέχεια, θα εξερευνήσετε γιατί χρειάζονται πρόσθετες εντολές για να οδηγήσετε μέχρι το γράμμα «B». Στη μίνι-πρόκληση, θα εφαρμόσετε αυτές τις δεξιότητες για να πλοηγηθείτε από την αρχή του Λαβύρινθου του Τοίχου μέχρι τον αριθμό «3».

Μια κάτοψη της παιδικής χαράς Wall Maze με το ρομπότ εικονικής πραγματικότητας να ξεκινά από το πράσινο βέλος στο κάτω κέντρο της παιδικής χαράς. Ο αριθμός 2 επισημαίνεται σε ένα κόκκινο πλαίσιο και βρίσκεται στο κέντρο του κάτω αριστερού τεταρτημορίου του λαβυρίνθου, πιο αριστερά από το γράμμα Α. Ο αριθμός 2 βρίσκεται σε μια γωνία που δημιουργείται από τρία τείχη που τον περιβάλλουν.

Μαθησιακά Αποτελέσματα

  • Περιγράψτε τη ροή του προγράμματος σε ένα έργο που έχει ένα ρομπότ εικονικής πραγματικότητας να κινείται προς τα εμπρός μέχρι να πατηθεί ο αισθητήρας προφυλακτήρα.

Μετονομάστε το Έργο

  • Εάν το έργο του προηγούμενου μαθήματος δεν έχει φορτωθεί ήδη, φορτώστε το έργο Unit4Lesson2.
  • Μετονομάστε το έργο Unit4Lesson3.Η γραμμή εργαλείων VEXcode VR που εμφανίζει την Ενότητα 4 Μάθημα 3 ως όνομα έργου. Το όνομα του έργου επισημαίνεται με ένα κόκκινο πλαίσιο.

     

 

Ροή του έργου για να οδηγήσετε μέχρι το γράμμα 'Α'

Στο προηγούμενο μάθημα, το Ρομπότ Εικονικής Πραγματικότητας οδήγησε μέχρι το γράμμα «Α» στον Λαβύρινθο Τοίχου Παιδική Χαρά. Ας αναλύσουμε τη ροή του έργου καθώς προετοιμαζόμαστε να πλοηγηθούμε σε μια νέα τοποθεσία στον Λαβύρινθο του Τοίχου.

Μια κάτοψη της παιδικής χαράς Wall Maze με το ρομπότ εικονικής πραγματικότητας στην αρχική θέση, στο κέντρο και στο κάτω μέρος της παιδικής χαράς. Το γράμμα Α βρίσκεται ακριβώς στα αριστερά του ρομπότ, χωρισμένο από ένα κοντό τοίχωμα.
  • Για να κατανοήσετε καλύτερα τη ροή του έργου για την οδήγηση προς το γράμμα «A» στον Wall Maze Playground, ξεκινήστε τροποποιώντας το προηγούμενο έργο σας ή δημιουργήστε ένα νέο έργο που να ταιριάζει με αυτό το βασικό έργο.

    def main():
    	ενώ δεν είναι left_bumper.pressed():
    		drivetrain.drive(FORWARD)
    		wait(5, MSEC)
    	
    	drivetrain.turn_for(LEFT, 90, DEGREES)
    	
    	ενώ δεν είναι left_bumper.pressed():
    		drivetrain.drive(FORWARD)
    		wait(5, MSEC)
    	
    	drivetrain.turn_for(LEFT, 90, DEGREES)
    
    	ενώ δεν είναι left_bumper.pressed():
    		drivetrain.drive(FORWARD)
    		wait(5, MSEC)
    	
    	drivetrain.stop()
  • Όταν ένα έργο χρησιμοποιεί έναν βρόχο whileμε συνθήκη not , η ροή προγράμματος του έργου ακολουθεί την ίδια ακολουθία από πάνω προς τα κάτω. Ο βρόχος whileεπιτρέπει στη ροή του προγράμματος να «σταματά» σε ένα συγκεκριμένο σημείο, εφόσον πληρούται μια συνθήκη. Ο τελεστήςόχιεπιτρέπει στο έργο να παραμείνει στον βρόχο μέχρι η συνθήκη να αναφερθεί ως False. Στη συνέχεια, το έργο θα προχωρήσει στην επόμενη εντολή εκτός του βρόχου. Μια λογική συνθήκη, όπως το πάτημα του αριστερού bumper, θα αναφέρει μια τιμή True ή False. Σε αυτόν τον κώδικα για την οδήγηση του ρομπότ VR στο γράμμα «A», το ρομπότ VR θα κινηθεί προς τα εμπρός μέχρι η λογική συνθήκη του αριστερού προφυλακτήρα που πατιέται να είναι True.
    Η ροή έργου για την οδήγηση στο γράμμα «A» θα μοιάζει με αυτήν:Ένα διάγραμμα ροής έργου που περιγράφει τη ροή του παραπάνω έργου για να πλοηγηθείτε στο γράμμα Α, το οποίο εμφανίζεται στα αριστερά. Στα δεξιά, τα βέλη υποδεικνύουν τον τρόπο με τον οποίο ρέει το έργο. Καταρχάς, ένα κόκκινο κυκλικό βέλος δείχνει ότι ενώ ο προφυλακτήρας δεν είναι πατημένος, η συνθήκη του βρόχου while επιστρέφει false, επομένως το ρομπότ κινείται προς τα εμπρός. Ένα πράσινο βέλος προς τα κάτω δείχνει στη συνέχεια ότι όταν πατηθεί ο προφυλακτήρας, η συνθήκη αναφέρεται ως αληθής, επομένως το έργο βγαίνει από αυτόν τον βρόχο και το ρομπότ στρίβει αριστερά κατά 90 μοίρες. Αυτή η ακολουθία επαναλαμβάνεται για κάθε βρόχο στο έργο.

Η συμπεριφορά του ρομπότ VR δείχνει πώς εκτελείται κάθε βρόχοςενώ. Αναλυόμενη παράλληλα με την κίνηση του ρομπότ VR, μπορούμε να δούμε ξεκάθαρα πού έχει οδηγήσει το ρομπότ VR μετά από κάθεκατά την εκτέλεση του βρόχουστο έργο.Στα αριστερά εμφανίζεται κώδικας Python που περιέχει τρεις διαδοχικούς βρόχους while, ο καθένας από τους οποίους δίνει εντολή στο ρομπότ να κινηθεί προς τα εμπρός μέχρι να πατηθεί ο αριστερός προφυλακτήρας. Μόλις πατηθεί ο προφυλακτήρας σε κάθε βρόχο, το ρομπότ εκτελεί μια συγκεκριμένη ενέργεια.  Στον πρώτο κύκλο, το ρομπότ κινείται προς τα εμπρός μέχρι να πατηθεί ο προφυλακτήρας και στη συνέχεια στρίβει αριστερά κατά 90 μοίρες. Η εικόνα στα δεξιά δείχνει τη θέση του ρομπότ σε έναν λαβύρινθο μετά από αυτήν την ενέργεια, η οποία σημειώνεται με έναν κίτρινο κύκλο.  Στον δεύτερο βρόχο, το ρομπότ κινείται ξανά προς τα εμπρός μέχρι να πιεστεί ο προφυλακτήρας και στη συνέχεια να στρίψει αριστερά κατά 90 μοίρες. Η δεύτερη εικόνα δείχνει την ενημερωμένη θέση του ρομπότ στον λαβύρινθο μετά από αυτόν τον γύρο.  Στον τρίτο και τελευταίο βρόχο, το ρομπότ κινείται προς τα εμπρός μέχρι να πατηθεί ο προφυλακτήρας. Όταν πατηθεί ο προφυλακτήρας, το ρομπότ σταματά να κινείται. Η τελική εικόνα δείχνει τη θέση στάσης του ρομπότ μέσα στον λαβύρινθο, επισημασμένη και πάλι με έναν κίτρινο κύκλο.

 

Οδηγήστε μέχρι τον αριθμό '2'

Σε αυτό το μάθημα, το έργο θα υποστεί επεξεργασία ώστε το ρομπότ εικονικής πραγματικότητας να οδηγεί μέχρι τον αριθμό '2' στον λαβύρινθο τοίχου παιδική χαρά!

Μια κάτοψη της παιδικής χαράς Wall Maze με το ρομπότ εικονικής πραγματικότητας να ξεκινά από το πράσινο βέλος στο κάτω κέντρο της παιδικής χαράς. Ο αριθμός 2 επισημαίνεται σε ένα κόκκινο πλαίσιο και βρίσκεται στο κέντρο του κάτω αριστερού τεταρτημορίου του λαβυρίνθου, πιο αριστερά από το γράμμα Α. Ο αριθμός 2 βρίσκεται σε μια γωνία που δημιουργείται από τρία τείχη που τον περιβάλλουν.
  • Το έργο από το Μάθημα 2 έχει το ρομπότ εικονικής πραγματικότητας να στρίβει αριστερά για να οδηγήσει μέχρι το γράμμα «A». Για να πλοηγηθεί στον αριθμό «2», το ρομπότ εικονικής πραγματικότητας θα πρέπει να στρίψει δεξιά, να οδηγήσει προς τα εμπρός και στη συνέχεια να στρίψει αριστερά.

    Μια κάτοψη της παιδικής χαράς Wall Maze, όπου το ρομπότ εικονικής πραγματικότητας είναι τοποθετημένο πάνω από τον δείκτη Α, στραμμένο προς τον αριστερό τοίχο. Ένα κόκκινο βέλος δείχνει προς το Α και τρία πράσινα βέλη δείχνουν την προβλεπόμενη διαδρομή προς τον αριθμό 2. Τα πράσινα βέλη δείχνουν προς τα πάνω προς τον τοίχο απέναντι από το Α, έπειτα προς τα αριστερά προς τον επόμενο τοίχο αριστερά από τον αριθμό 2 και έπειτα προς τα κάτω στη γωνία που κρατά τον αριθμό 2.
  • Αλλάξτε την κατεύθυνση της δεύτερης εντολής turn_forπρος τα δεξιά αντί για τα αριστερά. Το έργο σας θα πρέπει τώρα να μοιάζει με αυτό:

    def main():
    	ενώ δεν είναι left_bumper.pressed():
    		drivetrain.drive(ΜΠΡΟΣΤΑ)
    		wait(5, MSEC)
    	
    	drivetrain.turn_for(ΑΡΙΣΤΕΡΑ, 90, ΜΟΙΡΕΣ)
    	
    	ενώ δεν είναι left_bumper.pressed():
    		drivetrain.drive(ΜΠΡΟΣΤΑ)
    		wait(5, MSEC)
    	
    	drivetrain.turn_for(ΔΕΞΙΑ, 90, ΜΟΙΡΕΣ)
    
    	ενώ δεν είναι left_bumper.pressed():
    		drivetrain.drive(ΜΠΡΟΣΤΑ)
    		wait(5, MSEC)
    	
    	drivetrain.stop()
  • Εκκινήστε το Wall Maze Playground εάν δεν είναι ήδη ανοιχτό και εκτελέστε το έργο.
  • Παρακολουθήστε το ρομπότ εικονικής πραγματικότητας να αρχίζει να οδηγεί προς τον αριθμό «2», αλλά να σταματάει σε έναν τοίχο. Έτσι, το ρομπότ εικονικής πραγματικότητας (VR) πρέπει να στρίψει αριστερά μόλις πιέσει τον τοίχο αντί να σταματήσει.

    Μια κάτοψη της παιδικής χαράς Wall Maze με το ρομπότ εικονικής πραγματικότητας στραμμένο προς τον τοίχο απέναντι από το γράμμα Α, στραμμένο προς τα πάνω.
  • Επιλέξτε το κουμπί «Επαναφορά» για να επαναφέρετε την Παιδική Χαρά και να μετακινήσετε το Ρομπότ Εικονικής Πραγματικότητας (VR) πίσω στην αρχική του θέση.Η παιδική χαρά Wall Maze που δείχνει ολόκληρη τη διεπαφή της παιδικής χαράς. Το κουμπί επαναφοράς κάτω αριστερά στη διεπαφή της παιδικής χαράς επισημαίνεται με ένα κόκκινο πλαίσιο.

     

  • Επεξεργαστείτε τον κώδικα αφαιρώντας την εντολή stop και αντικαθιστώντας την με τις ακόλουθες εντολές, προκειμένου να οδηγήσετε το ρομπότ εικονικής πραγματικότητας στον αριθμό '2'.

    def main():
    	ενώ δεν είναι left_bumper.pressed():
    		drivetrain.drive(ΜΠΡΟΣΤΑ)
    		wait(5, MSEC)
    	
    	drivetrain.turn_for(ΑΡΙΣΤΕΡΑ, 90, ΜΟΙΡΕΣ)
    	
    	ενώ δεν είναι left_bumper.pressed():
    		drivetrain.drive(ΜΠΡΟΣΤΑ)
    		wait(5, MSEC)
    	
    	drivetrain.turn_for(ΔΕΞΙΑ, 90, ΜΟΙΡΕΣ)
    
    	ενώ δεν είναι left_bumper.pressed():
    		drivetrain.drive(ΜΠΡΟΣΤΑ)
    		wait(5, MSEC)
    	
    	drivetrain.turn_for(ΑΡΙΣΤΕΡΑ, 90, ΜΟΙΡΕΣ)
    	
    	ενώ δεν είναι left_bumper.pressed():
    		drivetrain.drive(ΜΠΡΟΣΤΑ)
    		wait(5, MSEC)
    	
    	drivetrain.turn_for(ΑΡΙΣΤΕΡΑ, 90, ΜΟΙΡΕΣ)
    
    	ενώ δεν είναι left_bumper.pressed():
    		drivetrain.drive(FORWARD)
    		wait(5, MSEC)
    	
    	drivetrain.stop()
  • Εκκινήστε το Wall Maze Playground εάν δεν είναι ήδη ανοιχτό και εκτελέστε το έργο.
  • Παρακολουθήστε το ρομπότ εικονικής πραγματικότητας να οδηγεί προς τον αριθμό '2' στον λαβύρινθο τοίχου χαρά!

    Μια κάτοψη της παιδικής χαράς Wall Maze. Το ρομπότ εικονικής πραγματικότητας (VR) είναι τώρα τοποθετημένο πάνω από τον δείκτη 2, στραμμένο προς τον κάτω τοίχο με το μπροστινό μέρος του πιεσμένο στον τοίχο.
  • Επιλέξτε το κουμπί «Επαναφορά» για να επαναφέρετε την Παιδική Χαρά και να μετακινήσετε το Ρομπότ Εικονικής Πραγματικότητας (VR) πίσω στην αρχική του θέση.

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