Automatizovaná výzva - C++
Automatická výzva
V této výzvě musíte naprogramovat svého robota, aby navigoval v nemocnici, protože dodává léky pacientům v několika různých místnostech.
Tipy pro učitele
Zvyšte zapojení tím, že vytvoříte příběh o nemocnici! O jaký typ nemocnice se jedná a jakým typům pacientů nemocnice slouží?
Pravidla výzvy
-
Robot musí začínat a končit v počáteční zóně.
-
Celý robot musí být uvnitř lékárny, výtahu a pacientských pokojů a čekat na následující časy, aby mohl dokončit akce:
-
Lékárna: Na vyzvednutí léků počkejte alespoň 5 sekund.
-
Výtah: Počkejte alespoň 5 sekund, než se dostanete na další patro.
-
Pacientský pokoj: Vyčkejte alespoň 3 sekundy, než odešlete léky.
-
-
Robot nesmí přijít do styku s žádnými stěnami ani přes ně nesmí přejít.
-
Robot musí nejprve navštívit lékárnu, aby vyzvedl léky pro pacientské pokoje.
-
Robot musí navštívit každou z pacientských místností (v žádném konkrétním pořadí), aby mohl odevzdat léky.
-
Bavte se!
Řešení
–
pro učitele – sada nástrojů
Programovací rubriku pro hodnocení studentů naleznete zde (Google / .docx / .pdf ).
Níže si prohlédněte ukázkové řešení VEXcode V5 C++:
int main() {
// Inicializace konfigurace robota. NEODSTRAŇUJTE!
vexcodeInit();
// Začátek projektu s kódem
// Jít do lékárny
Drivetrain.driveFor(vpřed, 900, mm);
Drivetrain.turnFor(vlevo, 90, stupňů);
Drivetrain.driveFor(vpřed, 1350, mm);
Drivetrain.turnFor(vpravo, 90, stupňů);
Drivetrain.driveFor(vpřed, 600, mm);
wait(6, sekund);
// Jít do místnosti 1
Drivetrain.driveFor(reverse, 600, mm);
Drivetrain.turnFor(vpravo, 90, stupňů);
Drivetrain.driveFor(vpřed, 600, mm);
Drivetrain.turnFor(vlevo, 90, stupňů);
Drivetrain.driveFor(vpřed, 600, mm);
wait(5, sekund);
// Jít k výtahu
Drivetrain.driveFor(vzad, 600, mm);
Drivetrain.turnFor(vpravo, 90, stupňů);
Drivetrain.driveFor(vpřed, 600, mm);
Drivetrain.turnFor(vlevo, 90, stupňů);
Drivetrain.driveFor(vpřed, 600, mm);
wait(6, sekund);
// Přejít do místnosti 2
Drivetrain.driveFor(vzad, 800, mm);
Drivetrain.turnFor(vlevo, 90, stupňů);
Drivetrain.driveFor(vpřed, 1000, mm);
Drivetrain.turnFor(vlevo, 90, stupňů);
Drivetrain.driveFor(vpřed, 800, mm);
wait(5, sekund);
// Přejít do místnosti 3
Drivetrain.driveFor(vzad, 800, mm);
Drivetrain.turnFor(vlevo, 90, stupňů);
Drivetrain.driveFor(vpřed, 600, mm);
Drivetrain.turnFor(vpravo, 90, stupňů);
Drivetrain.driveFor(vpřed, 800, mm);
wait(5, sekund);
// Jít k výtahu
Drivetrain.driveFor(vzad, 800, mm);
Drivetrain.turnFor(vlevo, 90, stupňů);
Drivetrain.driveFor(vpřed, 600, mm);
Drivetrain.turnFor(vpravo, 90, stupňů);
Drivetrain.driveFor(vpřed, 800, mm);
wait(6, sekund);
// Návrat do startovní zóny
Drivetrain.driveFor(vpřed, 1500, mm);
}