Geautomatiseerde uitdaging - C++
Geautomatiseerde uitdaging
In deze uitdaging moet je je robot programmeren om door een ziekenhuis te navigeren, omdat hij medicijnen levert aan patiënten in verschillende kamers.
Tips voor leraren
Vergroot de betrokkenheid door een achtergrondverhaal over het ziekenhuis te creëren! Wat voor soort ziekenhuis is het en wat voor soort patiënten behandelt het ziekenhuis?
Uitdagingsregels
-
De robot moet beginnen en eindigen in de Start Zone.
-
De hele robot moet zich in de apotheek, lift en patiëntenkamers bevinden en op de volgende tijden wachten om de acties te voltooien:
-
Apotheek: Wacht minstens 5 seconden om medicijnen op te halen.
-
Lift: Wacht minstens vijf seconden om een andere verdieping te bereiken.
-
Patiëntkamer: Wacht ten minste 3 seconden om medicijnen af te geven.
-
-
De robot mag niet in contact komen met of over muren gaan.
-
De robot moet eerst naar de apotheek gaan om medicijnen voor patiëntenkamers op te halen.
-
De robot moet elk van de patiëntenkamers bezoeken (in willekeurige volgorde) om medicatie af te leveren.
-
Veel plezier!
Teacher Toolbox
-
Oplossing
Een programmeerrubriek om studenten te beoordelen is hier te vinden (Google / .docx / .pdf ).
Bekijk hieronder een voorbeeldoplossing van VEXcode V5 C++:
int main() {
// Robotconfiguratie initialiseren. NIET VERWIJDEREN!
vexcodeInit();
// Begin projectcode
// Ga naar apotheek
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);
// Ga naar kamer 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);
// Ga naar lift
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(6, seconds);
// Ga naar kamer 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);
wait(5, seconds);
// Ga naar kamer 3
Drivetrain.driveFor(reverse, 800, mm);
Drivetrain.turnFor(left, 90, degrees);
Drivetrain.driveFor(forward, 600, mm);
Drivetrain.turnFor(right, 90, degrees);
Drivetrain.driveFor(forward, 800, mm);
wait(5, seconds);
// Ga naar lift
Drivetrain.driveFor(reverse, 800, mm);
Drivetrain.turnFor(left, 90, degrees);
Drivetrain.driveFor(forward, 600, mm);
Drivetrain.turnFor(right, 90, degrees);
Drivetrain.driveFor(forward, 800, mm);
wait(6, seconds);
// Ga terug naar de startzone
Drivetrain.driveFor(forward, 1500, mm);
}