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

पाठ 4: [फॉरएवर] ब्लॉक का उपयोग करना

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

प्रश्न

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

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