पैकेज डैश चैलेंज - C++

पैकेज डैश चैलेंज
इस चुनौती में, आप अपने रोबोट को पैकेज उठाने और उन्हें यथासंभव तेजी से लोडिंग डॉक तक लाने के लिए प्रोग्राम करेंगे!
चुनौती नियम:
- रोबोट को चुनौती की शुरुआत स्टार्ट ज़ोन से करनी होगी।
- पैकेज (एल्यूमीनियम के डिब्बे) केवल पुस्तकों, क्लॉबोट के पंजे और लोडिंग डॉक के संपर्क में आ सकते हैं।
- यदि कोई पैकेज गोदाम की जमीन पर गिरा दिया जाता है, तो आपको फ़ील्ड को रीसेट करना होगा और फिर से शुरू करना होगा।
- प्रत्येक रन का समय रोबोट के चलते ही शुरू हो जाता है।
- जैसे ही अंतिम पैकेज लोडिंग डॉक में डाला जाता है, समय रुक जाता है।
- फ़ील्ड को रीसेट करते समय, सब कुछ ठीक उसी स्थान पर वापस आ जाना चाहिए जहां से वह शुरू हुआ था।
- मस्ती करो!
शिक्षक युक्तियाँ
-
गोदाम के लिए एक पृष्ठभूमि या उद्देश्य बनाकर सहभागिता बढ़ाएँ! यह किस प्रकार का गोदाम है? गोदाम में किस प्रकार के पैकेज पाए जाते हैं? गोदाम का मालिक कौन है?
-
छात्रों को अलग-अलग मार्ग या रणनीति बनाने की अनुमति दें जिससे वे डिब्बों को अधिक कुशलतापूर्वक परिवहन कर सकें।
-
इस चुनौती के विजेता का निर्णय करने के लिए न केवल पूरा होने में लगने वाले समय की तुलना करें (यदि आप इसे प्रतिस्पर्धात्मक रूप से आयोजित कर रहे हैं) बल्कि प्रयुक्त नेविगेशन तकनीकों की भी तुलना करें ताकि छात्र अन्य टीमों के समाधानों पर विचार कर सकें।
शिक्षक टूलबॉक्स
-
समाधान
छात्रों का मूल्यांकन करने के लिए एक प्रोग्रामिंग रूब्रिक यहां पाया जा सकता है.
निम्नलिखित चुनौती का एक संभावित समाधान है। रोबोट की प्रारंभिक स्थिति और चुने गए पथ के आधार पर समाधान भिन्न हो सकते हैं। ऐसे कई रास्ते हैं जिनसे सभी पैकेजों को स्थानांतरित किया जा सकता है।
int main() {
// रोबोट कॉन्फ़िगरेशन आरंभ कर रहा है. दूर नहीं करते!
vexcodeInit();
// क्लॉ मोटर को सुरक्षित रूप से चलाएं और पहला पैकेज उठाएं
ClawMotor.setTimeout(2, seconds);
Drivetrain.driveFor(forward, 900, mm);
Drivetrain.turnFor(right, 90, degrees);
ArmMotor.spinFor(forward, 315, degrees);
ClawMotor.spinFor(reverse, 180, degrees);
Drivetrain.driveFor(forward, 215, mm);
ClawMotor.spinFor(forward, 120, degrees);
// पहला पैकेज छोड़ने के लिए लोडिंग डॉक तक ड्राइव करें
Drivetrain.driveFor(reverse, 110, mm);
Drivetrain.turnFor(right, 90, degrees);
Drivetrain.driveFor(forward, 920, mm);
Drivetrain.turnFor(left, 90, degrees);
Drivetrain.driveFor(forward, 2300, mm);
Drivetrain.turnFor(left, 90, degrees);
Drivetrain.driveFor(forward, 750, mm);
ArmMotor.spinFor(reverse, 315, degrees);
ClawMotor.spinFor(reverse, 120, degrees);
// दूसरा पैकेज उठाओ
Drivetrain.driveFor(reverse, 200, mm);
Drivetrain.turnFor(left, 170, degrees);
Drivetrain.driveFor(forward, 900, mm);
Drivetrain.turnFor(right, 90, degrees);
Drivetrain.driveFor(forward, 2300, mm);
ArmMotor.spinFor(forward, 315, degrees);
ClawMotor.spinFor(forward, 120, degrees);
// दूसरे पैकेज को छोड़ने के लिए लोडिंग डॉक पर ड्राइव करें
Drivetrain.driveFor(forward, 900, mm);
Drivetrain.turnFor(right, 90, degrees);
Drivetrain.driveFor(forward, 960, mm);
ArmMotor.spinFor(reverse, 315, degrees);
ClawMotor.spinFor(reverse, 120, degrees);
// तीसरा पैकेज उठाएं
Drivetrain.driveFor(reverse, 150, mm);
Drivetrain.turnFor(left, 90, degrees);
ArmMotor.spinFor(forward, 315, degrees);
Drivetrain.driveFor(forward, 490, mm);
ClawMotor.spinFor(forward, 120, degrees);
// तीसरे पैकेज को छोड़ने के लिए लोडिंग डॉक तक ड्राइव करें
Drivetrain.driveFor(reverse, 490, mm);
Drivetrain.turnFor(right, 90, degrees);
Drivetrain.driveFor(forward, 150, mm);
ArmMotor.spinFor(reverse, 315, degrees);
ClawMotor.spinFor(reverse, 120, degrees);
}