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

Μάθημα 3: Οδηγήστε προς τον αριθμό '1'

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

    Μια κάτοψη της παιδικής χαράς του Χάρτη Πλέγματος Αριθμών, με δύο δείκτες αξόνων που σηματοδοτούν τη θέση της θέσης με τον αριθμό 31. Το ρομπότ εικονικής πραγματικότητας (VR) βρίσκεται στον χώρο με αριθμό 31 στις θέσεις -900 X και -300 Y.
  • Αφαιρέστε το μπλοκ [Διακοπή οδήγησης] και αντικαταστήστε το με τα ακόλουθα μπλοκ.

    Μια επισκόπηση των μπλοκ που πρέπει να προστεθούν στο έργο μας από νωρίτερα για να οδηγηθεί το ρομπότ από τη θέση 1, στη θέση 31 και πίσω στη θέση 1. Αυτό γίνεται προσθέτοντας μπλοκ στροφής, οδήγησης και αναμονής πριν από το μπλοκ Διακοπή Οδήγησης. Το πλήρες έργο έχει τώρα την ένδειξη Όταν ξεκινήσει, προχωρήστε προς τα εμπρός και περιμένετε μέχρι η θέση Y του ρομπότ σε χιλιοστά να είναι μεγαλύτερη από -300. Στη συνέχεια, στρίψτε δεξιά για 180 μοίρες και μετά οδηγήστε μπροστά. Τέλος, περιμένετε μέχρι η θέση Y του ρομπότ σε χιλιοστά να είναι μικρότερη από -900 και στη συνέχεια σταματήστε να οδηγείτε.
  • Σημειώστε ότι το δεύτερο μπλοκ [Περιμένετε μέχρι] περιέχει ένα μπλοκ <Less than> αντί για ένα μπλοκ <Greater than>. Αυτό συμβαίνει επειδή το ρομπότ εικονικής πραγματικότητας (VR) κινείται πλέον κατά μήκος του άξονα Y και οι αριθμοί γίνονται όλο και πιο αρνητικοί. Το ρομπότ εικονικής πραγματικότητας θα σταματήσει μόλις οι τιμές Y γίνουν ΜΙΚΡΟΤΕΡΕΣ από -900.

    Τα ίδια μπλοκ VR του VEXcode σχεδιάζουν να οδηγήσουν το ρομπότ VR από τη θέση 1, στη θέση 31, στη θέση 1, με το δεύτερο μπλοκ "Περιμένετε μέχρι" να επισημαίνεται για να επιστήσει την προσοχή στη χρήση ενός μπλοκ "Μικρότερο από" αντί για ένα μπλοκ "Μεγαλύτερο από". Ολόκληρο το έργο αναφέρει: Όταν ξεκινήσει, προχωρήστε μπροστά και περιμένετε μέχρι η θέση Y του ρομπότ σε χιλιοστά να είναι μεγαλύτερη από -300. Στη συνέχεια, στρίψτε δεξιά για 180 μοίρες και μετά οδηγήστε μπροστά. Τέλος, περιμένετε μέχρι η θέση Y του ρομπότ σε χιλιοστά να είναι μικρότερη από -900 και στη συνέχεια σταματήστε να οδηγείτε.
  • Εκκινήστε τον Χάρτη Πλέγματος Αριθμών Playground εάν δεν είναι ήδη ανοιχτός, και εκτελέστε το έργο.
  • Παρακολουθήστε το ρομπότ εικονικής πραγματικότητας να οδηγεί προς τον αριθμό '1' στον χάρτη πλέγματος αριθμών , την παιδική χαρά.
  • Σε αυτό το έργο, το ρομπότ εικονικής πραγματικότητας (VR) οδηγεί στον αριθμό '1' στον χάρτη πλέγματος αριθμών της παιδικής χαράς. Δεδομένου ότι οι τιμές Y είναι μειώνοντας κατά καθώς το ρομπότ εικονικής πραγματικότητας (VR) οδηγεί στον αριθμό '1', το έργο χρησιμοποιεί ένα μπλοκ <Less than>.
  • Το ρομπότ εικονικής πραγματικότητας θα σταματήσει μόλις η τιμή Y του γίνει μείον από την τιμή Y της συντεταγμένης στην οποία βρίσκεται ο υποδεικνυόμενος αριθμός. Δεδομένου ότι η τιμή Y του αριθμού '1' είναι -900, το ρομπότ εικονικής πραγματικότητας θα σταματήσει να οδηγεί μόλις η τιμή Y γίνει μικρότερη από -900.

    Ένα διάγραμμα που απεικονίζει τη ροή της λογικής στο έργο VEXcode VR Blocks στο οποίο εργαζόμαστε. Το έργο ξεκινά με κίνηση προς τα εμπρός και διατηρεί αυτήν την εντολή μέχρι η θέση Y του αισθητήρα θέσης του ρομπότ σε χιλιοστά να γίνει μεγαλύτερη από -300. Στη συνέχεια, στρίψτε δεξιά για 180 μοίρες και προχωρήστε προς τα εμπρός, κρατώντας πατημένη αυτήν την εντολή μέχρι η Θέση Υ του αισθητήρα ρομπότ σε χιλιοστά να γίνει μικρότερη από -900, μετά την οποία ένα μπλοκ Διακοπή Οδήγησης τερματίζει την εντολή Οδήγηση Εμπρός.

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

    Συνήθως προστίθενται σχόλια στα έργα για να εξηγήσουν τι θέλει ένας προγραμματιστής να κάνουν ορισμένα μέρη ενός έργου. Τα σχόλια είναι χρήσιμα κατά τη συνεργασία και την αντιμετώπιση προβλημάτων, καθώς παρέχουν το πλαίσιο και τη συνολική σημασία του κώδικα. Η χρήση σχολίων επιτρέπει στον προγραμματιστή να σκεφτεί εννοιολογικά τον συνολικό στόχο και την πρόθεση του έργου, αντί να προσπαθεί να «μαντέψει και να ελέγξει». Θέλετε να θυμάστε ποιες συντεταγμένες αντιστοιχούν σε έναν συγκεκριμένο αριθμό; Προσθέστε ένα σχόλιο που λέει "Οδηγήστε μέχρι τον αυτοκινητόδρομο 81 που βρίσκεται στις (-900, 700)." Αυτό βοηθά στην επικοινωνία διαφορετικών τμημάτων και μπλοκ του έργου.

    Ένα παράδειγμα έργου μπλοκ VR του VEXcode για την οδήγηση του ρομπότ από τη θέση 1, στη θέση 81 και πίσω στη θέση 41. Έχουν προστεθεί σχόλια για να γίνει ο κώδικας πιο ευανάγνωστος και να παρατίθενται οι συντεταγμένες κάθε τοποθεσίας για να βοηθηθεί η διόρθωση σφαλμάτων. Το έργο ξεκινά με ένα μπλοκ "Όταν ξεκίνησε" ακολουθούμενο από ένα σχόλιο που λέει "Οδηγήστε προς το 81 που βρίσκεται στο (-900,700)". Στη συνέχεια, προχωρήστε προς τα εμπρός και περιμένετε μέχρι η θέση Y του ρομπότ σε χιλιοστά να είναι μεγαλύτερη από 700. Στη συνέχεια, ένα σχόλιο αναφέρει «Γυρίστε» ακολουθούμενο από ένα μπλοκάρισμα για να στρίψετε δεξιά για 180 μοίρες. Στη συνέχεια ακολουθεί ένα άλλο σχόλιο που αναφέρει «Οδηγήστε προς το 41 που βρίσκεται στο (-900, -100)» ακολουθούμενο από ένα μπλοκ «Οδήγηση προς τα εμπρός». Τέλος, περιμένετε μέχρι η θέση Y του ρομπότ σε χιλιοστά να γίνει μικρότερη από -100 και στη συνέχεια σταματήστε την οδήγηση.

    Για περισσότερες πληροφορίες σχετικά με τα σχόλια, ανατρέξτε στο άρθρο Σχόλια - VR Blocks .

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

Η παρακάτω εικόνα δείχνει το παραπάνω έργο που έχει μετατραπεί σε μπλοκ Switch. Σημειώστε ότι τα σχόλια στην Python γράφονται με πράσινο χρώμα. Μπορείτε να γράψετε σχόλια στην Python εισάγοντας ένα σύμβολο δίεσης (#) ακολουθούμενο από το σχόλιό σας. 

Μια υλοποίηση μπλοκ διακόπτη VEXcode VR του κώδικα μπλοκ VR για μετακίνηση από τον χώρο 1, στον χώρο 81, στον χώρο 41. Ο κωδικός διακόπτη έχει μήκος 11 γραμμές, ως εξής: '# Οδηγήστε στο 81 που βρίσκεται στη θέση (-900, 700), drivetrain.drive(FORWARD), ενώ δεν είναι η θέση location.position(Y, MM) > 700: wait(5, MSEC), # Γυρίστε γύρω, drivetrain.turn_for(RIGHT, 180, DEGREES), # Οδηγήστε στο 41 που βρίσκεται στη θέση (-900, -100), drivetrain.drive(FORWARD), ενώ δεν είναι η θέση location.position(Y, MM) < -100: wait(5, MSEC), drivetrain.stop()'.

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