यूजर इंटरफेस चैलेंज - पायथन

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

इस चुनौती में भूमिकाएँ:
- प्रत्येक दौर के दौरान वस्तुओं को उठाने वाला केवल एक ही उपयोगकर्ता (लिफ्टर) होना चाहिए, लेकिन समूह दौरों के बीच उपयोगकर्ताओं को बदल सकते हैं।
- एकहोना चाहिएयह हिसाबकि प्रत्येक क्लॉबॉट कितनी वस्तुओं को सफलतापूर्वक उठा सकता है। प्रत्येक सफलतापूर्वक प्रतिस्थापित वस्तु के लिए एक अंक मिलता है। किसी वस्तु को गिराने के बाद, क्लॉबॉट की बारी समाप्त हो जाती है। कई राउंड खेले जा सकते हैं। यहां एक स्कोरिंग तालिका शामिल है, लेकिन अतिरिक्त समूहों और राउंड के लिए पंक्तियाँ जोड़ी जा सकती हैं। प्रत्येक समूह अपनी-अपनी स्कोरिंग तालिका का उपयोग कर सकता है या सभी एक ही तालिका पर रिकॉर्ड कर सकते हैं। यदि एक से अधिक समूह एक ही स्कोर तालिका का उपयोग कर रहे हैं, तो दूसरे कॉलम में प्रत्येक समूह की क्लॉबॉट आईडी या समूह का नाम लिखें। साथ ही, स्कोरकीपर को यूजर इंटरफेस चैलेंज के अंत में प्रत्येक राउंड के अंकों को मिलाकर कुल स्कोर निकालना चाहिए।
- टेबल से ऑब्जेक्ट्स को स्विच करने के लिए एक व्यक्ति को नियुक्त किया जाना चाहिए:स्विचर. क्योंकि क्लॉबॉट न तो घूम रहा है और न ही चल रहा है, इसलिए प्रत्येक प्रयास के बाद उठाई गई वस्तु को हटाकर उसकी जगह एक नई वस्तु रखनी होगी।
- समय का हिसाब रखने के लिए एक व्यक्ति नियुक्त किया जाना चाहिए:टाइमकीपर। प्रत्येक राउंड एक मिनट का होता है।
- शिक्षक को चुनौती शुरू करने से पहले इस चुनौती के लिए स्वीकृत वस्तुएं उपलब्ध करानी चाहिए।
शिक्षक सुझाव
- छात्रों को याद दिलाएं कि उन्हें केवल क्लॉबॉट की स्क्रीन को छूने की अनुमति है।
- केवल ऐसी वस्तुएं ही प्रदान करें जो गिरने पर सुरक्षित हों: एक खाली डिब्बा या पानी की बोतल, एक VEX क्यूब, VEX किट का एक अप्रयुक्त टुकड़ा, या कोई भी ऐसी चीज जो गिरने या उछलने से स्थायी रूप से क्षतिग्रस्त न हो।
- अवलोकन कर रहे छात्रों को यह देखने की अनुमति दें कि प्रत्येक क्लॉबॉट की स्क्रीन कैसी दिखती है। आयत एक जैसे होने चाहिए, लेकिन प्रत्येक क्लॉबॉट के रंग अलग-अलग होने की संभावना है।
- चुनौती के दौरान या उसके बाद, सर्वोत्तम रंग विकल्पों के बारे में छात्रों की राय पर चर्चा करें।
शिक्षक टूलबॉक्स
नीचे आपको इस चुनौती के लिए एक उदाहरण प्रोग्रामिंग समाधान के साथ-साथ एक प्रोग्रामिंग रूब्रिक, एक व्यक्तिगत इंजीनियरिंग नोटबुक रूब्रिक और एक टीम इंजीनियरिंग नोटबुक रूब्रिक मिलेगा।
- उदाहरण प्रोग्रामिंग समाधान
# प्रोजेक्ट कोड प्रारंभ
स्क्रीन_बटन = इवेंट()
def has_screen_buttons():
brain.screen.set_fill_color(Color.GREEN)
brain.screen.draw_rectangle(0, 0, 240, 120)
brain.screen.set_fill_color(Color.PURPLE)
brain.screen.draw_rectangle(240, 0, 480, 120)
brain.screen.set_fill_color(Color.ORANGE)
brain.screen.draw_rectangle(0, 120, 240, 240)
brain.screen.set_fill_color(Color.CYAN)
brain.screen.draw_rectangle(240, 120, 480, 240)
wait(1, SECONDS)
स्क्रीन_बटन(has_screen_buttons)
while True:
screen_buttons.broadcast()
if brain.screen.pressing():
if brain.screen.x_position() < 240:
if brain.screen.y_position() < 120:
claw_motor.spin(FORWARD)
while brain.screen.pressing():
wait(5, MSEC)
else:
claw_motor.spin(REVERSE)
while brain.screen.pressing():
wait(5, MSEC)
else:
if brain.screen.y_position() < 120:
arm_motor.spin(FORWARD)
while brain.screen.pressing():
wait(5, MSEC)
else:
arm_motor.spin(REVERSE)
while brain.screen.pressing():
wait(5, MSEC)
claw_motor.stop()
arm_motor.stop()
wait(5, MSEC)