पाठ 3: जब लाल रंग का पता चलता है
वीआर रोबोट को यह बताने के लिए कोई कमांड नहीं है कि लाल रंग का पता चलने पर उसे क्या करना है। लाल बॉर्डर से बचने के लिए, वीआर रोबोट को लाल रंग का पता चलते ही पीछे की ओर मुड़ना चाहिए, जैसा कि इस वीडियो में दिखाया गया है।
-
डाउन आई सेंसर द्वारा लाल बॉर्डर का पता लगाने पर क्या होना चाहिए, यह इंगित करने के लिएwhileलूप के अंत में एक टिप्पणी जोड़ें। अब आपका प्रोजेक्ट कुछ इस तरह दिखना चाहिए:
def main(): # लाल बॉर्डर का पता न चलने पर इमारत की तलाश करें while not down_eye.detect(RED): # क्या दूरी सेंसर किसी महल का पता लगाता है? अगर front_distance.found_object(): # डिस्टेंस सेंसर द्वारा क्रैश कैसल का पता चला drivetrain.drive(FORWARD) अन्यथा: # डिस्टेंस सेंसर का उपयोग करके कैसल खोजने के लिए मुड़ें drivetrain.turn(RIGHT) wait(5, MSEC) # लाल बॉर्डर का पता चलने पर रिवर्स करें और मुड़ें -
टिप्पणी के नीचे drive_forऔर turn_for कमांड जोड़ें ताकि डाउन आई सेंसर द्वारा लाल रंग का पता चलने पर वीआर रोबोट पीछे की ओर मुड़ सके।
def main(): # लाल बॉर्डर का पता न चलने पर इमारत की तलाश करें while not down_eye.detect(RED): # क्या दूरी सेंसर किसी महल का पता लगाता है? if front_distance.found_object(): # डिस्टेंस सेंसर द्वारा क्रैश कैसल का पता चला drivetrain.drive(FORWARD) else: # डिस्टेंस सेंसर का उपयोग करके कैसल खोजने के लिए मुड़ें drivetrain.turn(RIGHT) wait(5, MSEC) # लाल बॉर्डर का पता चलने पर रिवर्स और टर्न करें drivetrain.drive_for(REVERSE, 300, MM) drivetrain.turn_for(RIGHT, 90, DEGREES) - यदि डायनामिक कैसल क्रैशर प्लेग्राउंडपहले से खुला नहीं है, तो उसे खोलें और प्रोजेक्ट चलाएं। क्या वीआर रोबोट आपकी इच्छानुसार व्यवहार कर रहा है?
- जब यह प्रोजेक्ट चलाया जाता है, तो दो स्थितियों की जाँच की जाती है। पहली शर्त यह है कि डाउन आई सेंसर जबकि लूप के अंदर लाल रंग का पता लगाता है। ध्यान दें कि प्रोजेक्ट प्रवाह किसी वस्तु के पता चलने की अगली स्थिति पर बढ़ता है जब डाउन आई सेंसर लाल रंग नहीं देखता है। यदि डाउन आई सेंसर लाल रंग का पता लगाता है, तो प्रोजेक्ट प्रवाह यदि अन्यथा कथन को छोड़ देता है और रिवर्स में ड्राइविंग और टर्निंग पर चला जाता है।

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

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

अनंत while लूप जोड़ना
-
व्यवहारों को लूप में दोहराने के लिए एक अनंत whileलूप की आवश्यकता होती है। प्रोजेक्ट के शीर्ष पर while लूप को ड्रैग करके डालें या टाइप करें, और अनंत लूप बनाने के लिए कंडीशन को True पर सेट करें। फिर, पिछले कोड को अनंत whileलूप के अंदर कॉपी और पेस्ट करें। सुनिश्चित करें कि कमांड सही हेडर के अंतर्गत ठीक से इंडेंट किए गए हैं, अन्यथा प्रोजेक्ट अपेक्षा के अनुरूप नहीं चल सकता है। अब आपका प्रोजेक्ट कुछ इस तरह दिखना चाहिए:
def main(): while True: # लाल बॉर्डर का पता न चलने तक इमारत की तलाश करें while not down_eye.detect(RED): # क्या दूरी सेंसर किसी महल का पता लगाता है? if front_distance.found_object(): # डिस्टेंस सेंसर द्वारा क्रैश कैसल का पता चला drivetrain.drive(FORWARD) else: # डिस्टेंस सेंसर का उपयोग करके कैसल खोजने के लिए मुड़ें drivetrain.turn(RIGHT) wait(5, MSEC) # लाल बॉर्डर का पता चलने पर रिवर्स और टर्न करें drivetrain.drive_for(REVERSE, 300, MM) drivetrain.turn_for(RIGHT, 90, DEGREES) - यदि डायनामिक कैसल क्रैशर प्लेग्राउंडपहले से खुला नहीं है, तो उसे खोलें और प्रोजेक्ट चलाएं। क्या वीआर रोबोट आपकी इच्छानुसार व्यवहार कर रहा है?
-
जब यह प्रोजेक्ट चलाया जाएगा, तो वीआर रोबोट पता लगाए गए किले की ओर बढ़ेगा और यदि कोई किला नहीं पाया जाता है तो दाईं ओर मुड़ जाएगा। जैसे ही डाउन आई सेंसर लाल रंग का पता लगाता है, वीआर रोबोट पीछे की ओर चलता है, मुड़ता है और दूसरे महल की ओर बढ़ना जारी रखता है।
