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

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