Skip to main content

पाठ 4: [हमेशा के लिए] ब्लॉक का उपयोग करना

बार-बार स्थितियों की जाँच करना

जैसा कि पिछले पाठ में देखा गया है, [यदि तो] ब्लॉक केवल एक बार शर्तों की जांच करता है। [यदि तो] ब्लॉक में निहित शर्तों की बार-बार जाँच करने के लिए, एक [हमेशा] सी ब्लॉक की आवश्यकता होती है। [फॉरएवर] ब्लॉक, कंट्रोल श्रेणी का एक सी ब्लॉक है जो अपने अंदर मौजूद व्यवहारों को हमेशा के लिए दोहराता है।

एक खाली VEXcode VR फॉरएवर ब्लॉक.
  • पिछले पाठ से Unit7Lesson3 प्रोजेक्ट लोड करें।

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

    VEXcode VR टूलबार जिसमें 'प्रोजेक्ट नाम' बटन लाल बॉक्स में हाइलाइट किया गया है, जो 'प्लेग्राउंड चुनें' बटन के बाईं ओर है। परियोजना का नाम यूनिट 7 पाठ 4 निर्धारित किया गया है।
  • एक [Forever] ब्लॉक को कार्यक्षेत्र में खींचें और इसे ब्लॉकों के ढेर के शीर्ष पर संलग्न करें। ध्यान दें कि इसमें [Forever] ब्लॉक के अंदर सभी चार [If then] ब्लॉक शामिल होंगे।

    VEXcode VR पहले से प्रोजेक्ट को ब्लॉक करता है, लेकिन एक तीर के साथ सभी if स्टेटमेंट्स के चारों ओर लिपटे Forever ब्लॉक को जोड़ने का संकेत देता है। यह When Started ब्लॉक से शुरू होता है और फिर Forever ब्लॉक में लिपटे चार if कथनों की एक श्रृंखला होती है। पहला है 'इफ देन' ब्लॉक, जिसमें कलर सेंसिंग ब्लॉक का बूलियन पैरामीटर है, जिसमें लिखा है 'फ्रंट आई हरे रंग का पता लगाती है?' और 'इफ' कंटेनर के अंदर 90 डिग्री के लिए दाएं मुड़ें ब्लॉक। इसके बाद वही if ब्लॉक और टर्न ब्लॉक स्टैक है, लेकिन यदि नीला रंग पाया जाता है तो इसे 90 डिग्री तक बायीं ओर मोड़ने के लिए बदल दिया गया है। इसके बाद, यदि ब्लॉक और टर्न ब्लॉक स्टैक का ही उपयोग किया जाता है, लेकिन यदि लाल रंग का पता चलता है तो इसे ड्राइविंग रोकें में बदल दिया जाता है। अंत में, यदि ब्लॉक और टर्न ब्लॉक स्टैक का ही उपयोग किया जाता है, लेकिन यदि कोई रंग नहीं पाया जाता है, तो इसे ड्राइव फॉरवर्ड में बदल दिया जाता है।

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

    ब्लॉक को प्रोजेक्ट स्टैक के आरंभ या मध्य में, ब्लॉक के शीर्ष को पंक्तिबद्ध करके, स्टैक में वांछित स्थान पर जोड़ा जा सकता है।

    एक दृश्यांकन जिसमें बताया गया है कि किस प्रकार एक फॉरएवर ब्लॉक को स्टैक के शीर्ष पर खींचा जा सकता है तथा स्वचालित रूप से स्टैक की सामग्री के चारों ओर लपेटा जा सकता है। VEXcode VR ब्लॉक परियोजना पहले जैसी ही है और हमेशा के लिए लूप में समाहित है। यदि कथन इस प्रकार हैं: पहला एक यदि तों ब्लॉक है, जिसमें कलर सेंसिंग ब्लॉक का बूलियन पैरामीटर है, जो कहता है 'सामने की आंख हरे रंग का पता लगाती है?' और यदि कंटेनर के अंदर 90 डिग्री के लिए दाएं मुड़ें ब्लॉक है। इसके बाद वही if ब्लॉक और टर्न ब्लॉक स्टैक है, लेकिन यदि नीला रंग पाया जाता है तो इसे 90 डिग्री तक बायीं ओर मोड़ने के लिए बदल दिया गया है। इसके बाद, यदि ब्लॉक और टर्न ब्लॉक स्टैक का ही उपयोग किया जाता है, लेकिन यदि लाल रंग का पता चलता है तो इसे ड्राइविंग रोकें में बदल दिया जाता है। अंत में, यदि ब्लॉक और टर्न ब्लॉक स्टैक का ही उपयोग किया जाता है, लेकिन यदि कोई रंग नहीं पाया जाता है, तो इसे ड्राइव फॉरवर्ड में बदल दिया जाता है।

    नीचे दिया गया यह वीडियो दिखाता है कि वर्तमान प्रोजेक्ट में चार [यदि तो] ब्लॉकों के चारों ओर [हमेशा के लिए ब्लॉक] कैसे जोड़ा जाए। ध्यान दें कि [Forever] ब्लॉक का शीर्ष [When started] और पहले [If then] ब्लॉक के ठीक बाद पंक्तिबद्ध है। [Forever] ब्लॉक फिर प्रोजेक्ट स्टैक में निम्नलिखित सभी ब्लॉकों के चारों ओर लपेटता है।

  • अब जबकि [Forever] ब्लॉक को प्रोजेक्ट में जोड़ दिया गया है ताकि सभी [If then] ब्लॉकों की स्थितियों की लगातार जाँच हो सके, डिस्क मेज़ प्लेग्राउंड खोलें और प्रोजेक्ट चलाएँ।
  • जब यह परियोजना चलाई जाएगी, तो वीआर रोबोट डिस्क भूलभुलैया खेल के मैदान को शुरू से अंत तक नेविगेट करेगा। जैसे ही वीआर रोबोट लाल बत्ती का पता लगाएगा, वह गाड़ी चलाना बंद कर देगा।

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

    हमारे VEXcode VR ब्लॉक परियोजना में तर्क के प्रवाह का एक आरेख, बिना हमेशा के लिए ब्लॉक के। तीर यह संकेत देते हैं कि प्रत्येक if कथन परियोजना समाप्त होने से पहले केवल एक बार चलाया जाता है, जिससे हमारी परियोजना हमारी अपेक्षा से बहुत कम प्रतिक्रियाशील हो जाती है। हमारी परियोजना यह जांचती है कि क्या सामने वाली आंख हरे रंग को पहचानती है, और यदि ऐसा है तो वह 90 डिग्री तक दाईं ओर मुड़ जाती है। इसके बाद, यदि सामने वाली आँख नीले रंग का पता लगा लेती है तो वह 90 डिग्री तक बायीं ओर घूम जाती है। इसके बाद, यदि सामने वाली आँख लाल रंग का पता लगा लेती है तो गाड़ी चलाना बंद कर देती है। अंत में, यदि सामने वाली आंख को कुछ भी पता नहीं चलता तो वह आगे की ओर बढ़ जाती है।
  • अब जबकि [Forever] ब्लॉक जोड़ दिया गया है, [If then] C ब्लॉक की प्रत्येक स्थिति की बार-बार जाँच की जाएगी। परियोजना के प्रवाह के दौरान, यदि [यदि तो] C ब्लॉक की स्थिति सत्य है, तो [यदि तो] C ब्लॉक के अंदर के ब्लॉक निष्पादित होते हैं। यदि [यदि तो] C ब्लॉक की स्थिति गलत है, तो [यदि तो] C ब्लॉक के अंदर के ब्लॉक छोड़ दिए जाते हैं, और प्रोजेक्ट का प्रवाह स्टैक में अगले ब्लॉक तक जारी रहेगा। इससे वीआर रोबोट को एक निश्चित रंग का पता चलने पर मुड़ने या रुकने जैसे अलग-अलग व्यवहार करने में सक्षम बनाता है।

    बाईं ओर VEXcode VR ब्लॉक परियोजना के तर्क प्रवाह का एक आरेख, दाईं ओर की छवि में VR रोबोट के उदाहरण के माध्यम से चल रहा है। चित्र में वीआर रोबोट को एक नीली डिस्क तक पहुंचते और बाईं ओर मुड़ते हुए दिखाया गया है। आरेख यह दर्शाता है कि if कथन सदैव दोहराए जाते हैं, तथा प्रत्येक लूप में प्रत्येक की जाँच की जाती है। जब सामने वाली आँख हरे रंग का पता नहीं लगा पाती है, तो वह नीले रंग की जांच करती है, जो सत्य होता है और रोबोट को 90 डिग्री तक बायीं ओर घुमा देती है। इसके बाद, तर्क का प्रवाह स्टैक में नीचे की ओर जारी रहता है, तथा लाल और कुछ नहीं की जांच करता है।
  • [यदि तो] ब्लॉक का उपयोग [हमेशा] ब्लॉक के साथ किया जाता है ताकि यह सुनिश्चित किया जा सके कि शर्तों की लगातार जाँच की जाती है।

    हमारे VEXcode VR ब्लॉक परियोजना में तर्क के प्रवाह का एक आरेख जिसमें बाहरी फॉरएवर ब्लॉक भी शामिल है। प्रत्येक तीर पर अब यह अंकित है कि वह तर्क आदेश क्या माप रहा है, तथा एक पीला तीर फॉरएवर लूप में प्रत्येक ब्लॉक के माध्यम से लगातार दोहराए जाने वाले तर्क के प्रवाह को दर्शाता है। यह स्पष्ट है कि प्रत्येक if कथन को forever ब्लॉक के प्रत्येक लूप पर जांचा जाता है, चाहे परिणाम सत्य हो या असत्य।

स्विच ब्लॉक का उपयोग करना 

यह स्विच [हमेशा] ब्लॉक है। फॉरएवर के लिए स्विच पायथन कमांड एक while लूप बनाता है जहां शर्त सत्य है। लूप के भीतर निहित कमांड्स को तब हमेशा दोहराया जाएगा, क्योंकि शर्त हमेशा सत्य होती है। 

फॉरएवर ब्लॉक का एक VEXcode VR स्विच ब्लॉक संस्करण। पायथन कोड में 'while True:' लिखा है, जो कि फॉरएवर स्टेटमेंट के पायथन समकक्ष है।

प्रश्न

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

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