Μάθημα 2: Υποθετικές Δηλώσεις If/Else
Σε αυτό το μάθημα, θα δημιουργήσετε ένα έργο όπου το ρομπότ εικονικής πραγματικότητας θα ανατρέψει τουλάχιστον δύο κτίρια στην παιδική χαρά Dynamic Castle Crasher. Θα χρειαστεί ένας αλγόριθμος για την επίλυση της πρόκλησης χρησιμοποιώντας βρόχους και ανατροφοδότηση αισθητήρων, επειδή η διάταξη του Playground αλλάζει με κάθε επαναφορά.
Παραδείγματα διατάξεων παιδικής χαράς 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) να γκρεμίσει δύο ή περισσότερα κτίρια λόγω των μεταβαλλόμενων διατάξεων του Dynamic Castle Crasher Playground. Ένα σύνολο εντολών συστήματος μετάδοσης κίνησης μπορεί να λειτουργεί σε ένα Playground, αλλά όχι σε ένα άλλο. Θα χρειαστεί ένας αλγόριθμος που χρησιμοποιεί αισθητήρες και επιλογή. Το μπλοκ [If then else] θα χρησιμοποιηθεί για τη δημιουργία ενός αλγορίθμου προσθέτοντας επιλογή με εντολές υπό όρους σε αυτό το έργο.

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

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

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

-
Προσθέστε δύο μπλοκ [Σχόλιο] στον χώρο εργασίας και ολοκληρώστε τα βήματα που περιγράφονται παραπάνω.

-
Ένα μπλοκ [If then else] μπορεί να χρησιμοποιηθεί για την ενεργοποίηση καθεμίας από τις ενέργειες που περιγράφονται παραπάνω. Κάθε ενέργεια εξαρτάται από το αν η συνθήκη Boolean στο μπλοκ [If then else] αναφέρει TRUE ή FALSE. Προσθέστε ένα μπλοκ [If then else] κάτω από τα μπλοκ [Comment].

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

- Εάν η συνθήκη αναφέρεται ως TRUE, εκτελούνται τα μπλοκ μέσα στον κλάδο If Then.
- Εάν η συνθήκη αναφέρεται ως FALSE, εκτελούνται τα μπλοκ μέσα στον κλάδο Else.

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

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

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

-
Μετακινήστε το άλλο μπλοκ [Σχόλιο] στον κλάδο 'Else' του έργου για να δείτε τι θα συμβεί εάν το ρομπότ εικονικής πραγματικότητας ΔΕΝ ανιχνεύσει ένα κτίριο.

-
Προσθέστε ένα μπλοκ [Drive] στον κλάδο 'If Then' του μπλοκ [If then else].

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

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

-
Ανοίξτε το Dynamic Castle Crasher Playground και εκτελέστε το έργο.

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

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

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