पाठ 3: एकाधिक व्हाइल लूप के साथ प्रोजेक्ट प्रवाह
अब जबकि आपने वीआर रोबोट को वॉल मेज़ प्लेग्राउंडपर अक्षर 'ए' तक ले जाने के लिए एक टेक्स्ट प्रोजेक्ट बना लिया है, तो आप कंडीशनल और सेंसर वैल्यू का उपयोग करके अपने कौशल का विस्तार करेंगे। इस पाठ में, आप वीआर रोबोट को वॉल मेज़ प्लेग्राउंडमें संख्या '2' तक ले जाएंगे, फिर यह जानेंगे कि अक्षर 'बी' तक जाने के लिए अतिरिक्त कमांड की आवश्यकता क्यों होती है। इस मिनी-चैलेंज में, आपको इन कौशलों का उपयोग करके वॉल मेज़ के आरंभ से संख्या '3' तक पहुंचना होगा।

सीखने के परिणाम
- एक ऐसे प्रोजेक्ट में प्रोग्राम फ्लो का वर्णन करें जिसमें एक वीआर रोबोट तब तक आगे बढ़ता है जब तक कि बम्पर सेंसर को दबाया नहीं जाता।
प्रोजेक्ट का नाम बदलें
- यदि पिछले पाठ का प्रोजेक्ट पहले से लोड नहीं है, तो Unit4Lesson2 प्रोजेक्ट लोड करें।
-
प्रोजेक्ट का नाम बदलें Unit4Lesson3.

'A' अक्षर तक पहुंचने के लिए परियोजना का प्रवाह
पिछले पाठ में, वीआर रोबोट ने वॉल मेज़ प्लेग्राउंड पर अक्षर 'ए' तक ड्राइव किया। आइए, वॉल मेज़ में एक नए स्थान पर जाने की तैयारी करते हुए, प्रोजेक्ट के प्रवाह को विस्तार से समझते हैं।

-
वॉल मेज़ प्लेग्राउंडपर अक्षर 'A' तक ड्राइव करने के लिए प्रोजेक्ट फ्लो को बेहतर ढंग से समझने के लिए, अपने पिछले प्रोजेक्ट को संशोधित करके या इस बेस प्रोजेक्ट से मेल खाने वाला एक नया प्रोजेक्ट बनाकर शुरुआत करें।
def main(): while not left_bumper.pressed(): drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.turn_for(LEFT, 90, DEGREES) while not left_bumper.pressed(): drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.turn_for(LEFT, 90, DEGREES) while not left_bumper.pressed(): drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.stop() - जब कोई प्रोजेक्ट whileलूप का उपयोग not शर्त के साथ करता है, तो प्रोजेक्ट का प्रोग्राम प्रवाह अभी भी ऊपर से नीचे तक उसी क्रम का पालन करता है। whileलूप किसी शर्त के पूरा होने पर प्रोग्राम के प्रवाह को एक निश्चित बिंदु पर "रोकने" की अनुमति देता है। ऑपरेटरनॉटप्रोजेक्ट को लूप में तब तक रहने की अनुमति देता है जब तक कि स्थिति को गलत रिपोर्ट नहीं किया जाता है। फिर प्रोजेक्ट लूप के बाहर अगले कमांड पर चला जाएगा। एक बूलियन स्थिति, जैसे कि लेफ्ट बम्पर का दबा होना, ट्रू या फॉल्स मान रिपोर्ट करेगी। वीआर रोबोट को अक्षर 'ए' तक ले जाने वाले इस कोड में, वीआर रोबोट तब तक आगे बढ़ेगा जब तक
बाएँ बम्पर के दबे होने की बूलियन स्थिति सत्य न हो जाए। अक्षर 'ए' तक ले जाने वाले प्रोजेक्ट का प्रवाह इस प्रकार होगा:
वीआर रोबोट का व्यवहार दर्शाता है कि प्रत्येकजबकिलूप कैसे निष्पादित हो रहा है। वीआर रोबोट की गति के साथ-साथ, हम स्पष्ट रूप से देख सकते हैं कि परियोजना में प्रत्येकजबकिलूप निष्पादित होने के बाद वीआर रोबोट कहाँ चला गया है।
नंबर '2' की ओर ड्राइव करें
इस पाठ में, प्रोजेक्ट को इस प्रकार संपादित किया जाएगा कि वीआर रोबोट वॉल मेज़ प्लेग्राउंड पर संख्या '2' तक ड्राइव करे!

-
पाठ 2 की परियोजना में वीआर रोबोट को अक्षर 'ए' तक जाने के लिए बाईं ओर मुड़ना है। संख्या '2' तक पहुंचने के लिए, वीआर रोबोट को पहले दाईं ओर मुड़ना होगा, आगे बढ़ना होगा और फिर बाईं ओर मुड़ना होगा।

-
दूसरे turn_forकमांड की दिशा को बाएं के बजाय दाएं में बदलें। अब आपका प्रोजेक्ट कुछ इस तरह दिखना चाहिए:
def main(): while not left_bumper.pressed(): drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.turn_for(LEFT, 90, DEGREES) while not left_bumper.pressed(): drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.turn_for(RIGHT, 90, DEGREES) while not left_bumper.pressed(): drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.stop() - यदि वॉल मेज़ प्लेग्राउंड पहले से खुला नहीं है, तो उसे लॉन्च करें और प्रोजेक्ट चलाएं।
-
वीआर रोबोट को '2' नंबर की ओर बढ़ते हुए देखें, लेकिन वह एक दीवार के सामने रुक जाता है। इसलिए, वीआर रोबोट को दीवार से टकराने पर रुकने के बजाय बाईं ओर मुड़ना होगा।

-
प्लेग्राउंड को रीसेट करने और वीआर रोबोट को शुरुआती स्थिति में वापस ले जाने के लिए "रीसेट" बटन चुनें।

-
कोड को संपादित करें और उसमें से स्टॉप कमांड को हटाकर उसकी जगह निम्नलिखित कमांड डालें ताकि वीआर रोबोट को संख्या '2' तक ले जाया जा सके।
def main(): while not left_bumper.pressed(): drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.turn_for(LEFT, 90, DEGREES) while not left_bumper.pressed(): drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.turn_for(RIGHT, 90, DEGREES) while not left_bumper.pressed(): drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.turn_for(LEFT, 90, DEGREES) while not left_bumper.pressed(): drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.turn_for(LEFT, 90, डिग्री) जबकि left_bumper.pressed() नहीं है: ड्राइवट्रेन.ड्राइव(फॉरवर्ड) प्रतीक्षा करें(5, मिलीसेकंड) ड्राइवट्रेन.स्टॉप() - यदि वॉल मेज़ प्लेग्राउंड पहले से खुला नहीं है, तो उसे लॉन्च करें और प्रोजेक्ट चलाएं।
-
वीआर रोबोट को वॉल मेज़ प्लेग्राउंड पर नंबर '2' तक ड्राइव करते हुए देखें!

- प्लेग्राउंड को रीसेट करने और वीआर रोबोट को शुरुआती स्थिति में वापस ले जाने के लिए "रीसेट" बटन चुनें।
इस पाठ के शेष भाग को जारी रखने के लिए अगला बटन चुनें।