पाठ 4: अनंत व्हाइल लूप का उपयोग करना
डिस्क मेज़ समस्या का समाधान
परियोजना का निर्माण
- पिछले पाठ से Unit7Lesson3 प्रोजेक्ट लोड करें, या शुरू करने के लिए यहां दिखाए गए प्रोजेक्ट को दोबारा बनाएं।
def main():
# यदि सामने वाली बत्ती हरी दिखाई दे तो दाएँ मुड़ें
यदि सामने वाली बत्ती हरी दिखाई दे तो:
ड्राइवट्रेन.दाएँ मुड़ें (90 डिग्री)
# यदि सामने वाली बत्ती नीली दिखाई दे तो बाएँ मुड़ें
यदि सामने वाली बत्ती नीली दिखाई दे तो:
ड्राइवट्रेन.बाएँ मुड़ें (90 डिग्री)
# यदि सामने वाली बत्ती लाल दिखाई दे तो रुकें
यदि सामने वाली बत्ती लाल दिखाई दे तो:
ड्राइवट्रेन.रुकें()
# यदि सामने वाली बत्ती कोई लाल रंग नहीं दिखाती तो आगे बढ़ें
यदि सामने वाली बत्ती कोई लाल रंग नहीं दिखाती तो:
ड्राइवट्रेन.आगे बढ़ें-
प्रोजेक्ट का नाम बदलें Unit7Lesson4.

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

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