पाठ 3: [If then] ब्लॉक का उपयोग करना
डिस्क मेज़ चैलेंज में, वीआर रोबोट यह देखने के लिए फ्रंट आई सेंसर की स्थिति की जांच कर रहा है कि कौन सा रंग रिपोर्ट किया जा रहा है। प्रत्येक रंग वीआर रोबोट द्वारा किए जाने वाले एक अलग व्यवहार से मेल खाता है।

-
एक नया प्रोजेक्ट शुरू करें और उसका नाम Unit7Lesson3 रखें।

-
[If then] ब्लॉक को वर्कस्पेस में खींचें और उसे [When started] ब्लॉक से जोड़ दें।

आपकी जानकारी के लिए
[If then] ब्लॉक एक C ब्लॉक है जो इनपुट के रूप में बूलियन रिपोर्टर ब्लॉक स्वीकार करता है। पाठ 2 में डिस्क भूलभुलैया को हल करते समय देखे गए पैटर्न का उपयोग करके, एक ऐसी परियोजना बनाई जा सकती है जिसमें वीआर रोबोट यह निर्णय लेता है कि स्थिति TRUE या FALSE के रूप में रिपोर्ट की गई है या नहीं।

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

स्विच ब्लॉक का उपयोग करना
नीचे दी गई छवि इस पाठ के उदाहरण प्रोजेक्ट के लिए स्विच [इफ देन] ब्लॉक स्टेटमेंट को दर्शाती है।
नीचे दिए गए प्रोजेक्ट में उन्हीं कमांड्स को एक स्विच ब्लॉक में परिवर्तित किया गया है।
कोड की पहली पंक्ति, if front_eye.detect(GREEN): , वह सशर्त लूप है जो जांच करता है कि फ्रंट आई सेंसर हरे रंग का पता लगाता है या नहीं। ध्यान दें कि इस पंक्ति के अंत में एक कोलन (:) होना चाहिए।
कोड की दूसरी पंक्ति, drivetrain.turn_for(RIGHT, 90, DEGREES) रोबोट को बताती है कि जब फ्रंट आई सेंसर हरे रंग का पता लगाता है तो उसे 90 डिग्री दाएं मुड़ना है। यह पंक्ति डिफ़ॉल्ट रूप से 4 स्पेसपर इंडेंट की गई है क्योंकि यह विशिष्ट व्यवहार है जो फ्रंट आई सेंसर द्वारा हरे रंग का पता लगाने पर किया जाएगा।

-
एक <Color sensing> ब्लॉक को वर्कस्पेस में [If then] ब्लॉक के षट्भुजाकार इनपुट में खींचें।

-
<Color sensing> ब्लॉक के पैरामीटर को 'हरा' में बदलें।

-
जब फ्रंट आई सेंसर एक हरी डिस्क का पता लगाता है, तो वीआर रोबोट को डिस्क भूलभुलैया को हल करना शुरू करने के लिए 90 डिग्री दाएं मुड़ने की आवश्यकता होगी। [Turn for] ब्लॉक को [If then] ब्लॉक में ड्रैग करें।

-
डिस्क मेज़ में तीनों रंगों (हरा, नीला और लाल) के लिए एक और [यदि तब] ब्लॉक जोड़ने के लिए इन्हीं चरणों का पालन करें। प्रत्येक रंग एक अलग व्यवहार से जुड़ा होता है। [If then] ब्लॉक के अंदर के ब्लॉक को अपेक्षित व्यवहार से मेल खाना होगा। प्रोजेक्ट में निम्नलिखित ब्लॉक जोड़ें। जब वीआर रोबोट 'नीला' रंग का पता लगाएगा, तो वीआर रोबोट 90 डिग्री बाईं ओर मुड़ जाएगा।

-
जब वीआर रोबोट भूलभुलैया के अंत तक पहुंच जाएगा, तो वह 'लाल' रंग का पता लगाएगा।

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

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

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

-
प्रोजेक्ट में निम्नलिखित ब्लॉक जोड़ें। जब वीआर रोबोट किसी भी रंग का पता नहीं लगाता है, तो वीआर रोबोट आगे की ओर बढ़ेगा।

- वीआर रोबोट के पास अब आई सेंसर द्वारा पता लगाए गए प्रत्येक रंग के लिए निर्देश मौजूद हैं।
- फ्रंट आई सेंसर ने 'हरा रंग?' का पता लगाया।
- 90 डिग्री दाएं मुड़ें
- फ्रंट आई सेंसर ने 'नीला' रंग पहचाना?
- 90 डिग्री बाईं ओर मुड़ें
- फ्रंट आई सेंसर ने 'लाल रंग?' का पता लगाया।
- गाड़ी चलाना बंद करो
- फ्रंट आई सेंसर ने 'कोई नहीं?' का पता लगाया
- आगे की तरफ गाड़ी चलाये
- फ्रंट आई सेंसर ने 'हरा रंग?' का पता लगाया।
- डिस्क मेज़ प्लेग्राउंड खोलें और प्रोजेक्ट चलाएं।
इस पाठ के शेष भाग को जारी रखने के लिए अगला बटन चुनें।