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

सीखने के परिणाम
- पहचानें कि if elseस्टेटमेंट रिपोर्ट किए गए बूलियन मान के आधार पर 'if' या 'else' शाखा के अंदर कमांड चलाता है।
- पहचानें कि if else स्टेटमेंट का उपयोग आमतौर पर forयाwhile लूप के साथ किया जाता है ताकि स्थिति को एक से अधिक बार जांचा जा
- पहचानें और वर्णन करें कि लूप के साथ if elseस्टेटमेंट का उपयोग क्यों किया जाता है।
- बताइए कि if elseस्टेटमेंट वाले प्रोजेक्ट में 'if' ब्रांच या 'else' ब्रांच को चलाने का कारण क्या होगा।
इफ एल्स स्टेटमेंट का उपयोग क्यों करें?
डायनामिक कैसल क्रैशर चैलेंज, यूनिट 2 में मौजूद कैसल क्रैशर चैलेंज से अलग है। यूनिट 2 की चुनौती में एक स्थिर खेल के मैदान पर बने किलों को गिराने के लिए सरल अनुक्रमण और ड्राइवट्रेन कमांड का उपयोग किया गया था।
def main():
ड्राइवट्रेन.सेट_ड्राइव_वेलोसिटी(100, प्रतिशत)
ड्राइवट्रेन.सेट_टर्न_वेलोसिटी(100, प्रतिशत)
ड्राइवट्रेन.ड्राइव_फॉर(फॉरवर्ड, 1550, मिमी)
ड्राइवट्रेन.टर्न_फॉर(राइट, 180, डिग्री)
ड्राइवट्रेन.ड्राइव_फॉर(फॉरवर्ड, 700, मिमी)
ड्राइवट्रेन.टर्न_फॉर(राइट, 90, डिग्री), डायनामिक कैसल क्रैशर प्लेग्राउंड के बदलते लेआउट के कारण,ड्राइवट्रेन कमांड अकेले वीआर रोबोट को दो या अधिक महल गिराने के लिए पर्याप्त नहीं होंगे। ड्राइवट्रेन कमांड का एक सेट एक प्लेग्राउंड में काम कर सकता है, लेकिन दूसरे में नहीं। एक ऐसे एल्गोरिदम की आवश्यकता होगी जो सेंसर और चयन का उपयोग पुनरावृति के माध्यम से करे। इस प्रोजेक्ट में सशर्त कथनों के साथ चयन जोड़कर एक एल्गोरिदम बनाने के लिए if elseकथनों का उपयोग किया जाएगा।

इफ एल्स स्टेटमेंट
if else कथन एक ऐसा कथन है जो बूलियन शर्तों को स्वीकार करता है। if elseकथन एक सशर्त कथन है जो किसी परियोजना के प्रवाह को नियंत्रित करता है। if elseकथन आदेशों के एक विशेष अनुक्रम को निष्पादित करेगायदि शर्त पूरी होती है, अन्यथा(जब शर्त नहीं है) आदेशों का एक और सेट निष्पादित किया जाता है - जिससे परियोजना प्रवाह 'शाखा' बन जाता है। if elseमें केवल एक ही शाखा एक समय में निष्पादित होगी।
यदि शर्त मान्य है:
उत्तीर्ण
अन्यथा:
उत्तीर्ण- यदि शर्त को सत्य बताया जाता है, तो 'if' शाखा के भीतर के कमांड चलाए जाते हैं।
- यदि स्थिति को False के रूप में रिपोर्ट किया जाता है, तो 'else' शाखा के अंदर के कमांड चलाए जाते हैं।
- एक बार किसी एक शाखा के भीतर सभी कमांड चल जाने के बाद, प्रोजेक्टif elseस्टेटमेंट के बाहर अगले कमांड पर चला जाएगा।
आप संभवतः अपने रोजमर्रा के कार्यों में अक्सरif elseतर्क का उपयोग करते हैं। उदाहरण के लिए, जब आप बाहर के मौसम के आधार पर घर से निकलते समय क्या ले जाना है, यह तय करते हैं, तो आपयदि अन्यथातर्क का उपयोग कर सकते हैं। यदिबारिश हो रही है, तो छाता ले लो; अन्यथाधूप का चश्मा ले लो।
'यदि' शाखा -
- इस परिदृश्य में, 'बारिश' की स्थिति पूरी हो जाती है, इसलिए 'यदि'शाखा निष्पादित होगी, और आप छाता ले लेंगे।

'एल्स' शाखा -
- इस परिदृश्य में, 'बारिश हो रही है' की स्थिति नहीं बल्कि है, इसलिए 'एल्स' शाखा निष्पादित होगी, और आप धूप का चश्मा पहन लेंगे।

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

- अन्यथा,(जब वीआर रोबोट महल का पता नहीं लगाता है), मुड़ें और खेल के मैदान पर किसी अन्य स्थान पर महल की जाँच करें।

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

- परियोजना का नाम दें यूनिट 9 पाठ 2.

-
ऊपर बताए गए चरणों के आधार पर, परियोजना के उद्देश्य को रेखांकित करते हुए, कार्यक्षेत्र में टिप्पणियाँ जोड़ें। पहली टिप्पणी if elseकथन की स्थिति को समझाती है, और अगली दो टिप्पणियाँ if elseकथन की प्रत्येक शाखा की क्रियाओं को समझाती हैं। ध्यान रखें कि पायथन में कमेंट # (पाउंड) चिह्न से शुरू होते हैं। आपका प्रोजेक्ट कुछ इस तरह दिखना चाहिए:
def main(): # क्या दूरी सेंसर किसी किले का पता लगाता है? # डिस्टेंस सेंसर द्वारा क्रैश कैसल का पता लगाया गया # डिस्टेंस सेंसर का उपयोग करके कैसल खोजने के लिए मुड़ें -
ऊपर उल्लिखित प्रत्येक क्रिया को ट्रिगर करने के लिए इफ एल्स स्टेटमेंट का उपयोग किया जा सकता है। प्रत्येक क्रिया इस बात पर निर्भर करती है कि if elseकथन में बूलियन स्थिति सत्य या असत्य के रूप में रिपोर्ट करती है या नहीं। टिप्पणियों के बाद if elseकथन जोड़ें। अब आपका प्रोजेक्ट कुछ इस तरह दिखना चाहिए:
def main(): # क्या दूरी सेंसर किसी किले का पता लगाता है? # डिस्टेंस सेंसर द्वारा क्रैश कैसल का पता चला # डिस्टेंस सेंसर का उपयोग करके कैसल खोजने के लिए मुड़ें यदि शर्त: पास अन्यथा: पास -
if else कथन की प्रत्येक शाखा को टिप्पणियों का उपयोग करके परिभाषित किया जा सकता है। यदिदूरी सेंसर एक महल का पता लगाता है, तो वीआर रोबोट को महल को गिराने के लिए ड्राइव करना चाहिए; अन्यथाइसे महल का पता लगाने के लिए मुड़ना चाहिए। प्रोजेक्ट की if और else शाखाओं को संबंधित कार्यों का वर्णन करने वाली टिप्पणियों के साथ संरेखित करने के लिए स्थानांतरित करें। अब आपका प्रोजेक्ट कुछ इस तरह दिखना चाहिए:
def main(): # क्या दूरी सेंसर किसी किले का पता लगाता है? यदि स्थिति: # दूरी सेंसर द्वारा क्रैश कैसल का पता चला पास अन्यथा: # दूरी सेंसर का उपयोग करके कैसल खोजने के लिए मुड़ें पास
इस पाठ के शेष भाग को जारी रखने के लिए अगला बटन चुनें।