Skip to main content

Otomatik Mücadele - C++

Aşağıdaki alan tanımlarını içeren Automed Challenge için kat planı: Eczane, Oda 1, Oda 2, Oda 3, Başlangıç ve Asansör. Oda 2 ve Oda 3 ikinci katta, diğer tüm odalar birinci kattadır. Ölçümler, tüm kat planı 2 metreye 1,8 metre dikdörtgen olacak şekilde işaretlenir.
Boyutlu Automed Challenge hastane yerleşimi

Otomatik Görev

Bu zorlukta, robotunuzu birkaç farklı odadaki hastalara ilaç verirken bir hastanede gezinecek şekilde programlamanız gerekir.

Öğretmen İpuçları simgesi Öğ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 simgesi Öğ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);

}