पाठ 4: अनंत While लूप का उपयोग करना
डिस्क भूलभुलैया समस्या का समाधान
परियोजना का निर्माण
- पिछले पाठ से Unit7Lesson3 प्रोजेक्ट लोड करें, या शुरू करने के लिए यहां दिखाए गए प्रोजेक्ट को फिर से बनाएं।
def main():
# यदि सामने वाली आँख हरे रंग का पता लगाती है तो दाईं ओर मुड़ें
यदि front_eye.detect(GREEN):
drivetrain.turn_for(RIGHT, 90, DEGREES)
# यदि सामने वाली आँख नीले रंग का पता लगाती है तो बाईं ओर मुड़ें
यदि front_eye.detect(BLUE):
drivetrain.turn_for(LEFT, 90, DEGREES)
# यदि सामने वाली आँख लाल रंग का पता लगाती है तो रुकें
यदि front_eye.detect(RED):
drivetrain.stop()
# यदि सामने वाली आँख कोई भी नहीं पहचानती है तो आगे बढ़ें
यदि front_eye.detect(NONE):
drivetrain.drive(FORWARD)-
प्रोजेक्ट का नाम बदलें Unit7Lesson4.

- प्रोजेक्ट के शीर्ष पर एक अनंतwhile लूप खींचें या टाइप करें, और शर्त को True पर सेट करें।
def main():
while True:
wait(5, MSEC)- waitकमांड को स्थानांतरित करके उन कमांडों के लिए स्थान बनाएं जो अनंतwhileलूप के अंदर जाएंगे।
def main():
while True:
wait(5, MSEC)- अनंतwhile लूप के अंदर, पिछले if कथनों को कॉपी करें और लूप के अंदर पेस्ट करें। while लूप के नीचे wait कमांड को न हटाएँ। आपका प्रोजेक्ट कुछ इस तरह दिख सकता है. ध्यान दें कि इस तरह से कमांड को कॉपी और पेस्ट करने से सही इंडेंटेशन नहीं होता है।
def main():
while True:
# यदि सामने वाली आँख हरे रंग का पता लगाती है तो दाईं ओर मुड़ें
यदि front_eye.detect(GREEN):
drivetrain.turn_for(RIGHT, 90, DEGREES)
# यदि सामने वाली आँख नीले रंग का पता लगाती है तो बाईं ओर मुड़ें
यदि front_eye.detect(BLUE):
drivetrain.turn_for(LEFT, 90, DEGREES)
# यदि सामने वाली आँख लाल रंग का पता लगाती है तो रुकें
यदि front_eye.detect(RED):
drivetrain.stop()
# यदि सामने वाली आँख कोई नहीं पहचानती है तो आगे बढ़ें
यदि front_eye.detect(NONE):
drivetrain.drive(FORWARD)
wait(5, MSEC)- याद रखें, VEXcode VR पायथन में इंडेंटेशन बहुत महत्वपूर्ण है। परियोजना प्रवाह को अपेक्षित रूप से निष्पादित करने के लिए, ifकथनों को अनंत whileलूप के भीतर इंडेंट किया जाना आवश्यक है। ifकथनों का चयन करें और उन्हें अनंतwhileलूप के भीतर इंडेंट करने के लिए 'Tab' दबाएँ। उचित रूप से इंडेंट किए जाने पर, आपका प्रोजेक्ट इस प्रकार दिखना चाहिए:
def main():
while True:
# यदि सामने वाली आँख हरे रंग का पता लगाती है तो दाईं ओर मुड़ें
यदि front_eye.detect(GREEN):
drivetrain.turn_for(RIGHT, 90, DEGREES)
# यदि सामने वाली आँख नीले रंग का पता लगाती है तो बाईं ओर मुड़ें
यदि front_eye.detect(BLUE):
drivetrain.turn_for(LEFT, 90, DEGREES)
# यदि सामने वाली आँख लाल रंग का पता लगाती है तो रुकें
यदि front_eye.detect(RED):
drivetrain.stop()
# यदि सामने वाली आँख कोई नहीं पहचानती है तो आगे बढ़ें
यदि front_eye.detect(NONE):
drivetrain.drive(FORWARD)
wait(5, MSEC)- प्रोजेक्ट में अनंत while लूप को जोड़ने पर, सभी if कथनों की शर्तों की बार-बार जाँच की जाएगी। डिस्क मेज़ प्लेग्राउंड खोलें और प्रोजेक्ट चलाएँ।
-
जब यह परियोजना चलाई जाएगी, तो वीआर रोबोट डिस्क भूलभुलैया खेल के मैदान को शुरू से अंत तक नेविगेट करेगा। जैसे ही वीआर रोबोट लाल बत्ती का पता लगाएगा, वह गाड़ी चलाना बंद कर देगा।

सारांश
- पिछले पाठ की परियोजना में, if कथनों के भीतर की शर्तों की केवल एक बार जाँच की गई थी। चूंकि if कथनों के भीतर की स्थितियों की केवल एक बार जांच की गई थी, इसलिए VR रोबोट हमेशा के लिए आगे बढ़ गया क्योंकि 'कोई रंग नहीं' की स्थिति का पता परियोजना की शुरुआत में सत्य के रूप में रिपोर्ट किया गया था।
- अब चूंकि अनंत while लूप जोड़ दिया गया है, इसलिए if कथनों की प्रत्येक शर्त की बार-बार जांच की जाएगी। while लूप की स्थिति हमेशा सत्य होती है, और इसलिए while लूप के अंदर का कोड हमेशा निष्पादित होगा। यह परियोजना के चलने के दौरान if कथनों की शर्तों की बार-बार जाँच करेगा।
- परियोजना के प्रवाह के दौरान, यदि if कथनों की स्थिति सत्य है, if कथन के अंदर के आदेश निष्पादित होते हैं। यदि if कथन की शर्त गलत है, तो if कथन के अंदर के आदेश निष्पादित नहीं होते हैं, और परियोजना का प्रवाह अगले आदेश तक जारी रहेगा। इससे वीआर रोबोट को एक निश्चित रंग का पता चलने पर मुड़ने या रुकने जैसे अलग-अलग व्यवहार करने में सक्षम बनाता है।
- यदि कथनों का उपयोग अनंत whileलूपों के साथ किया जाता है ताकि यह सुनिश्चित किया जा सके कि शर्तों की लगातार जाँच की जाती है।