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

सीखने के परिणाम
- पहचानें कि [If then else] ब्लॉक एक C ब्लॉक है जो रिपोर्ट किए गए बूलियन मान के आधार पर ब्लॉक को If या Else शाखा के अंदर चलाता है।
- पहचानें कि एक [यदि तो अन्यथा] ब्लॉक का उपयोग सामान्यतः [दोहराएँ] या [हमेशा के लिए] ब्लॉक के साथ किया जाता है ताकि स्थिति को एक से अधिक बार जांचा जा सके।
- पहचानें और वर्णन करें कि लूप के साथ [If then else] ब्लॉक का उपयोग क्यों किया जाता है।
- वर्णन करें कि किसी परियोजना में [यदि तो अन्यथा] शाखा को चलाने का क्या कारण होगा।
[यदि तो अन्यथा] ब्लॉक का उपयोग कैसे करें
यह चुनौती यूनिट 2 में कैसल क्रैशर चुनौती से अलग है। यूनिट 2 चुनौती में स्थिर खेल के मैदान पर इमारतों को गिराने के लिए सरल अनुक्रम और ड्राइवट्रेन कमांड का उपयोग किया गया।

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

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

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

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

-
कार्यक्षेत्र में दो [टिप्पणी] ब्लॉक जोड़ें और ऊपर बताए गए चरणों को भरें।

-
[यदि तो अन्यथा] ब्लॉक का उपयोग ऊपर उल्लिखित प्रत्येक क्रिया को ट्रिगर करने के लिए किया जा सकता है। प्रत्येक क्रिया इस बात पर निर्भर करती है कि [यदि तो अन्यथा] ब्लॉक में बूलियन स्थिति सत्य या असत्य रिपोर्ट करती है। [टिप्पणी] ब्लॉक के नीचे [यदि तो अन्यथा] ब्लॉक जोड़ें।

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

- यदि स्थिति सत्य बताई जाती है, तो If Then शाखा के अंदर के ब्लॉक चलाए जाते हैं।
- यदि स्थिति को FALSE के रूप में रिपोर्ट किया जाता है, तो Else शाखा के अंदर के ब्लॉक चलाए जाते हैं।

एक बार जब किसी एक शाखा के अंदर सभी ब्लॉक चला दिए जाते हैं, तो परियोजना [यदि तो अन्यथा] ब्लॉक के बाहर अगले ब्लॉक पर चली जाएगी।
-
इस परियोजना में, दूरी सेंसर का उपयोग खेल के मैदान पर इमारतों का पता लगाने के लिए किया जा सकता है। [यदि तो अन्यथा] ब्लॉक में <Distance found object> ब्लॉक जोड़ें।

आपकी जानकारी के लिए
<Distance found object> ब्लॉक एक बूलियन रिपोर्टर ब्लॉक है जो रिपोर्ट करता है कि क्या डिस्टेंस सेंसर ने वीआर रोबोट के सामने कोई वस्तु पाई है। यह ब्लॉक तब सत्य रिपोर्ट करता है जब वीआर रोबोट के 3000 मिलीमीटर (मिमी) के भीतर कोई वस्तु या सतह होती है।

-
अब [यदि तो अन्यथा] ब्लॉक की प्रत्येक शाखा को परियोजना की शुरुआत में बनाई गई टिप्पणियों का उपयोग करके परिभाषित करने की आवश्यकता है। जब <Distance found object> ब्लॉक सत्य बताता है, तो वीआर रोबोट को उस इमारत की ओर बढ़ना चाहिए ताकि उसे गिरा दिया जा सके। उस [टिप्पणी] ब्लॉक को परियोजना की 'यदि तो' शाखा में ले जाएं।

-
यदि VR रोबोट किसी इमारत का पता नहीं लगा पाता है तो क्या होगा, इसके लिए अन्य [टिप्पणी] ब्लॉक को प्रोजेक्ट की 'अन्यथा' शाखा में ले जाएं।

-
[यदि तो अन्यथा] ब्लॉक की 'यदि तो' शाखा में [ड्राइव] ब्लॉक जोड़ें।

-
जब <Distance found object> ब्लॉक गलत रिपोर्ट करता है, तो वीआर रोबोट को पीछे मुड़कर खेल के मैदान पर एक इमारत ढूंढनी होगी। [यदि तो अन्यथा] ब्लॉक की 'अन्यथा' शाखा में [टिप्पणी] ब्लॉक के नीचे [टर्न] ब्लॉक जोड़ें।

-
परियोजना का परीक्षण करने से पहले, एक और ब्लॉक जोड़ना आवश्यक है। [यदि तो अन्यथा] ब्लॉक स्टैक में अगले ब्लॉक पर जाने से पहले केवल एक बार या स्थिति की जांच करेंगे। यूनिट 7 में, वीआर रोबोट को डाउन आई सेंसर की स्थिति की बार-बार जांच करने का निर्देश देने के लिए परियोजना में एक [फॉरएवर] ब्लॉक जोड़ा गया था। यह सुनिश्चित करने के लिए कि दूरी सेंसर स्थिति की बार-बार जांच की जा रही है , [Forever] ब्लॉक को [If then else] ब्लॉक के चारों ओर कार्यक्षेत्र में खींचें।

-
डायनेमिक कैसल क्रैशर प्लेग्राउंड खोलें और प्रोजेक्ट चलाएं।

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

-
परियोजना के प्रत्येक चरण में, वीआर रोबोट तब तक घूमता रहेगा जब तक कि दूरी सेंसर द्वारा किसी इमारत का पता नहीं लग जाता, फिर वह उस इमारत को गिराने के लिए उसकी ओर बढ़ेगा।

- परियोजना के दौरान, वीआर रोबोट किसी इमारत के टुकड़े को किनारे तक धकेल सकता है और उसे खेल के मैदान से नीचे गिरा सकता है। ऐसा इसलिए है क्योंकि <Distance found object> ब्लॉक अभी भी रिपोर्ट कर रहा है कि VR रोबोट के सामने कोई वस्तु है। जब यह ब्लॉक सत्य रिपोर्ट करता है, तो वीआर रोबोट आगे बढ़ता है। वी.आर. रोबोट को मेज से नीचे गिराना।
इस पाठ के शेष भाग को जारी रखने के लिए अगला बटन का चयन करें।