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

Μάθημα 4: Χρήση άπειρων βρόχων While

Επίλυση του προβλήματος του λαβυρίνθου των δίσκων

Κατασκευή του έργου

  • Φορτώστε το έργο Unit7Lesson3 από το προηγούμενο μάθημα ή δημιουργήστε ξανά το έργο που φαίνεται εδώ για να ξεκινήσετε.
def main():
	# Εάν το μπροστινό μάτι ανιχνεύσει πράσινο, στρίψτε δεξιά
    εάν front_eye.detect(GREEN):
        drivetrain.turn_for(RIGHT, 90, DEGREES)

    # Εάν το μπροστινό μάτι ανιχνεύσει μπλε, στρίψτε αριστερά
    εάν front_eye.detect(BLUE):
        drivetrain.turn_for(LEFT, 90, DEGREES)

    # Εάν το μπροστινό μάτι ανιχνεύσει κόκκινο, σταματήστε
    εάν front_eye.detect(RED): 
        drivetrain.stop()

    # Εάν το μπροστινό μάτι δεν ανιχνεύσει κανένα, προχωρήστε μπροστά
    εάν front_eye.detect(NONE): 
        drivetrain.drive(FORWARD)
  • Μετονομάστε το έργο Μονάδα7Μάθημα4.Γραμμή εργαλείων VEXcode VR με εμφανές το πλαίσιο ονόματος έργου. Το έργο ονομάζεται Ενότητα 7 Μάθημα 4.

     

  • Σύρετε ή πληκτρολογήστε μια άπειρη τιμήwhile , επαναλάβετε την επανάληψη στην αρχή του έργου και ορίστε τη συνθήκη σε True.
def main():
    ενώ True:
    	wait(5, MSEC)
  • Μετακινήστε την εντολήwaitγια να δημιουργήσετε χώρο για τις εντολές που θα εισέλθουν στον άπειρο βρόχοwhile.
def main():
    ενώ True:
    
    
    	wait(5, MSEC)
  • Μέσα στον βρόχο άπειρουwhile , αντιγράψτε και επικολλήστε τις προηγούμενες εντολές if μέσα στον βρόχο. Μην διαγράψετε την εντολή wait στο κάτω μέρος του βρόχου while. Το έργο σας μπορεί να μοιάζει με αυτό. Παρατηρήστε ότι η αντιγραφή και επικόλληση εντολών με αυτόν τον τρόπο δεν έχει ως αποτέλεσμα τη σωστή εσοχή.
def main():
    while True:
        
    # Εάν το μπροστινό μάτι ανιχνεύσει πράσινο, στρίψτε δεξιά
    εάν front_eye.detect(GREEN):
        drivetrain.turn_for(RIGHT, 90, DEGREES)

    # Εάν το μπροστινό μάτι ανιχνεύσει μπλε, στρίψτε αριστερά
    εάν front_eye.detect(BLUE):
        drivetrain.turn_for(LEFT, 90, DEGREES)

    # Εάν το μπροστινό μάτι ανιχνεύσει κόκκινο, σταματήστε
    εάν front_eye.detect(RED): 
        drivetrain.stop()

    # Εάν το μπροστινό μάτι δεν ανιχνεύσει κανένα, προχωρήστε μπροστά
    εάν front_eye.detect(NONE): 
        drivetrain.drive(FORWARD)

    wait(5, MSEC)
  • Να θυμάστε ότι η εσοχή είναι ΠΟΛΥ σημαντική στο VEXcode VR Python. Για να εκτελεστεί η ροή του έργου όπως προβλέπεται, οι εντολές ifπρέπει να έχουν εσοχή μέσα στον άπειρο βρόχο while. Επιλέξτε τις εντολέςifκαι πατήστε 'Tab' για να τις εισάγετε μέσα στον άπειρο βρόχοwhile. Όταν γίνει σωστή εσοχή, το έργο σας θα πρέπει να μοιάζει με αυτό: 
def main():
    while True:
        
        # Εάν το μπροστινό μάτι ανιχνεύσει πράσινο, στρίψτε δεξιά
        εάν front_eye.detect(GREEN):
            drivetrain.turn_for(RIGHT, 90, DEGREES)

        # Εάν το μπροστινό μάτι ανιχνεύσει μπλε, στρίψτε αριστερά
        εάν front_eye.detect(BLUE):
            drivetrain.turn_for(LEFT, 90, DEGREES)

        # Εάν το μπροστινό μάτι ανιχνεύσει κόκκινο, σταματήστε
        εάν front_eye.detect(RED): 
            drivetrain.stop()

        # Εάν το μπροστινό μάτι δεν ανιχνεύσει κανένα, προχωρήστε μπροστά
        εάν front_eye.detect(NONE): 
            drivetrain.drive(FORWARD)

        wait(5, MSEC)
  • Με την προσθήκη του άπειρου βρόχου while στο έργο, όλες οι εντολές if θα έχουν επανειλημμένα ελεγχόμενες συνθήκες. Ανοίξτε το Disk Maze Playground και εκτελέστε το έργο.
  • Όταν εκτελεστεί αυτό το έργο, το ρομπότ εικονικής πραγματικότητας θα πλοηγηθεί στην παιδική χαρά με τον λαβύρινθο Disk Maze από την αρχή μέχρι το τέλος. Μόλις το ρομπότ εικονικής πραγματικότητας ανιχνεύσει κόκκινο, θα σταματήσει να οδηγεί.

    Ρομπότ Εικονικής Πραγματικότητας (VR) στην παιδική χαρά Disk Maze με το ρομπότ VR να σταμάτησε μπροστά από τον κόκκινο δίσκο κοντά στην κάτω δεξιά γωνία της παιδικής χαράς.

Συνοπτικά

  • Στο έργο από το προηγούμενο μάθημα, οι συνθήκες εντός των δηλώσεων if ελέγχθηκαν μόνο μία φορά. Δεδομένου ότι οι συνθήκες εντός των δηλώσεων if ελέγχθηκαν μόνο μία φορά, το ρομπότ εικονικής πραγματικότητας προχώρησε επ' αόριστον επειδή η συνθήκη «χωρίς χρώμα» που ανιχνεύθηκε αναφέρθηκε ως True στην αρχή του έργου.
  • Τώρα που έχει προστεθεί ο άπειρος βρόχος while , κάθε συνθήκη των δηλώσεων if θα ελέγχεται επανειλημμένα. Η συνθήκη του βρόχου while είναι πάντα True και επομένως ο κώδικας μέσα στον βρόχο while θα εκτελείται πάντα. Αυτό θα ελέγχει επανειλημμένα τις συνθήκες των εντολών if ενώ το έργο εκτελείται. 
  • Κατά τη διάρκεια της ροής του έργου, εάν η συνθήκη των δηλώσεων if είναι True, εκτελούνται οι εντολές εντός της δήλωσης if. Εάν η συνθήκη της πρότασης if είναι False, οι εντολές μέσα στην πρόταση if δεν εκτελούνται και η ροή του έργου θα συνεχιστεί στην επόμενη εντολή. Αυτό επιτρέπει στο ρομπότ εικονικής πραγματικότητας να εκτελεί διακριτές συμπεριφορές, όπως στροφή ή διακοπή, μόλις ανιχνεύσει ένα συγκεκριμένο χρώμα.
  • Εάν χρησιμοποιούνται εντολές με άπειρο ενώεπαναλαμβάνονται για να διασφαλιστεί ότι οι συνθήκες ελέγχονται συνεχώς.

Ερωτήσεις

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

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