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

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

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

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

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

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

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

- परियोजना का नाम Unit9Lesson2रखें.

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