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

पाठ 4: एक लाल और एक हरे रंग की डिस्क को हिलाएँ

  • इसके बाद, वीआर रोबोट को अगले रंगीन लक्ष्य तक आगे बढ़ना होगा। ध्यान दें कि वीआर रोबोट को अगले रंगीन लक्ष्य के केंद्र तक पहुंचने के लिए चार ग्रिड वर्ग, या 800 मिलीमीटर (मिमी) आगे बढ़ना होगा।

    डिस्क मूवर प्लेग्राउंड का ऊपर से नीचे का दृश्य, जिसमें वीआर रोबोट पहली नीली डिस्क को छोड़ने के बाद नीले गोल के किनारे पर स्थित है और दाईं ओर लाल गोल की ओर मुंह किए हुए है। एक बिंदीदार तीर वीआर रोबोट के सामने से लाल लक्ष्य की ओर इशारा करता है, जो अगली नियोजित गतिविधि को दर्शाता है।
  • कोड में [Drive for] ब्लॉक जोड़ें और पैरामीटर को 800 मिलीमीटर (मिमी) पर सेट करें।

    पिछले पृष्ठ पर मौजूद वही VEXcode VR प्रोजेक्ट, जिसमें स्टैक के अंत में एक टिप्पणी और ड्राइव फॉर ब्लॉक जोड़ा गया है। दो अतिरिक्त ब्लॉक में लिखा है, "अगले लक्ष्य तक ड्राइव करें, फिर 800 मिमी आगे ड्राइव करें।"
  • अब वीआर रोबोट को रंगीन डिस्क की ओर मुड़ने की आवश्यकता होगी।

    डिस्क मूवर प्लेग्राउंड का ऊपर से नीचे का दृश्य, जिसमें वीआर रोबोट लाल लक्ष्य क्षेत्र में स्थित है। वीआर रोबोट के सामने से एक घुमावदार तीर लाल डिस्क की ओर इशारा करता है, जो लाल डिस्क की ओर मुड़ने के लिए आवश्यक मोड़ को दर्शाता है।
  • कोड में एक दूसरा [Turn to heading] ब्लॉक जोड़ें और पैरामीटर को शून्य डिग्री पर सेट करें। इससे वीआर रोबोट रंगीन डिस्क की ओर मुड़ जाएगा।

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

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

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

    डिस्क मूवर प्लेग्राउंड का ऊपर से नीचे का दृश्य, प्रारंभिक विन्यास में, जिसमें रोबोट नीले लक्ष्य के प्रारंभिक स्थान पर है। बिंदीदार तीर रोबोट द्वारा किए जाने वाले अपेक्षित दोहराए जाने वाले व्यवहारों को दर्शाते हैं, जिसके तहत रोबोट प्रत्येक डिस्क के पहले भाग को उठाकर संबंधित लक्ष्यों तक पहुंचाता है।
  • किसी व्यवहार को कई बार दोहराने के लिए, [Repeat] ब्लॉक का उपयोग किया जा सकता है।

    टूलबॉक्स से एक VEXcode VR रिपीट ब्लॉक, जिसमें पैरामीटर को डिफ़ॉल्ट मान 10 पर सेट किया गया है।
  • कोड में एक [Repeat] ब्लॉक जोड़ें और पैरामीटर को '3' पर सेट करें।

    मौजूदा VEXcode VR प्रोजेक्ट में रिपीट ब्लॉक जोड़ने का एक संक्षिप्त विवरण, ताकि पहले नीले डिस्क को उठाकर नीले लक्ष्य तक ले जाने, अगले लक्ष्य की ओर मुड़ने और फिर डिस्क की ओर मुड़ने के लिए आवश्यक सभी ब्लॉक रिपीट ब्लॉक के C के भीतर समाहित हो जाएं। रिपीट ब्लॉक पैरामीटर को 3 पर सेट किया गया है।
  • डिस्क मूवर प्लेग्राउंड खोलें और प्रोजेक्ट चलाएं।
  • जब यह प्रोजेक्ट चलाया जाता है, तो वीआर रोबोट प्रत्येक रंग की एक डिस्क को उठाता है और उसे उसके संबंधित रंग के लक्ष्य में गिरा देता है।

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

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

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

एक लूप के अंदर दूसरा लूप रखने को नेस्टिंग कहते हैं। जब आप लूप को "नेस्ट" करते हैं, तो बाहरी लूप आंतरिक लूप के निष्पादन की संख्या को नियंत्रित करता है। कई अलग-अलग प्रकार के लूप होते हैं जिन्हें नेस्टेड किया जा सकता है। उदाहरण के लिए, ऊपर दिए गए पिछले कोड में, [Repeat until] ब्लॉक एक [Repeat] ब्लॉक के अंदर नेस्टेड हैं।

वही VEXcode VR प्रोजेक्ट, जो पहले दिखाया गया था, जिसमें यह दिखाया गया है कि Repeat until C ब्लॉक को Repeat ब्लॉक के भीतर कैसे रखा गया है, जिससे रोबोट तीन डिस्क को सफलतापूर्वक स्थानांतरित कर सकता है।

एक [Repeat] ब्लॉक को दूसरे [Repeat] ब्लॉक के अंदर भी रखा जा सकता है। निम्नलिखित उदाहरण में, चूंकि बाहरी [रिपीट] ब्लॉक को '3' पर सेट किया गया है, इसलिए वीआर रोबोट प्लेग्राउंड पर तीन वर्ग बनाएगा।

बाईं ओर, एक प्रोजेक्ट में रिपीट ब्लॉक को 3 पर सेट किया गया है, जिसमें वीआर रोबोट को एक वर्ग बनाने के लिए कोड करने की आवश्यकता होती है, जो नेस्टेड लूप की अवधारणा को दर्शाता है। दाईं ओर, प्लेग्राउंड विंडो में प्रोजेक्ट से रोबोट द्वारा बनाए गए तीन वर्ग दिखाई दे रहे हैं।

नेस्टेड लूप उन परियोजनाओं में सहायक होते हैं जहां एक वीआर रोबोट एक ही व्यवहार को एक से अधिक बार दोहराता है। नेस्टिंग लूप्स किसी प्रोजेक्ट को व्यवस्थित और संक्षिप्त करने में मदद करते हैं। इससे कोड के संदर्भ और उद्देश्य को बेहतर ढंग से समझने में मदद मिल सकती है, साथ ही त्रुटियों को ढूंढना भी आसान हो जाता है।

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