Skip to main content

पाठ 3: यदि कथनों का उपयोग करना

यदिकथनों का उपयोग करके डिस्क भूलभुलैया में नेविगेट करना

डिस्क मेज़ चैलेंज में, वीआर रोबोट फ्रंट आई सेंसर की स्थिति की जांच कर रहा है, ताकि यह देखा जा सके कि कौन सा रंग रिपोर्ट किया जा रहा है। प्रत्येक रंग VR रोबोट द्वारा किए जाने वाले भिन्न व्यवहार से मेल खाता है।

आपकी जानकारी के लिए

ifकथन केवल बूलियन शर्तों को स्वीकार करता है। पाठ 2 में डिस्क भूलभुलैया को हल करते समय देखे गए पैटर्न का उपयोग करके, एक प्रोजेक्ट बनाया जा सकता है, जहां वीआर रोबोट यह निर्णय लेता है कि स्थिति सही है या गलत।

यदि स्थिति: 
	पास

if कथन किसी प्रोजेक्ट में एक बार चलेगा। इस उदाहरण में, यदि हरे रंग की वस्तु का पता चलता है तो फ्रंट आई सेंसर सत्य की रिपोर्ट करेगा, और if कथन के अंदर कमांड निष्पादित करेगा - 90 डिग्री तक दाईं ओर मुड़ें। यदि हरे रंग की वस्तु का पता नहीं चलता है, तो प्रोजेक्ट अगले कमांड पर चला जाएगा

def main():
    यदि front_eye.detect(GREEN):
        drivetrain.turn_for(RIGHT, 90, DEGREES)
    drivetrain.stop()
  • एक नया प्रोजेक्ट शुरू करें और संकेत मिलने परडिस्क मेज़ प्लेग्राउंडका चयन करें। VEXcode VR में डिस्क भूलभुलैया खेल का मैदान चयन टाइल।
  • इसका नाम यूनिट7पाठरखें.VEXcode VR में टूलबार जिसमें प्रोजेक्ट नाम बॉक्स लिखा हुआ है। परियोजना का नाम है यूनिट 7 पाठ 3.

     

  • परियोजना के प्रत्येक आगामी अनुभाग के दौरान VR रोबोट के व्यवहार के उद्देश्य का वर्णन करने के लिए टिप्पणियाँ जोड़ें। 
def main():
    # यदि सामने वाली आँख हरे रंग का पता लगाती है तो दाएँ मुड़ें

    # यदि सामने वाली आँख नीले रंग का पता लगाती है तो बाएँ मुड़ें
  • प्रथम टिप्पणी के नीचे if कथन को खींचें या टाइप करें।
def main():
    # यदि सामने वाली आँख हरे रंग का पता लगाती है तो दाईं ओर मुड़ें
    यदि स्थिति: 
    	पास

    # यदि सामने वाली आँख नीले रंग का पता लगाती है तो बाईं ओर मुड़ें
  • if कथन की स्थिति को front_eye.detectकमांड पर सेट करें, और पैरामीटर को 'GREEN' पर सेट करें।
def main():
    # यदि सामने वाली आँख हरे रंग का पता लगाती है तो दाईं ओर मुड़ें
	यदि front_eye.detect(GREEN): 
    	pass
    	
    # यदि सामने वाली आँख नीले रंग का पता लगाती है तो बाईं ओर मुड़ें
  • 'pass'को प्रतिस्थापित करने के लिए, if कथन के अंदर turn_for कमांड खींचें या टाइप करें। 90 डिग्री पर दाईं ओर मुड़ने के लिए पैरामीटर सेट करें। अब, यदि फ्रंट आई सेंसर 'ग्रीन' का पता लगाता है, तो वीआर रोबोट 90 डिग्री दाईं ओर मुड़ जाएगा।
def main():
    # यदि सामने वाली आँख हरे रंग का पता लगाती है तो दाईं ओर मुड़ें
	यदि front_eye.detect(GREEN): 
    	drivetrain.turn_for(RIGHT, 90, DEGREES)
    	
    # यदि सामने वाली आँख नीले रंग का पता लगाती है तो बाईं ओर मुड़ें
  • हम डिस्क मेज़ (हरा, नीला और लाल) में सभी तीन रंगों के लिए अतिरिक्तif कथन जोड़ने के लिए इन्हीं चरणों का पालन करेंगे। प्रत्येक रंग एक अलग व्यवहार से जुड़ा हुआ है। if कथनों के अंदर के आदेशों को उस इच्छित व्यवहार से मेल खाना होगा। दूसरी टिप्पणी के नीचे प्रोजेक्ट में निम्नलिखित कमांड जोड़ें, ताकि यदि फ्रंट आई सेंसर 'नीला' रंग पहचान ले, तो वीआर रोबोट 90 डिग्री बायीं ओर मुड़ जाएगा।
	# यदि सामने की आँख नीले रंग का पता लगाती है तो बाएं मुड़ें
	यदि front_eye.detect(BLUE): 
    	drivetrain.turn_for(LEFT, 90, DEGREES)
  • जब वीआर रोबोट भूलभुलैया के अंत तक पहुंच जाएगा, तो फ्रंट आई सेंसर 'लाल' रंग का पता लगाएगा।

    डिस्क भूलभुलैया के अंत में लाल डिस्क पर पहुंचते हुए और उसके सामने रुकते हुए वीआर रोबोट का नज़दीक से दृश्य।
  • वीआर रोबोट को रोकने के लिए, यदि फ्रंट आई सेंसर 'RED' का पता लगाता है तो क्या करना है, इसके निर्देशों के साथ एक और if कथन जोड़ने की आवश्यकता है। प्रोजेक्ट में निम्नलिखित टिप्पणी और कमांड जोड़ें ताकि VR रोबोट 'RED' का पता लगने पर गाड़ी चलाना बंद कर दे। 
	# यदि सामने की आँख लाल रंग का पता लगाती है तो रुकें
	यदि front_eye.detect(RED): 
    	drivetrain.stop()

यदि कोई भी रंग नहीं पहचाना जाता है

यदि वीआर रोबोट को कोई रंग दिखाई नहीं देता है तो वह 'कोई नहीं' मान का उपयोग करके निर्णय भी ले सकता है। उदाहरण के लिए, डिस्क मेज़ के प्रारंभिक बिंदु पर, फ्रंट आई सेंसर किसी भी रंग का पता नहीं लगाता है।

डैशबोर्ड खुला होने के साथ VR खेल का मैदान दृश्य और रोबोट के फ्रंट आई सेंसिंग मानों को उजागर करने वाला एक लाल बॉक्स। वर्तमान 'ऑब्जेक्ट' मान गलत है, और वर्तमान 'रंग' मान कोई नहीं है।

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

  • प्रोजेक्ट में निम्नलिखित टिप्पणी और कमांड जोड़ें, ताकि यदि फ्रंट आई सेंसर किसी रंग का पता नहीं लगा पाता है, तो वीआर रोबोट आगे बढ़ जाएगा।
	# यदि सामने की आँख कोई नहीं पहचानती है तो आगे बढ़ें
	यदि front_eye.detect(NONE): 
    	drivetrain.drive(FORWARD)
  • वीआर रोबोट में अब फ्रंट आई सेंसर द्वारा पहचाने गए प्रत्येक रंग के लिए निर्देश हैं।
    • यदिफ्रंट आई सेंसर 'हरा' पहचानता है - तो 90 डिग्री दाईं ओर मुड़ें
    • यदिफ्रंट आई सेंसर 'नीला' पहचानता है - तो 90 डिग्री बाएँ मुड़ें
    • यदिफ्रंट आई सेंसर 'लाल' का पता लगाता है - तो गाड़ी चलाना बंद कर दें
    • यदिफ्रंट आई सेंसर 'कोई नहीं' का पता लगाता है -आगे बढ़ें
  • यदि प्लेग्राउंड विंडो पहले से खुली नहीं है तो उसे खोलें। सुनिश्चित करें किडिस्क भूलभुलैया प्लेग्राउंडखुलता है, और प्रोजेक्ट चलाएं। संपूर्ण परियोजना इस प्रकार दिखनी चाहिए: 
def main():
    # यदि सामने वाली आँख हरे रंग का पता लगाती है तो दाईं ओर मुड़ें
    यदि front_eye.detect(GREEN):
        drivetrain.turn_for(RIGHT, 90, DEGREES)

    # यदि सामने वाली आँख नीले रंग का पता लगाती है तो बाईं ओर मुड़ें
    यदि front_eye.detect(BLUE):
        drivetrain.turn_for(LEFT, 90, DEGREES)

    # यदि सामने वाली आँख लाल रंग का पता लगाती है तो रुकें
    यदि front_eye.detect(RED): 
        drivetrain.stop()

    # यदि सामने वाली आँख कोई भी नहीं पहचानती है तो आगे बढ़ें
    यदि front_eye.detect(NONE): 
        drivetrain.drive(FORWARD)
  • क्या वीआर रोबोट वैसा ही व्यवहार करता है जैसा आप चाहते हैं? क्यों या क्यों नहीं? पाठ के अगले पृष्ठ पर हम इस परियोजना के बारे में और अधिक जानेंगे।

इस पाठ के शेष भाग को जारी रखने के लिए अगला बटन का चयन करें।