मुख्य सामग्री पर जाएं

पाठ 3: इफ स्टेटमेंट का उपयोग करना

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

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

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

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

यदि शर्त: 
	पास

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

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

     

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

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

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

    डिस्क मेज़ के अंत में लाल डिस्क पर पहुंचते और उसके सामने रुकते हुए वीआर रोबोट का क्लोज-अप दृश्य।
  • वीआर रोबोट को रोकने के लिए, एक और यदि कथन जोड़ने की आवश्यकता है जिसमें यह निर्देश हो कि यदि फ्रंट आई सेंसर 'लाल' का पता लगाता है तो क्या करना है। प्रोजेक्ट में निम्नलिखित टिप्पणी और कमांड जोड़ें ताकि वीआर रोबोट 'लाल' रंग का पता चलने पर चलना बंद कर दे। 
	# यदि फ्रंट आई लाल रंग का पता लगाती है तो रुकें
	यदि फ्रंट_आई.डिटेक्ट(लाल): 
    	ड्राइवट्रेन.स्टॉप()

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

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

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

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

  • प्रोजेक्ट में निम्नलिखित टिप्पणी और कमांड जोड़ें, ताकि यदि फ्रंट आई सेंसर किसी भी रंग का पता नहीं लगाता है, तो वीआर रोबोट आगे की ओर चले।
	# यदि फ्रंट आई को कोई पता नहीं चलता है तो आगे ड्राइव करें
	यदि फ्रंट_आई.डिटेक्ट(NONE): 
    	ड्राइवट्रेन.ड्राइव(फॉरवर्ड)
  • वीआर रोबोट के पास अब फ्रंट आई सेंसर द्वारा पता लगाए गए प्रत्येक रंग के लिए निर्देश मौजूद हैं।
    • यदिआई सेंसर 'हरा' दिखाता है, तो 90 डिग्री दाईं ओर मुड़ें।
    • यदिआई सेंसर 'नीला' रंग पहचानता है, तो डिग्री बाईं ओर मुड़ें।
    • यदिआई सेंसर 'लाल' दिखाता है, तो गाड़ी चलाना बंद कर दें।
    • यदिफ्रंट आई सेंसर 'NONE' का पता लगाता है –आगे ड्राइव करें
  • यदि प्लेग्राउंड विंडो पहले से खुली नहीं है, तो उसे खोलें। सुनिश्चित करें किडिस्क मेज़ प्लेग्राउंडखुल जाए, और प्रोजेक्ट को चलाएं। पूरी परियोजना इस प्रकार दिखनी चाहिए: 
def main():
    # यदि सामने की बत्ती हरी दिखाई दे तो दाएँ मुड़ें
    यदि सामने की बत्ती हरी दिखाई दे तो:
        ड्राइवट्रेन.दाएँ मुड़ें (90 डिग्री)

    # यदि सामने की बत्ती नीली दिखाई दे तो बाएँ मुड़ें
    यदि सामने की बत्ती नीली दिखाई दे तो:
        ड्राइवट्रेन.बाएँ मुड़ें (90 डिग्री)

    # यदि सामने की बत्ती लाल दिखाई दे तो रुकें
    यदि सामने की बत्ती लाल दिखाई दे तो: 
        ड्राइवट्रेन.रुकें()

    # यदि सामने की बत्ती कोई लाल रंग नहीं दिखाती तो आगे बढ़ें
    यदि सामने की बत्ती कोई लाल रंग नहीं दिखाती तो: 
        ड्राइवट्रेन.आगे की ओर चलाएँ
  • क्या वीआर रोबोट आपकी इच्छानुसार व्यवहार कर रहा है? क्यों या क्यों नहीं? पाठ के अगले पृष्ठ पर, हम इस परियोजना के बारे में और अधिक जानेंगे।

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