Skip to main content

उपयोगकर्ता इंटरफ़ेस चुनौती - C++

वी5 ब्रेन स्क्रीन में सबसे ऊपर यूआई चैलेंज लिखा है, तथा इसे चार भागों में विभाजित किया गया है। ऊपर बाईं ओर चमकीला हरा, ऊपर दाईं ओर चमकीला गुलाबी, नीचे दाईं ओर चमकीला नीला और नीचे बाईं ओर नारंगी रंग है।

उपयोगकर्ता इंटरफ़ेस चुनौती

यूजर इंटरफेस चैलेंज में, आप क्लॉबोट को प्रोग्राम करेंगे ताकि उपयोगकर्ता हाथ और पंजे की मोटरों को नियंत्रित करने के लिए मस्तिष्क की स्क्रीन को दबा सके। इसके बाद स्क्रीन पर चार बटनों का उपयोग विभिन्न प्रकार की दस वस्तुओं को उठाने और बदलने के लिए किया जाएगा। इस चुनौती में क्लॉबोट को गाड़ी चलाने या मोड़ने की आवश्यकता नहीं होती। वस्तुओं को उठाया जाता है और फिर मेज या फर्श पर उसी स्थान पर रख दिया जाता है।

नियम:

  • चारों बटनों में से प्रत्येक को केवल चार क्रियाओं में से एक ही करना होगा: पंजा खोलना, पंजा बंद करना, भुजा को ऊपर उठाना, या भुजा को नीचे करना।
  • नियंत्रक का उपयोग करने की अनुमति नहीं है.
  • प्रत्येक क्लॉबोट को एक मिनट के भीतर, बिना गिराए, अधिक से अधिक वस्तुओं को उठाना और प्रतिस्थापित करना होगा। एक समय में एक ही वस्तु को उठाने और बदलने की सिफारिश की जाती है।
    • एक मिनट का राउंड, यदि कोई वस्तु गिरा दी जाती है तो, 1 मिनट के निशानयापर समाप्त होता है - भले ही राउंड केवल कुछ सेकंड का ही क्यों न हो। किसी वस्तु को गिराने पर टीम को राउंड के पूरे मिनट के लिए अयोग्य घोषित कर दिया जाता है, लेकिन गिराने से पहले अर्जित किए गए सभी अंक गिने जाते हैं।
  • यदि एक मिनट का राउंड समाप्त होने से पहले सभी उपलब्ध वस्तुएं उठा ली गई हों, तो समय समाप्त होने तक वस्तुओं का पुनः उपयोग किया जा सकता है।
  • वस्तु को मेज पर पुनः स्थापित करने से पहले उसे भुजा की मोटर से अधिक ऊपर उठाना होगा।
  • प्रत्येक वस्तु को सफलतापूर्वक पकड़कर ऊपर उठाने, फिर नीचे लाने और पुनः स्थापित करने पर एक अंक मिलता है।
  • राउंड के बीच, भूमिकाएं बदली जा सकती हैं लेकिन प्रत्येक क्लॉबोट में केवल एक उपयोगकर्ता ही प्रत्येक राउंड खेल सकता है।
  • सभी राउंड के अंत में सबसे अधिक अंक प्राप्त करने वाला समूह जीतता है!

तीन स्तंभों वाली रिक्त डेटा तालिका. बाएं से दाएं, स्तंभों के शीर्षक हैं: राउंड संख्या; क्लॉबोट आईडी; सफलतापूर्वक उठाए गए और प्रतिस्थापित किए गए आइटमों की संख्या।

चुनौती में भूमिकाएँ:

  • प्रत्येक राउंड के दौरान वस्तुओं को उठाने वाला केवल एक उपयोगकर्ता (लिफ्टर) होना चाहिए, लेकिन समूह राउंड के बीच उपयोगकर्ताओं को बदल सकते हैं।
  • एकहोना चाहिएयह गिनेगाप्रत्येक क्लॉबोट कितनी वस्तुओं को सफलतापूर्वक उठाने में सक्षम है। सफलतापूर्वक प्रतिस्थापित प्रत्येक वस्तु का मूल्य एक अंक होता है। किसी वस्तु के गिरने के बाद, क्लॉबोट की बारी समाप्त हो जाती है। कई राउंड खेले जा सकते हैं। यहां एक स्कोरिंग तालिका शामिल है लेकिन अतिरिक्त समूहों और राउंड के लिए पंक्तियाँ जोड़ी जा सकती हैं। प्रत्येक समूह अपनी स्वयं की स्कोरिंग तालिका का उपयोग कर सकता है या सभी एक ही तालिका पर रिकॉर्ड कर सकते हैं। यदि एकाधिक समूह एक ही स्कोर तालिका का उपयोग कर रहे हैं, तो दूसरे कॉलम में प्रत्येक समूह की क्लॉबोट आईडी या समूह का नाम लिखें। इसके अलावा, स्कोरकीपर को यूजर इंटरफेस चैलेंज के अंत में प्रत्येक राउंड के अंकों को मिलाकर कुल स्कोर बनाना चाहिए।
  • टेबल से वस्तुओं को बाहर स्विच करने के लिए एक व्यक्ति को नियुक्त किया जाना चाहिए:स्विचर। चूंकि क्लॉबोट न तो घूम रहा है और न ही गाड़ी चला रहा है, इसलिए प्रत्येक प्रयास के बाद उठाई गई वस्तु को हटाकर उसकी जगह नई वस्तु रखनी होगी।
  • समय का ध्यान रखने के लिए एक व्यक्ति नियुक्त किया जाना चाहिए:टाइमकीपर. प्रत्येक राउंड एक मिनट का होता है।
  • शिक्षक को इस चुनौती के लिए स्वीकृत वस्तुएं शुरू करने से पहले उपलब्ध करानी चाहिए।

शिक्षक युक्तियाँ आइकन शिक्षक युक्तियाँ

  • छात्रों को याद दिलाएं कि उन्हें केवल क्लॉबोट की स्क्रीन को छूने की अनुमति है।

  • केवल ऐसी वस्तुएं प्रदान करें जो गिरने के लिए सुरक्षित हों: खाली कैन या पानी की बोतल, VEX क्यूब, VEX किट का अप्रयुक्त टुकड़ा, या कोई अन्य वस्तु जो गिरने या उछलने से स्थायी रूप से क्षतिग्रस्त न हो।

  • अवलोकन करने वाले छात्रों को यह देखने दें कि प्रत्येक क्लॉबोट की स्क्रीन कैसी दिखती है। आयताकार एक जैसे होने चाहिए लेकिन प्रत्येक क्लॉबोट के रंग संभवतः भिन्न होंगे।

  • चुनौती के दौरान या उसके बाद सर्वोत्तम रंग विकल्पों के बारे में छात्रों की राय पर चर्चा करें।

शिक्षक टूलबॉक्स आइकन शिक्षक टूलबॉक्स - समाधान

नीचे आपको इस चुनौती के लिए एक प्रोग्रामिंग समाधान का उदाहरण मिलेगा, साथ ही एक प्रोग्रामिंग रूब्रिक, एक व्यक्तिगत इंजीनियरिंग नोटबुक रूब्रिक, और एक टीम इंजीनियरिंग नोटबुक रूब्रिक भी मिलेगा।

  • उदाहरण प्रोग्रामिंग समाधान 
// प्रोजेक्ट कोड शुरू करें
event ScreenButtons = event();

void HasScreenButtons() {
  Brain.Screen.setFillColor(हरा);
  Brain.Screen.drawRectangle(0, 0, 240, 120);
  Brain.Screen.setFillColor(बैंगनी);
  Brain.Screen.drawRectangle(240, 0, 480, 120);
  Brain.Screen.setFillColor(नारंगी);
  Brain.Screen.drawRectangle(0, 120, 240, 240);
  Brain.Screen.setFillColor(cyan);
  Brain.Screen.drawRectangle(240, 120, 480, 240);
  wait(1, seconds);
}

int main() {
  // रोबोट कॉन्फ़िगरेशन आरंभ कर रहा है. दूर नहीं करते!
  vexcodeInit();

  ScreenButtons(HasScreenButtons);

  while (true) {
    ScreenButtons.broadcast();

    if (Brain.Screen.pressing()) {

      if (Brain.Screen.xPosition() < 240) {

        if (Brain.Screen.yPosition() < 120) {
          ClawMotor.spin(forward);
          waitUntil(!Brain.Screen.pressing());

        } else {
          ClawMotor.spin(reverse);
          waitUntil(!Brain.Screen.pressing());
        }
        
      } else {
        if (Brain.Screen.yPosition() < 120) {
          ArmMotor.spin(forward);
          waitUntil(!Brain.Screen.pressing());

        } अन्यथा {
          ArmMotor.spin(reverse);
          waitUntil(!Brain.Screen.pressing());
        }
      }
      ClawMotor.stop();
      ArmMotor.stop();
    }
    wait(5, msec);
  }  
}  
  • प्रोग्रामिंग रूब्रिक - Google Doc / .docx / .pdf
  • इंजीनियरिंग नोटबुक रूब्रिक (व्यक्तिगत) - Google Doc / .docx / .pdf
  • इंजीनियरिंग नोटबुक रूब्रिक (टीम) - Google Doc / .docx / .pdf