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

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

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

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