मुख्य सामग्री पर जाएं

पाठ 2: फॉर लूप के साथ प्रोजेक्ट का प्रवाह

जब कोई प्रोजेक्ट for लूप का उपयोग करता है, तब भी कमांड को निष्पादित करते समय यह उसी तर्क का पालन करता है। उदाहरण के लिए, ये दो कोड सैंपल वीआर रोबोट को एक ही तरह से गतिमान करेंगे। हालांकि,सेलूप वाली परियोजना, ऐसा करने के लिए दो ड्राइवट्रेन कमांड को चार बार दोहराती है।

एक वर्ग में वाहन चलाने के लिए दो कोड स्निपेट साथ-साथ दिखाए गए हैं ताकि फॉर लूप के उपयोग और नॉट लूप के उपयोग के बीच के अंतर को स्पष्ट किया जा सके। बाईं ओर वाले में कोई फॉर लूप नहीं है, और उसमें ड्राइव फॉर और टर्न फॉर कमांड चार-चार बार दोहराई गई हैं। दाईं ओर वाले में एक फॉर लूप है, और एक गोलाकार पैटर्न में लाल तीर हैं जिनके अंदर 4 बार शब्द लिखे हैं, जो यह दर्शाता है कि फॉर लूप ड्राइव फॉर और टर्न फॉर कमांड को चार बार दोहराता है।

एक लूप का उपयोग कमांड की एक श्रृंखला को निर्दिष्ट संख्या में दोहराने के लिए किया जाता है। लूप अपने अंदर मौजूद कमांड के अनुक्रम को दोहराता है (जिसे इटरेट भी कहा जाता है)। में, 'value' नामक चरउपयोग वर्तमान पुनरावृति ट्रैक करने के लिए जाता है, और 'in' कीवर्डउपयोग पुनरावृति की संख्या निर्दिष्ट करने के लिएहै। फॉर लूप के सिंटैक्स का विश्लेषण दिखाया गया है, जिसमें कमांड के प्रत्येक शब्द के ऊपर टेक्स्ट दिया गया है ताकि उसके कार्य की पहचान हो सके। पहले शब्द, 'for', के ऊपर "identifies the loop" लिखा हुआ है। दूसरे शब्द, मान, में यह पाठ है: "चर की पहचान करता है (लूप के माध्यम से यह कितनी बार दोहराया गया है?)।" तीसरे शब्द, 'इन', में "चर को सूची (श्रेणी) से जोड़ता है" पाठ है। अंतिम शब्द 'रेंज' है जिसमें कोष्ठक में पैरामीटर 10 दिया गया है। इसके ऊपर लिखा पाठ कहता है, "सूची की पहचान करता है (यह लूप के माध्यम से कितनी बार पुनरावृति करेगा?)।"

रेंज फ़ंक्शन यह निर्धारित करता है कि लूप को कितनी बार दोहराना चाहिए। वांछित संख्या में व्यवहारों को दोहराने के लिए, फ़ंक्शन के पैरामीटर को से की सीमा में सेट करें।

रेंज फ़ंक्शन मूल रूप से एक अस्थायी सूची बनाता है जो यह निर्दिष्ट करता है कि लूप को पूरा होने के लिए किन-किन चरणों से गुजरना चाहिए। वर्ग की चारों भुजाओं को खींचने जैसे दोहराए जाने वाले व्यवहारों के मामले में, रेंज फ़ंक्शन (0, 1, 2, 3) की एक अस्थायी सूची का उपयोग करता है ताकि वीआर रोबोट उन आदेशों को चार बार निष्पादित कर सके। वीआर रोबोट की गति रेंज फ़ंक्शन के पैरामीटर के आधार पर बदलेगी, जैसा कि यहां दिखाया गया है। 

VEXcode प्रोजेक्ट जो रेंज फ़ंक्शन को दर्शाता है। इसमें लिखा है def main (खुला कोष्ठक बंद कोष्ठक), अगली पंक्ति जो इंडेंटेड है उसमें लिखा है pen dot move (खुला कोष्ठक नीचे बंद कोष्ठक), अगली पंक्ति में लिखा है for value in range (खुला कोष्ठक 0 बंद कोष्ठक), अगली पंक्ति जो इंडेंटेड है उसमें लिखा है drivetrain dot drive underscore for (खुला कोष्ठक आगे, 600, MM बंद कोष्ठक), अगली पंक्ति में लिखा है drivetrain dot turn underscore for (खुला कोष्ठक दाएं, 90, डिग्री बंद कोष्ठक), अगली पंक्ति में लिखा है wait (खुला कोष्ठक पांच अल्पविराम MSEC)। कला कैनवास पर बना खेल का मैदान, जिसके केंद्र में रोबोट है। ड्राइवट्रेन कमांड 0 बार निष्पादित किए गए।
ऊपर दिए गए प्रोजेक्ट के समान ही, लेकिन रेंज फ़ंक्शन के पैरामीटर में 1 के साथ। आर्ट कैनवस प्लेग्राउंड जिसमें एक वर्ग की एक भुजा को पूरी तरह से चित्रित करने का प्रोजेक्ट शामिल है। ड्राइवट्रेन कमांड 1 बार निष्पादित किए गए।
ऊपर दिए गए प्रोजेक्ट के समान ही, लेकिन रेंज फ़ंक्शन के पैरामीटर में 2 का मान शामिल किया गया है। आर्ट कैनवस प्लेग्राउंड में दिखाया गया है कि रोबोट ने वर्ग की पहली दो भुजाएँ खींच दी हैं। ड्राइवट्रेन कमांड 2 बार निष्पादित किए गए।
ऊपर दिए गए प्रोजेक्ट के समान ही, लेकिन रेंज फ़ंक्शन के पैरामीटर में 3 का मान शामिल किया गया है। आर्ट कैनवस प्लेग्राउंड में दिखाया गया है कि रोबोट ने वर्ग की तीन भुजाएँ खींची हैं। ड्राइवट्रेन कमांड 3 बार निष्पादित किए गए।
ऊपर दिए गए प्रोजेक्ट के समान ही, लेकिन रेंज फ़ंक्शन के पैरामीटर में 4 का मान शामिल किया गया है। आर्ट कैनवस प्लेग्राउंड में दिखाया गया है कि रोबोट ने वर्ग की चारों भुजाएँ बना दी हैं। ड्राइवट्रेन कमांड को 4 बार निष्पादित किया गया, जिससे वर्ग के सभी 4 पक्ष पूरे हो गए।

 

ऊपर दिए गए प्रोजेक्ट के समान ही, लेकिन रेंज फ़ंक्शन के पैरामीटर में 5 का मान शामिल किया गया है।

आर्ट कैनवस प्लेग्राउंड में दिखाया गया है कि रोबोट ने वर्ग की चारों भुजाएँ खींची हैं, और फिर पहली भुजा पर दोबारा ट्रेस किया है। ड्राइवट्रेन कमांड को 5 बार निष्पादित किया गया, जिससे वर्ग पूरा हो गया, और फिर पहली भुजा पर दोबारा ट्रेसिंग की गई।

ध्यान दें कि वर्ग की खींची गई आकृति में कोई बदलाव नहीं हुआ जबरेंजफ़ंक्शन चार से पांच में बदल गया; लेकिन वीआर रोबोट की अंतिम स्थिति बदल गई। इस प्रकार, डिफ़ॉल्टरेंजफ़ंक्शन के साथलूप का उपयोग करने से वही वर्गाकार आकृति खींची जाएगी, लेकिन वीआर रोबोट अतिरिक्त छह बार व्यवहार दोहराता रहेगा। 

वीआर रोबोट से लूप हेडर से लेकर अंतिम इंडेंटेड कमांड तक के कमांड्स के माध्यम से आगे बढ़ेगा। फॉरलूप हेडर यह दर्शाता है कि वीआर रोबोट को लूप के अंदर की क्रियाओं को निर्दिष्ट संख्या में दोहराना चाहिए, इससे पहले कि वह फॉर लूप के बाहर अगले कमांड पर आगे बढ़े। इंडेंट की गई लाइनें यह दर्शाती हैं कि फॉर लूप के अंदर कौन से कमांड हैं और उन्हें दोहराया जाना चाहिए।

आपकी जानकारी के लिए

VEXcode VR में,waitकमांड हमेशाforलूप के साथ जोड़ा जाता है। waitकमांड का उद्देश्य यह सुनिश्चित करना है कि VEXcode VR प्लेटफॉर्म की वेब-आधारित प्रकृति के कारण VEXcode VR प्रोजेक्ट को इच्छानुसार ठीक से चला सके। उपयोग करते समयकमांडकभी भी डिलीट नहीं किया जाना चाहिए, अन्यथा आपका प्रोजेक्ट इच्छानुसार नहीं चल सकता है।

वेट कमांड के साथ फॉर लूप।

निर्दिष्ट संख्या में बार फॉर लूप को निष्पादित करने के लिए सेट किया जाता है, जिससे प्रोजेक्ट आवश्यक पुनरावृत्ति पूरी होने परफॉरलूप से बाहर निकल जाता है। लूप के बाहर अगले कमांड पर जाने से पहले फॉर लूप में रेंजफ़ंक्शन के पैरामीटर तक पहुंचना आवश्यक है। नीचे दिए गए कोड उदाहरण में, एक बार जबforलूप में ड्राइवट्रेन कमांड चार बार निष्पादित हो जाते हैं, तो प्रोजेक्टforलूप से बाहर निकल जाएगा, पेन का रंग लाल सेट कर देगा और रिवर्स में ड्राइव करेगा। ऊपर दिए गए VEXcode प्रोजेक्ट में, रेंज पैरामीटर में 4 मान को लाल तीरों से दर्शाया गया है, जो फॉर लूप के चारों ओर हैं, और 4x का संकेत यह दर्शाता है कि प्रोजेक्ट लूप को चार बार दोहराएगा। नीचे की तरफ कोड की 2 अतिरिक्त लाइनें जोड़ी गई हैं। तीरों से पता चलता है कि चार पुनरावृत्तियों के पूरा होने के बाद वे 2 लाइनें निष्पादित होंगी। उन पंक्तियों में लिखा है, pen dot set color open parenthesis red close parenthesis and drivetrain dot drive underscore for open parenthesis reverse comma 600 comma mm close parenthesis. दाईं ओर खेल के मैदान में परियोजना को चलाने के बाद की एक तस्वीर है जिसमें वीआर रोबोट द्वारा खींची गई एक लाल रेखा के साथ एक काला वर्ग दिखाया गया है।

मिनी चैलेंज

इस प्रोजेक्ट में, VR रोबोट को आर्ट कैनवास प्लेग्राउंड, पर एक नीला वर्ग बनाना चाहिए, लेकिन प्रोजेक्ट में त्रुटियां हैं। मिनी चुनौती को हल करने के लिए प्रोजेक्ट को संपादित करें!

आर्ट कैनवस प्लेग्राउंड, जिसमें वीआर रोबोट द्वारा बनाया गया एक नीला वर्ग है।

नीचे दिए गए वीडियो में दिखाया गया है कि मिनी चैलेंज को पूरा करने के लिए क्या करना है। रोबोट खेल के मैदान के बीच से शुरू होता है और एक बड़े नीले वर्ग की चारों भुजाएँ खींचता है। 

वीडियो फाइल
  • समाधान का वीडियो देखें और समीक्षा करें कि मिनी चुनौती को पूरा करने के लिए वीआर रोबोट को कैसे चलना चाहिए।
  • Unit3Lesson2 प्रोजेक्ट को इस छवि से मेल खाने के लिए संशोधित करें, या नीचे दिए गए कोड को कॉपी करें।
     
def main():
	pen.move(DOWN)
	pen.set_pen_color(RED)
	drivetrain.drive_for(FORWARD, 600, MM)
	
	for value in range(3):
		drivetrain.drive_for(FORWARD, 600, MM)
		drivetrain.turn_for(RIGHT, 90, DEGREES)
		wait (5, MSEC)
  • प्रोजेक्ट शुरू करें और उन क्षेत्रों की पहचान करें जहां वीआर रोबोट अपेक्षित व्यवहारों को पूरा नहीं करता है।
  • प्रोजेक्ट में बदलाव करें और प्रोजेक्ट को दोबारा चलाएं। देखें कि वीआर रोबोट अपेक्षित व्यवहारों को पूरा करता है या नहीं।
  • यदि वीआर रोबोट नीला वर्ग नहीं बनाता है, तो पिछले चरण को दोहराएं और फिर से प्रयास करें। अपने प्रोजेक्ट को तब तक संशोधित और संचालित करते रहें जब तक कि वीआर रोबोट एक नीला वर्ग न बना दे।
  • एक बार जब वीआर रोबोट आर्ट कैनवास प्लेग्राउंडपर सफलतापूर्वक एक नीला वर्ग बना लेता है, तो प्रोजेक्ट को सेव करें।

बधाई हो! आपने मिनी चैलेंज हल कर लिया!

प्रश्न

पाठ की प्रश्नोत्तरी तक पहुँचने के लिए कृपया नीचे दिए गए लिंक का चयन करें।

गूगल डॉक / .docx / .pdf