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

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

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

-
दीवार भूलभुलैया खेल का मैदानपर अक्षर 'ए' के लिए ड्राइविंग के लिए परियोजना प्रवाह को बेहतर ढंग से समझने के लिए, अपने पिछले प्रोजेक्ट को संशोधित करके शुरू करें या इस आधार परियोजना से मेल खाने के लिए एक नया प्रोजेक्ट बनाएं।
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लूप प्रोग्राम प्रवाह को एक निश्चित बिंदु पर "रोक" देने की अनुमति देता है, जब तक कि कोई शर्त पूरी न हो जाए। notऑपरेटरपरियोजना को तब तक लूप में रहने की अनुमति देता है जब तक कि स्थिति को गलत नहीं बताया जाता है। इसके बाद प्रोजेक्ट लूप के बाहर अगले कमांड पर चला जाएगा। बूलियन स्थिति, जैसे कि बायां बम्पर दबाया जाना, सत्य या असत्य मान की रिपोर्ट करेगी। अक्षर 'A' तक VR रोबोट को ले जाने के लिए इस कोड में, VR रोबोट तब तक आगे बढ़ेगा जब तक कि बाएं बम्पर को दबाए जाने की बूलियन स्थिति सत्य
हो। अक्षर 'A' तक ले जाने के लिए परियोजना का परियोजना प्रवाह इस तरह दिखेगा:
वीआर रोबोट का व्यवहार दर्शाता है कि प्रत्येकwhileलूप को कैसे निष्पादित किया जा रहा है। वीआर रोबोट की गति के साथ-साथ, हम स्पष्ट रूप से देख सकते हैं कि परियोजना में प्रत्येक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 नहीं है: drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.stop() - यदि यह पहले से खुला नहीं है तो वॉल मेज़ प्लेग्राउंड लॉन्च करें और प्रोजेक्ट चलाएं।
-
दीवार भूलभुलैया खेल का मैदानपर नंबर '2' के लिए वी.आर. रोबोट ड्राइव देखें!

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