Otomatik Mücadele - C++
Otomatik Görev
Bu zorlukta, robotunuzu birkaç farklı odadaki hastalara ilaç verirken bir hastanede gezinecek şekilde programlamanız gerekir.
Öğretmen İpuçları
Hastanenin geçmişini anlatarak etkileşimi artırın! Hastaneniz ne tür bir hastanedir ve hangi tip hastalara hizmet vermektedir?
Meydan Okuma Kuralları
-
Robot, Başlangıç Bölgesinde başlamalı ve bitmelidir.
-
Robotun tamamı Eczane, Asansör ve Hasta Odalarının içinde olmalı ve eylemleri tamamlamak için aşağıdaki süreleri beklemelidir:
-
Eczane: İlaçları almak için en az 5 saniye bekleyin.
-
Asansör: Başka bir kata ulaşmak için en az 5 saniye bekleyin.
-
Hasta Odası: İlaçları bırakmak için en az 3 saniye bekleyin.
-
-
Robot herhangi bir duvara temas etmemeli veya üzerinden geçmemelidir.
-
Robot, Hasta Odaları için ilaç almak için önce Eczaneyi ziyaret etmelidir.
-
Robot, ilacı bırakmak için Hasta Odalarının her birini (belirli bir sırayla değil) ziyaret etmelidir.
-
İyi eğlenceler!
Öğretmen Araç Kutusu
-
Çözümü
Öğrencileri değerlendirmek için bir programlama ölçütü burada bulunabilir (Google / .docx / .pdf ).
Aşağıda bir VEXcode V5 C++ örnek çözümü görüntüleyin:
int main() {
// Robot Yapılandırması Başlatılıyor. ÇIKARMAYIN!
vexcodeInit();
// Proje kodunu başlat
// Eczaneye git
Drivetrain.driveFor(ileri, 900, mm);
Drivetrain.turnFor(sol, 90, derece);
Drivetrain.driveFor(ileri, 1350, mm);
Drivetrain.turnFor(sağ, 90, derece);
Drivetrain.driveFor(ileri, 600, mm);
wait(6, saniye);
// 1 numaralı odaya git
Drivetrain.driveFor(geri, 600, mm);
Drivetrain.turnFor(sağ, 90, derece);
Drivetrain.driveFor(ileri, 600, mm);
Drivetrain.turnFor(sol, 90, derece);
Drivetrain.driveFor(ileri, 600, mm);
wait(5, saniye);
// Asansöre git
Drivetrain.driveFor(geri, 600, mm);
Drivetrain.turnFor(sağ, 90, derece);
Drivetrain.driveFor(ileri, 600, mm);
Drivetrain.turnFor(sol, 90, derece);
Drivetrain.driveFor(ileri, 600, mm);
wait(6, saniye);
// 2 numaralı odaya git
Drivetrain.driveFor(geri, 800, mm);
Drivetrain.turnFor(sol, 90, derece);
Drivetrain.driveFor(ileri, 1000, mm);
Drivetrain.turnFor(sol, 90, derece);
Drivetrain.driveFor(ileri, 800, mm);
wait(5, saniye);
// 3 numaralı odaya git
Drivetrain.driveFor(geri, 800, mm);
Drivetrain.turnFor(sol, 90, derece);
Drivetrain.driveFor(ileri, 600, mm);
Drivetrain.turnFor(sağ, 90, derece);
Drivetrain.driveFor(ileri, 800, mm);
wait(5, saniye);
// Asansöre git
Drivetrain.driveFor(geri, 800, mm);
Drivetrain.turnFor(sol, 90, derece);
Drivetrain.driveFor(ileri, 600, mm);
Drivetrain.turnFor(sağ, 90, derece);
Drivetrain.driveFor(ileri, 800, mm);
wait(6, saniye);
// Başlangıç bölgesine geri dön
Drivetrain.driveFor(forward, 1500, mm);
}