Tantangan Paket Dash - C++

Tantangan Paket Lari
Dalam tantangan ini, Anda akan memprogram robot Anda untuk mengambil paket dan membawanya ke dermaga pemuatan secepat mungkin!
Aturan tantangan:
- Robot harus memulai tantangan di Zona Mulai.
- Paket (kaleng aluminium) hanya dapat bersentuhan dengan buku, cakar Clawbot, dan Dermaga Pemuatan.
- Jika suatu paket terjatuh di lantai gudang, Anda harus mengatur ulang bidang tersebut dan memulai dari awal lagi.
- Waktu untuk setiap putaran dimulai segera setelah robot bergerak.
- Waktu berhenti saat paket terakhir dijatuhkan di Dermaga Pemuatan.
- Saat mengatur ulang bidang, semuanya harus dikembalikan ke lokasi tepat saat dimulai.
- Selamat bersenang-senang!
Tips Guru
-
Tingkatkan keterlibatan dengan membuat cerita latar atau tujuan gudang! Gudang jenis apa itu? Jenis paket apa yang ditemukan di gudang? Siapa pemilik gudang itu?
-
Izinkan siswa membuat rute atau strategi berbeda yang akan memudahkan mereka mengangkut kaleng secara lebih efisien.
-
Bandingkan tidak hanya waktu penyelesaian untuk menentukan pemenang tantangan ini (jika Anda menyelenggarakannya untuk menjadi kompetitif) tetapi juga teknik navigasi yang digunakan sehingga siswa dapat mempertimbangkan solusi tim lain.
Kotak Alat Guru
-
Solusi
Rubrik pemrograman untuk mengevaluasi siswa dapatdi sini
Berikut ini adalah salah satu kemungkinan solusi untuk tantangan tersebut. Solusi dapat bervariasi tergantung pada posisi awal robot dan jalur yang dipilih. Ada beberapa jalur yang dapat mengarah pada pemindahan semua paket.
int main() {
// Menginisialisasi Konfigurasi Robot. JANGAN DIHAPUS!
vexcodeInit();
// Jalankan motor Claw dengan aman dan ambil paket pertama
ClawMotor.setTimeout(2, detik);
Drivetrain.driveFor(maju, 900, mm);
Drivetrain.turnFor(kanan, 90, derajat);
ArmMotor.spinFor(maju, 315, derajat);
ClawMotor.spinFor(mundur, 180, derajat);
Drivetrain.driveFor(maju, 215, mm);
ClawMotor.spinFor(maju, 120, derajat);
// Berkendara ke Dermaga Pemuatan untuk menurunkan paket pertama
Drivetrain.driveFor(mundur, 110, mm);
Drivetrain.turnFor(kanan, 90, derajat);
Drivetrain.driveFor(maju, 920, mm);
Drivetrain.turnFor(kiri, 90, derajat);
Drivetrain.driveFor(maju, 2300, mm);
Drivetrain.turnFor(kiri, 90, derajat);
Drivetrain.driveFor(maju, 750, mm);
ArmMotor.spinFor(mundur, 315, derajat);
ClawMotor.spinFor(mundur, 120, derajat);
// Ambil paket kedua
Drivetrain.driveFor(mundur, 200, mm);
Drivetrain.turnFor(kiri, 170, derajat);
Drivetrain.driveFor(maju, 900, mm);
Drivetrain.turnFor(kanan, 90, derajat);
Drivetrain.driveFor(maju, 2300, mm);
ArmMotor.spinFor(maju, 315, derajat);
ClawMotor.spinFor(maju, 120, derajat);
// Berkendara ke Dermaga Pemuatan untuk menurunkan paket kedua
Drivetrain.driveFor(maju, 900, mm);
Drivetrain.turnFor(kanan, 90, derajat);
Drivetrain.driveFor(maju, 960, mm);
ArmMotor.spinFor(mundur, 315, derajat);
ClawMotor.spinFor(mundur, 120, derajat);
// Ambil paket ketiga
Drivetrain.driveFor(mundur, 150, mm);
Drivetrain.turnFor(kiri, 90, derajat);
ArmMotor.spinFor(maju, 315, derajat);
Drivetrain.driveFor(maju, 490, mm);
ClawMotor.spinFor(maju, 120, derajat);
// Berkendara ke Dermaga Pemuatan untuk menurunkan paket ketiga
Drivetrain.driveFor(mundur, 490, mm);
Drivetrain.turnFor(kanan, 90, derajat);
Drivetrain.driveFor(maju, 150, mm);
ArmMotor.spinFor(mundur, 315, derajat);
ClawMotor.spinFor(mundur, 120, derajat);
}