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

Μάθημα 4: Χρήση μπλοκ [Forever]

Επαναλαμβανόμενος έλεγχος συνθηκών

Όπως παρατηρήθηκε στο προηγούμενο μάθημα, το μπλοκ [If then] ελέγχει τις συνθήκες μόνο μία φορά. Για να ελέγχονται επανειλημμένα οι συνθήκες που περιέχονται στα μπλοκ [If then], απαιτείται ένα μπλοκ C [Forever]. Το μπλοκ [Forever] είναι ένα μπλοκ C από την κατηγορία Control που επαναλαμβάνει τις συμπεριφορές που περιέχονται σε αυτό, για πάντα.

Ένα κενό μπλοκ VEXcode VR Forever.
  • Φορτώστε το έργο Unit7Lesson3 από το προηγούμενο μάθημα.

    Το ίδιο έργο μπλοκ VR του VEXcode από το τέλος του τελευταίου μαθήματος. Ξεκινά με ένα μπλοκ When Started (Κατά την Έναρξη) και στη συνέχεια υπάρχει ένα μπλοκ If Then (Αν Τότε) με μια λογική παράμετρο ενός μπλοκ Color Sensing (Ανίχνευση Χρώματος) που αναφέρει 'Front Eye detects green?' (Το Μπροστινό Μάτι ανιχνεύει πράσινο;) και ένα μπλοκ Turn right for 90 μοίρες μέσα στο κοντέινερ If (Στρίψτε δεξιά για 90 μοίρες). Στη συνέχεια, υπάρχει η ίδια στοίβα μπλοκ αν μπλοκάρει και στρίβει, αλλά αλλάζει σε στρίψιμο αριστερά κατά 90 μοίρες αν ανιχνευθεί το μπλε χρώμα. Στη συνέχεια, το ίδιο ισχύει αν χρησιμοποιείται η στοίβα μπλοκ και στροφής, αλλά αλλάζει σε Διακοπή οδήγησης αν ανιχνευθεί το κόκκινο χρώμα. Τέλος, το ίδιο ισχύει αν χρησιμοποιηθεί η στοίβα μπλοκ και στροφής, αλλά αλλάζει σε Οδήγηση Εμπρός αν δεν ανιχνευθεί χρώμα.
  • Μετονομάστε το έργο Unit7Lesson4.

    Γραμμή εργαλείων VEXcode VR με το κουμπί «Όνομα έργου» επισημασμένο σε κόκκινο πλαίσιο, αριστερά από το κουμπί «Επιλογή παιδικής χαράς». Το όνομα του έργου έχει οριστεί σε Ενότητα 7 Μάθημα 4.
  • Σύρετε ένα μπλοκ [Forever] στον χώρο εργασίας και συνδέστε το στην κορυφή της στοίβας των μπλοκ. Παρατηρήστε ότι αυτό θα περιλαμβάνει και τα τέσσερα μπλοκ [If then] μέσα στο μπλοκ [Forever].

    Τα μπλοκ VEXcode VR προβάλλονται από παλαιότερα, αλλά με ένα βέλος που υποδεικνύει την προσθήκη ενός μπλοκ Forever που περιβάλλεται από όλες τις εντολές if. Ξεκινά με ένα μπλοκ When Started και στη συνέχεια υπάρχει μια σειρά από τέσσερις εντολές if τυλιγμένες σε ένα μπλοκ Forever. Το πρώτο είναι ένα μπλοκ If Then με μια λογική παράμετρο ενός μπλοκ Color Sensing που αναφέρει 'Front Eye detects green?' και ένα μπλοκ Turn right for 90 μοίρες μέσα στο κοντέινερ If. Στη συνέχεια, υπάρχει η ίδια στοίβα μπλοκ αν μπλοκάρει και στρίβει, αλλά αλλάζει σε στρίψιμο αριστερά κατά 90 μοίρες αν ανιχνευθεί το μπλε χρώμα. Στη συνέχεια, το ίδιο ισχύει αν χρησιμοποιείται η στοίβα μπλοκ και στροφής, αλλά αλλάζει σε Διακοπή οδήγησης αν ανιχνευθεί το κόκκινο χρώμα. Τέλος, το ίδιο ισχύει αν χρησιμοποιηθεί η στοίβα μπλοκ και στροφής, αλλά αλλάζει σε Οδήγηση Εμπρός αν δεν ανιχνευθεί χρώμα.

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

    Τα μπλοκ μπορούν να προστεθούν στην αρχή ή στη μέση της στοίβας έργου ευθυγραμμίζοντας την κορυφή του μπλοκ, με την επιθυμητή τοποθέτηση στη στοίβα.

    Μια οπτικοποίηση του πώς ένα μπλοκ Forever μπορεί να συρθεί στην κορυφή μιας στοίβας και να τυλιχθεί αυτόματα γύρω από τα περιεχόμενα της στοίβας. Το έργο VEXcode VR blocks είναι το ίδιο με πριν και περιέχεται σε έναν βρόχο αέναης λειτουργίας. Οι εντολές if έχουν ως εξής: First (Πρώτον) είναι ένα μπλοκ If Then με μια λογική παράμετρο ενός μπλοκ Color Sensing που αναφέρει 'Front Eye detects green?' (Το μπροστινό μάτι ανιχνεύει πράσινο;) και ένα μπλοκ Turn right for 90 degrees (Στροφή δεξιά για 90 μοίρες) μέσα στο κοντέινερ If. Στη συνέχεια, υπάρχει η ίδια στοίβα μπλοκ αν μπλοκάρει και στρίβει, αλλά αλλάζει σε στρίψιμο αριστερά κατά 90 μοίρες αν ανιχνευθεί το μπλε χρώμα. Στη συνέχεια, το ίδιο ισχύει αν χρησιμοποιείται η στοίβα μπλοκ και στροφής, αλλά αλλάζει σε Διακοπή οδήγησης αν ανιχνευθεί το κόκκινο χρώμα. Τέλος, το ίδιο ισχύει αν χρησιμοποιηθεί η στοίβα μπλοκ και στροφής, αλλά αλλάζει σε Οδήγηση Εμπρός αν δεν ανιχνευθεί χρώμα.

    Αυτό το παρακάτω βίντεο δείχνει πώς να προσθέσετε το μπλοκ [Forever] γύρω από τα τέσσερα μπλοκ [If then] στο τρέχον έργο. Παρατηρήστε ότι η κορυφή του μπλοκ [Για πάντα] είναι ευθυγραμμισμένη αμέσως μετά το [Όταν ξεκίνησε] και το πρώτο μπλοκ [Αν τότε]. Το μπλοκ [Forever] στη συνέχεια αναδιπλώνεται γύρω από όλα τα ακόλουθα μπλοκ στη στοίβα έργου.

  • Τώρα που το μπλοκ [Forever] έχει προστεθεί στο έργο, έτσι ώστε όλα τα μπλοκ [If then] να έχουν συνεχώς ελεγχόμενες συνθήκες, ανοίξτε το Disk Maze Playground και εκτελέστε το έργο.
  • Όταν εκτελεστεί αυτό το έργο, το ρομπότ εικονικής πραγματικότητας θα πλοηγηθεί στην παιδική χαρά με τον λαβύρινθο Disk Maze από την αρχή μέχρι το τέλος. Μόλις το ρομπότ εικονικής πραγματικότητας ανιχνεύσει κόκκινο, θα σταματήσει να οδηγεί.

    Μια κάτοψη της παιδικής χαράς VR Disk Maze, με το ρομπότ VR να έχει περάσει από κάθε δίσκο και να ακουμπάει στον τελευταίο κόκκινο δίσκο.
  • Στο έργο από το προηγούμενο μάθημα, οι συνθήκες εντός των μπλοκ [If then] ελέγχθηκαν μόνο μία φορά. Δεδομένου ότι οι συνθήκες εντός των μπλοκ [If then] ελέγχθηκαν μόνο μία φορά, το ρομπότ εικονικής πραγματικότητας προχώρησε επ' αόριστον επειδή η συνθήκη μη ανίχνευσης χρώματος αναφέρθηκε ως TRUE.

    Ένα διάγραμμα της ροής της λογικής στο έργο μας με μπλοκ VEXcode VR χωρίς το μπλοκ forever. Τα βέλη υποδεικνύουν ότι κάθε εντολή if εκτελείται μόνο μία φορά πριν από το τέλος του έργου, καθιστώντας έτσι το έργο μας πολύ λιγότερο ανταποκρινόμενο από ό,τι θα θέλαμε. Το έργο μας ελέγχει αν το μπροστινό μάτι ανιχνεύει πράσινο και, αν ναι, στρίβει δεξιά κατά 90 μοίρες. Στη συνέχεια, εάν το μπροστινό μάτι ανιχνεύσει μπλε χρώμα, στρίβει αριστερά κατά 90 μοίρες. Στη συνέχεια, εάν το μπροστινό μάτι ανιχνεύσει κόκκινο, σταματάει η οδήγηση. Τέλος, αν το μπροστινό μάτι δεν ανιχνεύσει κανένα, κινείται προς τα εμπρός.
  • Τώρα που έχει προστεθεί το μπλοκ [Forever], κάθε συνθήκη των μπλοκ C [If then] θα ελέγχεται επανειλημμένα. Κατά τη διάρκεια της ροής του έργου, εάν η συνθήκη του μπλοκ [If then] C είναι TRUE, τα μπλοκ μέσα στο μπλοκ [If then] C εκτελούνται. Εάν η συνθήκη του μπλοκ C [Αν τότε] είναι FALSE, τα μπλοκ μέσα στο μπλοκ C [Αν τότε] παραλείπονται και η ροή του έργου θα συνεχιστεί στο επόμενο μπλοκ της στοίβας. Αυτό επιτρέπει στο ρομπότ εικονικής πραγματικότητας να εκτελεί διακριτές συμπεριφορές, όπως στροφή ή διακοπή, μόλις ανιχνεύσει ένα συγκεκριμένο χρώμα.

    Ένα διάγραμμα της ροής της λογικής των μπλοκ VR του VEXcode προβάλλεται στα αριστερά, το οποίο διατρέχει ένα παράδειγμα του ρομπότ VR στην εικόνα στα δεξιά. Η εικόνα δείχνει το ρομπότ εικονικής πραγματικότητας να φτάνει σε έναν μπλε δίσκο και να στρίβει αριστερά. Το διάγραμμα υποδεικνύει ότι οι εντολές if επαναλαμβάνονται επ' αόριστον και η καθεμία ελέγχεται σε κάθε βρόχο. Αφού το μπροστινό μάτι δεν ανιχνεύσει πράσινο, ελέγχει για το μπλε χρώμα, το οποίο επιστρέφει την τιμή true και στρέφει το ρομπότ αριστερά κατά 90 μοίρες. Μετά από αυτό, η ροή της λογικής συνεχίζεται προς τα κάτω στη στοίβα, ελέγχοντας για κόκκινο και τίποτα.
  • Τα μπλοκ [If then] χρησιμοποιούνται με μπλοκ [Forever] για να διασφαλιστεί ότι οι συνθήκες ελέγχονται συνεχώς.

    Ένα διάγραμμα της ροής της λογικής στο έργο μας με τα μπλοκ VEXcode VR, συμπεριλαμβανομένου του εξωτερικού μπλοκ Forever. Κάθε βέλος φέρει πλέον ετικέτα με αυτό που μετρά η συγκεκριμένη λογική εντολή και ένα κίτρινο βέλος δείχνει τη ροή της λογικής που επαναλαμβάνεται συνεχώς σε κάθε μπλοκ στον βρόχο Forever. Είναι σαφές ότι κάθε εντολή if ελέγχεται σε κάθε βρόχο του μπλοκ forever, ανεξάρτητα από το αν το αποτέλεσμα είναι αληθές ή ψευδές.

Χρήση μπλοκ διακοπτών 

Αυτό είναι το μπλοκ Switch [Forever]. Η εντολή Switch Python για ​​Forever δημιουργεί έναν βρόχο while όπου η συνθήκη είναι True. Οι εντολές που είναι ένθετες μέσα στον βρόχο όταν (when) επαναλαμβάνονται επ' αόριστον, καθώς η συνθήκη είναι πάντα True. 

Μια έκδοση μπλοκ διακόπτη VEXcode VR του μπλοκ Forever. Ο κώδικας Python αναφέρει 'while True:', το οποίο είναι το αντίστοιχο μιας πρότασης forever στην Python.

Ερωτήσεις

Επιλέξτε έναν σύνδεσμο παρακάτω για να αποκτήσετε πρόσβαση στο κουίζ του μαθήματος.

Έγγραφο Google / .docx / .pdf