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

Μάθημα 2: Υποθετικές Δηλώσεις If/Else

Σε αυτό το μάθημα, θα δημιουργήσετε ένα έργο όπου το ρομπότ εικονικής πραγματικότητας θα ανατρέψει τουλάχιστον δύο κτίρια στην παιδική χαρά Dynamic Castle Crasher. Θα χρειαστεί ένας αλγόριθμος για την επίλυση της πρόκλησης χρησιμοποιώντας βρόχους και ανατροφοδότηση αισθητήρων, επειδή η διάταξη του Playground αλλάζει με κάθε επαναφορά.

Παραδείγματα διατάξεων παιδικής χαράς Dynamic Castle Crasher:

Τρεις όψεις από πάνω προς τα κάτω δειγμάτων διατάξεων της παιδικής χαράς Dynamic Castle Crasher με το ρομπότ στην ίδια αρχική θέση και κάστρα σε διαφορετικές θέσεις. Οι διατάξεις είναι δίπλα-δίπλα, για να τονιστεί ο τρόπος με τον οποίο τα κάστρα αλλάζουν θέση κάθε φορά που γίνεται επαναφορά της Παιδικής Χαράς.

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

  • Προσδιορίστε ότι ένα μπλοκ [If then else] είναι ένα μπλοκ C που εκτελεί τα μπλοκ εντός είτε του κλάδου If είτε του κλάδου Else με βάση την τιμή Boolean που αναφέρεται.
  • Προσδιορίστε ότι ένα μπλοκ [If then else] χρησιμοποιείται κανονικά με ένα μπλοκ [Repeat] ή ένα μπλοκ [Forever] προκειμένου να ελεγχθεί η συνθήκη περισσότερες από μία φορές.
  • Προσδιορίστε και περιγράψτε γιατί ένα μπλοκ [If then else] χρησιμοποιείται με βρόχους.
  • Περιγράψτε τι θα προκαλούσε την εκτέλεση ενός κλάδου [If then else] σε ένα έργο.

Πώς να χρησιμοποιήσετε ένα μπλοκ [Αν τότε αλλιώς]

Αυτή η πρόκληση είναι διαφορετική από την πρόκληση Castle Crasher στην Ενότητα 2. Η πρόκληση της Μονάδας 2 χρησιμοποίησε απλή αλληλουχία και εντολές συστήματος μετάδοσης κίνησης για να ανατρέψει κτίρια σε μια στατική παιδική χαρά.

Ένα δείγμα έργου VR VEXcode από την Ενότητα 2. Το έργο ξεκινά με ένα μπλοκ "Όταν ξεκίνησε" και έχει 6 προσαρτημένα μπλοκ. Τα μπλοκ διαβάζονται με τη σειρά: Ρυθμίστε την ταχύτητα κίνησης στο 100%, ρυθμίστε την ταχύτητα στροφής στο 100%, οδηγήστε προς τα εμπρός για 1550 mm, στρίψτε δεξιά για 180 μοίρες, οδηγήστε προς τα εμπρός για 700 mm και στη συνέχεια στρίψτε δεξιά για 90 μοίρες.

Οι εντολές του συστήματος μετάδοσης κίνησης από μόνες τους δεν θα είναι αρκετές για να αναγκάσει το ρομπότ εικονικής πραγματικότητας (VR) να γκρεμίσει δύο ή περισσότερα κτίρια λόγω των μεταβαλλόμενων διατάξεων του Dynamic Castle Crasher Playground. Ένα σύνολο εντολών συστήματος μετάδοσης κίνησης μπορεί να λειτουργεί σε ένα Playground, αλλά όχι σε ένα άλλο. Θα χρειαστεί ένας αλγόριθμος που χρησιμοποιεί αισθητήρες και επιλογή. Το μπλοκ [If then else] θα χρησιμοποιηθεί για τη δημιουργία ενός αλγορίθμου προσθέτοντας επιλογή με εντολές υπό όρους σε αυτό το έργο.

Μια κάτοψη της παιδικής χαράς Dynamic Castle Crasher, με μόνο μερικά κάστρα ανατρεπόμενα και άλλα ανέπαφα, για να καταδείξει πώς οι εντολές του συστήματος μετάδοσης κίνησης από μόνες τους δεν επαρκούν όταν η θέση των κάστρων αλλάζει τυχαία.

Υπάρχουν δύο κύρια βήματα για να ανατρέψει το ρομπότ εικονικής πραγματικότητας (VR) κτίρια στην παιδική χαρά Dynamic Castle Crasher.

  1. Εάν το ρομπότ εικονικής πραγματικότητας ανιχνεύσει ένα κτίριο κάστρου, προχωρήστε προς το μέρος του για να το ανατρέψετε.
    1. Σε αντίθεση με κάθε άλλη παιδική χαρά, η παιδική χαρά του Dynamic Castle Crasher δεν έχει τοίχους. Επειδή τα κτίρια είναι τα μόνα αντικείμενα στην παιδική χαρά Dynamic Castle Crasher, ο Αισθητήρας Απόστασης μπορεί να χρησιμοποιηθεί για την ανίχνευση κτιρίων.

      Μια κάτοψη της παιδικής χαράς Dynamic Castle Crasher με το ρομπότ στην αρχική θέση, στο κάτω κέντρο της διάταξης, με ένα διακεκομμένο βέλος να δείχνει ένα κάστρο ακριβώς μπροστά από το ρομπότ που επισημαίνεται σε ένα κόκκινο πλαίσιο. Το βέλος υποδεικνύει ότι ο αισθητήρας μπορεί να ανιχνεύσει το κάστρο ως αντικείμενο μπροστά του.
  2. Εάν το ρομπότ εικονικής πραγματικότητας δεν ανιχνεύσει κάποιο κτίριο κάστρου, γυρίστε και ελέγξτε ξανά για κάποιο κτίριο κάστρου.
    1. Επειδή τα κτίρια είναι τα μόνα αντικείμενα στην παιδική χαρά Dynamic Castle Crasher, ο Αισθητήρας Απόστασης μπορεί να χρησιμοποιηθεί για την ανίχνευση κτιρίων κάστρων.

      Μια κάτοψη της παιδικής χαράς Dynamic Castle Crasher, με το ρομπότ στην αρχική θέση και καμπύλα βέλη εκατέρωθεν, που υποδεικνύουν την ανάγκη στροφής μέχρι να ανιχνευθεί ένα αντικείμενο κάστρου.

Μόλις ολοκληρωθούν τα βήματα 1 και 2, το ρομπότ εικονικής πραγματικότητας μπορεί να επιστρέψει στο βήμα 1 και να χρησιμοποιήσει τον αισθητήρα απόστασης για να βρει το επόμενο κτίριο που θα ανατραπεί.

  • Ξεκινήστε ένα νέο έργο στο VEXcode VR και ονομάστε το έργο Unit9Lesson2.

    Το πλαίσιο ονόματος έργου στο κέντρο της γραμμής εργαλείων VEXcode VR επισημασμένο με κόκκινο πλαίσιο, αριστερά από το κουμπί Επιλογή παιδικής χαράς. Το όνομα του έργου είναι Ενότητα 9 Μάθημα 2.
  • Προσθέστε δύο μπλοκ [Σχόλιο] στον χώρο εργασίας και ολοκληρώστε τα βήματα που περιγράφονται παραπάνω.

    Ένα νέο έργο VEXcode VR με δύο μπλοκ σχολίων συνδεδεμένα στο μπλοκ When started (Κατά την έναρξη). Τα σχόλια διαβάζονται με τη σειρά: Αναποδογυρίστε το κτίριο που βρέθηκε χρησιμοποιώντας τον Αισθητήρα Απόστασης και Γυρίστε για να βρείτε ένα κτίριο χρησιμοποιώντας τον Αισθητήρα Απόστασης.
  • Ένα μπλοκ [If then else] μπορεί να χρησιμοποιηθεί για την ενεργοποίηση καθεμίας από τις ενέργειες που περιγράφονται παραπάνω. Κάθε ενέργεια εξαρτάται από το αν η συνθήκη Boolean στο μπλοκ [If then else] αναφέρει TRUE ή FALSE. Προσθέστε ένα μπλοκ [If then else] κάτω από τα μπλοκ [Comment].

    Το ίδιο έργο VEXcode VR με ένα μπλοκ If then else συνημμένο κάτω από το δεύτερο σχόλιο. Η παράμετρος του κλάδου If αφήνεται ανοιχτή.

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

    Το μπλοκ [If then else] είναι ένα μπλοκ C που δέχεται μπλοκ αναφοράς Boolean ως είσοδο. Το μπλοκ [If then else] είναι μια υπό όρους πρόταση που ελέγχει τη ροή ενός έργου. Το μπλοκ [If then else] θα εκτελέσει μια συγκεκριμένη ακολουθία εντολών εάν πληρούται η συνθήκη και ένα άλλο σύνολο εντολών εάν ΔΕΝ πληρούται η συνθήκη, «διακλαδώνοντας» έτσι τη ροή του έργου. Θα εκτελεστεί μόνο ένας κλάδος στο [If then else].

    Ένα μπλοκ If then else από το VEXcode VR Toolbox.
    • Εάν η συνθήκη αναφέρεται ως TRUE, εκτελούνται τα μπλοκ μέσα στον κλάδο If Then.
    • Εάν η συνθήκη αναφέρεται ως FALSE, εκτελούνται τα μπλοκ μέσα στον κλάδο Else.
    Ένα έργο VEXcode VR χρησιμοποιείται για να απεικονίσει τη λειτουργία κάθε κλάδου του μπλοκ If then else. Σε αυτό το έργο, το μπλοκ If then else είναι συνδεδεμένο με ένα When started (Κατά την έναρξη) και αναφέρει If Front Distance found an object (Εάν η Απόσταση Εμπρός βρέθηκε ένα αντικείμενο, τότε Σχόλιο - Ανασηκώστε το κτίριο που βρέθηκε χρησιμοποιώντας τον Αισθητήρα Απόστασης και προχωρήστε προς τα εμπρός. Διαφορετικά, στρίψτε για να βρείτε ένα κτίριο χρησιμοποιώντας τον Αισθητήρα Απόστασης και στρίψτε δεξιά. Ο κλάδος «Εάν τότε» φέρει την ετικέτα Οδήγηση προς τα εμπρός εάν ο αισθητήρας απόστασης ανιχνεύσει ένα αντικείμενο. Ο κλάδος «Else» φέρει την ένδειξη Στρίψτε δεξιά εάν ο αισθητήρας απόστασης δεν ανιχνεύσει αντικείμενο.

    Μόλις εκτελεστούν όλα τα μπλοκ μέσα σε έναν από τους κλάδους, το έργο θα προχωρήσει στο επόμενο μπλοκ εκτός του μπλοκ [If then else].

  • Σε αυτό το έργο, ο αισθητήρας απόστασης μπορεί να χρησιμοποιηθεί για την ανίχνευση κτιρίων στην παιδική χαρά. Προσθέστε ένα μπλοκ <Distance found object> στο μπλοκ [Εάν τότε αλλιώς].

    Το ίδιο έργο VEXcode VR από πριν, με ένα μπλοκ αντικειμένου Distance Found που προστέθηκε ως παράμετρος του κλάδου If then. Το μπλοκ "Εάν τότε" τώρα αναφέρει "Εάν η μπροστινή απόσταση βρήκε ένα αντικείμενο τότε".

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

    Το μπλοκ <Distance found object> είναι ένα μπλοκ αναφοράς Boolean που αναφέρει εάν ο Αισθητήρας Απόστασης έχει βρει ένα αντικείμενο μπροστά από το Ρομπότ VR. Αυτό το μπλοκ αναφέρει την τιμή TRUE όταν υπάρχει ένα αντικείμενο ή μια επιφάνεια σε απόσταση 3000 χιλιοστών (mm) από το ρομπότ εικονικής πραγματικότητας.

    Απόσταση αντικειμένου που βρέθηκε Μπλοκ VR VEXcode από την Εργαλειοθήκη που διαβάζει Απόσταση από το μπροστινό μέρος βρέθηκε ένα αντικείμενο;
  • Τώρα, κάθε κλάδος του μπλοκ [If then else] πρέπει να οριστεί χρησιμοποιώντας τα σχόλια που δημιουργήθηκαν στην αρχή του έργου. Όταν το μπλοκ <Distance found object> αναφέρει την ένδειξη TRUE, το ρομπότ εικονικής πραγματικότητας (VR) θα πρέπει να οδηγήσει προς αυτό το κτίριο για να το ανατρέψει. Μετακινήστε αυτό το μπλοκ [Σχόλιο] στον κλάδο 'Αν Τότε' του έργου.

    Το ίδιο έργο VEXcode VR με το πρώτο σχόλιο μετακινήθηκε μέσα στο C του κλάδου If then. Το έργο τώρα αναφέρει "Όταν ξεκίνησε", "Εάν η μπροστινή απόσταση βρήκε ένα αντικείμενο" και, στη συνέχεια, "Κτύπησε πάνω από το κτίριο που βρέθηκε χρησιμοποιώντας τον αισθητήρα απόστασης".
  • Μετακινήστε το άλλο μπλοκ [Σχόλιο] στον κλάδο 'Else' του έργου για να δείτε τι θα συμβεί εάν το ρομπότ εικονικής πραγματικότητας ΔΕΝ ανιχνεύσει ένα κτίριο.

    Το ίδιο έργο VEXcode VR με το δεύτερο σχόλιο μέσα στο C του κλάδου else. Το έργο τώρα διαβάζει "Όταν ξεκίνησε", "Εάν η Απόσταση από το Μέτωπο βρήκε ένα αντικείμενο", τότε "Κουνήστε πάνω από το κτίριο που βρέθηκε χρησιμοποιώντας τον Αισθητήρα Απόστασης". Διαφορετικά, γυρίστε για να βρείτε ένα κτίριο χρησιμοποιώντας τον Αισθητήρα Απόστασης.
  • Προσθέστε ένα μπλοκ [Drive] στον κλάδο 'If Then' του μπλοκ [If then else].

    Το ίδιο έργο VEXcode VR με ένα μπλοκ Drive που έχει οριστεί σε προώθηση κάτω από το πρώτο σχόλιο στον κλάδο If then. Ο κλάδος If then τώρα αναφέρει, If Front Distance find an object, then Comment Αναποδογυρίστε το κτίριο που βρέθηκε χρησιμοποιώντας τον αισθητήρα Distance. Οδηγήστε προς τα εμπρός.
  • Όταν το μπλοκ <Distance found object> αναφέρει ΛΑΘΟΣ, το ρομπότ εικονικής πραγματικότητας θα πρέπει να γυρίσει και να βρει ένα κτίριο στην παιδική χαρά. Προσθέστε ένα μπλοκ [Turn] κάτω από το μπλοκ [Comment] στον κλάδο 'Else' του μπλοκ [If then else].

    Το ίδιο έργο VEXcode VR με ένα μπλοκ Turn που έχει οριστεί δεξιά κάτω από το δεύτερο σχόλιο στον κλάδο Else. Ο κλάδος Else τώρα αναγράφει, Else, Σχόλιο στροφής για να βρείτε ένα κτίριο χρησιμοποιώντας τον Αισθητήρα Απόστασης και, στη συνέχεια, στρίψτε δεξιά.
  • Πριν από τη δοκιμή του έργου, πρέπει να προστεθεί ένα ακόμη μπλοκ. Τα μπλοκ [If then else] θα ελέγξουν τη συνθήκη μόνο μία φορά πριν μετακινηθούν στο επόμενο μπλοκ στη στοίβα. Στην Ενότητα 7, προστέθηκε στο έργο ένα μπλοκ [Forever] για να δώσει εντολή στο Ρομπότ Εικονικής Πραγματικότητας να ελέγχει επανειλημμένα την κατάσταση του Αισθητήρα Κάτω Ματιού. Για να βεβαιωθείτε ότι η συνθήκη του Αισθητήρα Απόστασης ελέγχεται επανειλημμένα , σύρετε ένα μπλοκ [Για πάντα] στον χώρο εργασίας γύρω από το μπλοκ [Αν τότε αλλιώς].

    Μια επισκόπηση του τρόπου προσθήκης ενός μπλοκ Forever στο έργο, έτσι ώστε ολόκληρο το μπλοκ If then else να βρίσκεται μέσα στο C του μπλοκ Forever. Το έργο τώρα έχει την ένδειξη Όταν ξεκίνησε, Για πάντα, Εάν η μπροστινή απόσταση βρεθεί σε ένα αντικείμενο, τότε προχωρήστε μπροστά, διαφορετικά στρίψτε δεξιά.
  • Ανοίξτε το Dynamic Castle Crasher Playground και εκτελέστε το έργο.

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

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

    Μια πλάγια όψη του ρομπότ εικονικής πραγματικότητας (VR) που σπρώχνει ένα κομμάτι κάστρου από την πλευρά της παιδικής χαράς, αλλά το ρομπότ αρχίζει να οδηγεί προς το όριο της παιδικής χαράς σαν να πρόκειται να πέσει κι αυτό από την άκρη.
  • Κατά τη διάρκεια του έργου, το ρομπότ εικονικής πραγματικότητας (VR) μπορεί να σπρώξει ένα κομμάτι κτιρίου μέχρι την άκρη και να πέσει από την παιδική χαρά. Αυτό συμβαίνει επειδή το μπλοκ <Distance found object> εξακολουθεί να αναφέρει ότι υπάρχει ένα αντικείμενο μπροστά από το ρομπότ εικονικής πραγματικότητας. Όταν αυτό το μπλοκ αναφέρει την τιμή TRUE, το ρομπότ εικονικής πραγματικότητας κινείται προς τα εμπρός. Οδηγώντας το ρομπότ εικονικής πραγματικότητας να πέσει από το τραπέζι.

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