Skip to main content

पैकेज डैश चैलेंज - 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);
  
}