Skip to main content

पाठ 3: एकाधिक While लूप के साथ प्रोजेक्ट प्रवाह

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

वॉल मेज़ खेल के मैदान का ऊपर से नीचे का दृश्य, जिसमें वी.आर. रोबोट खेल के मैदान के निचले मध्य में हरे तीर से शुरू होता है। संख्या 2 को लाल बॉक्स में हाइलाइट किया गया है, और भूलभुलैया के निचले बाएं चतुर्थांश के केंद्र में स्थित है, जो अक्षर A से आगे बाईं ओर है। संख्या 2 को चारों ओर से घेरे हुए तीन दीवारों द्वारा बनाए गए कोने में रखा गया है।

सीखने के परिणाम

  • एक प्रोजेक्ट में प्रोग्राम प्रवाह का वर्णन करें जिसमें VR रोबोट बम्पर सेंसर दबाए जाने तक आगे बढ़ता रहता है।

परियोजना का नाम बदलें

  • यदि पिछले पाठ का प्रोजेक्ट पहले से लोड नहीं है, तो Unit4Lesson2 प्रोजेक्ट लोड करें।
  • प्रोजेक्ट का नाम बदलें Unit4Lesson3.VEXcode VR टूलबार, परियोजना नाम के रूप में यूनिट 4 पाठ 3 दिखा रहा है। परियोजना का नाम लाल बॉक्स से हाइलाइट किया गया है।

     

 

परियोजना का प्रवाह अक्षर 'ए' तक ले जाने के लिए

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

खेल के मैदान के मध्य तल में प्रारंभिक स्थान पर वीआर रोबोट के साथ दीवार भूलभुलैया खेल के मैदान का ऊपर से नीचे का दृश्य। अक्षर 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लूप प्रोग्राम प्रवाह को एक निश्चित बिंदु पर "रोक" देने की अनुमति देता है, जब तक कि कोई शर्त पूरी न हो जाए। notऑपरेटरपरियोजना को तब तक लूप में रहने की अनुमति देता है जब तक कि स्थिति को गलत नहीं बताया जाता है। इसके बाद प्रोजेक्ट लूप के बाहर अगले कमांड पर चला जाएगा। बूलियन स्थिति, जैसे कि बायां बम्पर दबाया जाना, सत्य या असत्य मान की रिपोर्ट करेगी। अक्षर 'A' तक VR रोबोट को ले जाने के लिए इस कोड में, VR रोबोट तब तक आगे बढ़ेगा जब तक कि बाएं बम्पर को दबाए जाने की बूलियन स्थिति सत्य
    हो। अक्षर 'A' तक ले जाने के लिए परियोजना का परियोजना प्रवाह इस तरह दिखेगा:ऊपर दिए गए प्रोजेक्ट के प्रवाह का वर्णन करने वाला एक प्रोजेक्ट प्रवाह आरेख, अक्षर A पर जाने के लिए, जो बाईं ओर दिखाया गया है। दाईं ओर तीर दर्शाते हैं कि परियोजना किस प्रकार आगे बढ़ेगी। सबसे पहले, एक लाल चक्रीय तीर यह दर्शाता है कि जब बम्पर को दबाया नहीं जाता है, तो while लूप की स्थिति गलत हो जाती है, इसलिए रोबोट आगे बढ़ता है। इसके बाद एक हरे रंग का नीचे की ओर तीर यह दर्शाता है कि जब बम्पर दबाया जाता है, तो स्थिति सही बताती है, इसलिए परियोजना उस लूप से बाहर निकल जाती है और रोबोट 90 डिग्री बायीं ओर मुड़ जाता है। यह क्रम परियोजना में प्रत्येक लूप के लिए दोहराया जाता है।

वीआर रोबोट का व्यवहार दर्शाता है कि प्रत्येकwhileलूप को कैसे निष्पादित किया जा रहा है। वीआर रोबोट की गति के साथ-साथ, हम स्पष्ट रूप से देख सकते हैं कि परियोजना में प्रत्येकwhileलूप के निष्पादन के बाद वीआर रोबोट कहां चला गया है।बाईं ओर पायथन कोड दिखाया गया है जिसमें तीन अनुक्रमिक while लूप हैं, जिनमें से प्रत्येक रोबोट को तब तक आगे बढ़ने का निर्देश देता है जब तक कि बाएं बम्पर को दबाया न जाए। प्रत्येक लूप में बम्पर को दबाने पर रोबोट एक विशिष्ट क्रिया करता है।  पहले लूप में, रोबोट बम्पर दबने तक आगे बढ़ता है, फिर 90 डिग्री बायीं ओर मुड़ जाता है। दाईं ओर की छवि इस क्रिया के बाद भूलभुलैया में रोबोट की स्थिति को दर्शाती है, जिसे पीले रंग के वृत्त द्वारा चिह्नित किया गया है।  दूसरे लूप में, रोबोट पुनः आगे बढ़ता है जब तक बम्पर दबाया नहीं जाता और फिर 90 डिग्री बायीं ओर मुड़ जाता है। दूसरी छवि इस मोड़ के बाद भूलभुलैया में रोबोट की अद्यतन स्थिति को दर्शाती है।  तीसरे और अंतिम लूप में, रोबोट तब तक आगे बढ़ता रहता है जब तक बम्पर को दबाया नहीं जाता। जब बम्पर दबाया जाता है, तो रोबोट चलना बंद कर देता है। अंतिम छवि में भूलभुलैया के भीतर रोबोट की रुकने की स्थिति को दिखाया गया है, जिसे पुनः पीले रंग के वृत्त द्वारा दर्शाया गया है।

 

नंबर '2' तक ड्राइव करें

इस पाठ में, परियोजना को संपादित किया जाएगा ताकि वीआर रोबोट दीवार भूलभुलैया खेल का मैदानपर संख्या '2' तक ड्राइव कर सके!

वॉल मेज़ खेल के मैदान का ऊपर से नीचे का दृश्य, जिसमें वी.आर. रोबोट खेल के मैदान के निचले मध्य में हरे तीर से शुरू होता है। संख्या 2 को लाल बॉक्स में हाइलाइट किया गया है, और भूलभुलैया के निचले बाएं चतुर्थांश के केंद्र में स्थित है, जो अक्षर A से आगे बाईं ओर है। संख्या 2 को चारों ओर से घेरे हुए तीन दीवारों द्वारा बनाए गए कोने में रखा गया है।
  • पाठ 2 के प्रोजेक्ट में वीआर रोबोट को अक्षर 'ए' तक जाने के लिए बायीं ओर मुड़ना है। नंबर '2' तक जाने के लिए, वीआर रोबोट को दाईं ओर मुड़ना होगा, आगे बढ़ना होगा, और फिर बाईं ओर मुड़ना होगा।

    वॉल मेज़ प्लेग्राउंड का ऊपर से नीचे का दृश्य, जहां वीआर रोबोट ए मार्कर के ऊपर, बाईं दीवार की ओर मुंह करके स्थित है। एक लाल तीर A की ओर इशारा करता है, और तीन हरे तीर संख्या 2 के लिए इच्छित मार्ग दिखाते हैं। हरे तीर ऊपर की ओर A के सामने वाली दीवार की ओर, फिर बाईं ओर संख्या 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' की ओर बढ़ना शुरू करता है, लेकिन एक दीवार पर रुक जाता है। इस प्रकार, वीआर रोबोट को दीवार से टकराने पर रुकने के बजाय बाईं ओर मुड़ना पड़ता है।

    वॉल मेज़ खेल के मैदान का ऊपर से नीचे का दृश्य, जिसमें वीआर रोबोट अक्षर A के विपरीत दीवार की ओर मुंह करके ऊपर की ओर इशारा कर रहा है।
  • खेल के मैदान को रीसेट करने और वीआर रोबोट को प्रारंभिक स्थिति में वापस ले जाने के लिए "रीसेट" बटन का चयन करें।दीवार भूलभुलैया खेल का मैदान पूरे खेल के मैदान इंटरफ़ेस दिखा रहा है। प्लेग्राउंड इंटरफ़ेस के नीचे बाईं ओर स्थित रीसेट बटन को लाल बॉक्स से हाइलाइट किया गया है।

     

  • वीआर रोबोट को संख्या '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' के लिए वी.आर. रोबोट ड्राइव देखें!

    वॉल मेज़ खेल के मैदान का ऊपर से नीचे का दृश्य। वीआर रोबोट अब 2 मार्कर के ऊपर स्थित है, जिसका मुख नीचे की दीवार की ओर है तथा इसका अगला भाग दीवार से सटा हुआ है।
  • खेल के मैदान को रीसेट करने और वीआर रोबोट को प्रारंभिक स्थिति में वापस ले जाने के लिए "रीसेट" बटन का चयन करें।

इस पाठ के शेष भाग को जारी रखने के लिए अगला बटन का चयन करें।