Αυτοματοποιημένη Πρόκληση - C++
Αυτοματοποιημένη Πρόκληση
Σε αυτήν την πρόκληση, πρέπει να προγραμματίσετε το ρομπότ σας ώστε να πλοηγείται σε ένα νοσοκομείο καθώς παραδίδει φάρμακα σε ασθενείς σε διάφορα δωμάτια.
Συμβουλές για τους Δασκάλους
Αυξήστε την αλληλεπίδραση δημιουργώντας μια ιστορία για το νοσοκομείο! Τι είδους νοσοκομείο είναι και τι είδους ασθενείς εξυπηρετεί;
Κανόνες Πρόκλησης
-
Το ρομπότ πρέπει να ξεκινά και να τελειώνει στη Ζώνη Εκκίνησης.
-
Ολόκληρο το ρομπότ πρέπει να βρίσκεται μέσα στο Φαρμακείο, το Ασανσέρ και τα Δωμάτια Ασθενών και να περιμένει τους ακόλουθους χρόνους για να ολοκληρώσει τις ενέργειες:
-
Φαρμακείο: Περιμένετε τουλάχιστον 5 δευτερόλεπτα για να παραλάβετε τα φάρμακα.
-
Ασανσέρ: Περιμένετε τουλάχιστον 5 δευτερόλεπτα για να φτάσετε σε άλλο όροφο.
-
Δωμάτιο Ασθενούς: Περιμένετε τουλάχιστον 3 δευτερόλεπτα για να παραδώσετε τα φάρμακα.
-
-
Το ρομπότ δεν πρέπει να έρχεται σε επαφή με τοίχους ή να περνάει πάνω από αυτούς.
-
Το ρομπότ πρέπει πρώτα να επισκεφτεί το φαρμακείο για να παραλάβει φάρμακα για τα δωμάτια ασθενών.
-
Το ρομπότ πρέπει να επισκεφθεί καθένα από τα δωμάτια ασθενών (χωρίς συγκεκριμένη σειρά) για να παραδώσει φάρμακα.
-
Καλή διασκέδαση!
Εργαλειοθήκη Δασκάλου
-
Λύση
Μια ρουμπρίκα προγραμματισμού για την αξιολόγηση των μαθητών μπορεί να βρεθεί εδώ (Google ).
Δείτε ένα δείγμα λύσης C++ του VEXcode V5 παρακάτω:
int main() {
// Αρχικοποίηση διαμόρφωσης ρομπότ. ΜΗΝ ΤΟ ΑΦΑΙΡΕΙΤΕ!
vexcodeInit();
// Έναρξη έργου κωδικός
// Μετάβαση στο φαρμακείο
Drivetrain.driveFor(forward, 900, mm);
Drivetrain.turnFor(left, 90, degrees);
Drivetrain.driveFor(forward, 1350, mm);
Drivetrain.turnFor(right, 90, degrees);
Drivetrain.driveFor(forward, 600, mm);
wait(6, seconds);
// Μετάβαση στο δωμάτιο 1
Drivetrain.driveFor(reverse, 600, mm);
Drivetrain.turnFor(right, 90, degrees);
Drivetrain.driveFor(forward, 600, mm);
Drivetrain.turnFor(left, 90, degrees);
Drivetrain.driveFor(forward, 600, mm);
wait(5, seconds);
// Μετάβαση στον ανελκυστήρα
Drivetrain.driveFor(reverse, 600, mm);
Drivetrain.turnFor(right, 90, degrees);
Drivetrain.driveFor(forward, 600, mm);
Drivetrain.turnFor(left, 90, degrees);
Drivetrain.driveFor(forward, 600, mm);
αναμονή(6, seconds);
// Μετάβαση στο δωμάτιο 2
Drivetrain.driveFor(reverse, 800, mm);
Drivetrain.turnFor(left, 90, degrees);
Drivetrain.driveFor(forward, 1000, mm);
Drivetrain.turnFor(left, 90, degrees);
Drivetrain.driveFor(forward, 800, mm);
αναμονή(5, seconds);
// Μετάβαση στο δωμάτιο 3
Drivetrain.driveFor(reverse, 800, mm);
Drivetrain.turnFor(αριστερά, 90, μοίρες);
Drivetrain.driveFor(εμπρός, 600, mm);
Drivetrain.turnFor(δεξιά, 90, μοίρες);
Drivetrain.driveFor(εμπρός, 800, mm);
wait(5, δευτερόλεπτα);
// Μετάβαση στον ανελκυστήρα
Drivetrain.driveFor(όπισθεν, 800, mm);
Drivetrain.turnFor(αριστερά, 90, μοίρες);
Drivetrain.driveFor(εμπρός, 600, mm);
Drivetrain.turnFor(δεξιά, 90, μοίρες);
Drivetrain.driveFor(εμπρός, 800, mm);
wait(6, δευτερόλεπτα);
// Επιστροφή στη ζώνη εκκίνησης
Drivetrain.driveFor(εμπρός, 1500, mm);
}