पाठ 2: [प्रतीक्षा करें] ब्लॉक का उपयोग करना
इस पाठ में, आप बम्पर सेंसर और [Wait until] ब्लॉक का उपयोग करके एक प्रोजेक्ट बनाएंगे। मिनी-चैलेंज में, आप दीवार भूलभुलैया की शुरुआत से अक्षर 'ए' तक नेविगेट करने के लिए इन कौशलों को लागू करेंगे।

सीखने के परिणाम
- पहचानें कि गैर-प्रतीक्षारत ब्लॉकों में स्टैक जारी रहता है, भले ही ब्लॉक का व्यवहार अभी पूरा न हुआ हो।
- पहचानें कि प्रतीक्षारत ब्लॉक स्टैक को तब तक रोक देता है जब तक कि उस ब्लॉक का व्यवहार पूरा नहीं हो जाता।
- पहचानें कि परियोजना के निष्पादन को हाइलाइट करने से प्रतीक्षारत बनाम गैर-प्रतीक्षारत ब्लॉकों का दृश्यीकरण होता है।
- पहचानें कि [Wait until] ब्लॉक एक नियंत्रण ब्लॉक है जो बूलियन मान स्वीकार करता है।
- पहचानें कि [Wait until] ब्लॉक बार-बार बूलियन स्थिति की जांच करेगा और तब तक अगले ब्लॉक पर नहीं जाएगा जब तक कि स्थिति TRUE रिपोर्ट न करे।
- पहचानें कि सेंसर की स्थिति की जांच करने के लिए [प्रतीक्षा करें] ब्लॉक का उपयोग गैर-प्रतीक्षा ब्लॉक (जैसे ड्राइव) के साथ किया जाता है।
- पहचानें कि <Pressing bumper> ब्लॉक [Wait until] ब्लॉक में TRUE या FALSE मान रिपोर्ट करता है।
- पहचानें कि कैसे [ड्राइव फॉर] और [टर्न फॉर] ब्लॉक विशेष ब्लॉक हैं जो प्रतीक्षारत या गैर-प्रतीक्षारत हो सकते हैं।
- वर्णन करें कि एक ऐसा प्रोजेक्ट कैसे बनाया जाए जिसमें बम्पर सेंसर दबाए जाने तक VR रोबोट आगे बढ़ता रहे।
प्रोजेक्ट को नाम दें और सहेजें
- VEXcode VR में एक नया प्रोजेक्ट शुरू करें और प्रोजेक्ट का नाम Unit4Lesson2रखें।

[प्रतीक्षा करें] ब्लॉक
[Wait until] ब्लॉक एक नियंत्रण ब्लॉक है जो बूलियन शर्तों को स्वीकार करता है। [प्रतीक्षा करें] ब्लॉक बार-बार बूलियन स्थिति की जांच करते हैं और परियोजना प्रवाह को नियंत्रित करते हैं। कोई प्रोजेक्ट तब तक स्टैक में अगले ब्लॉक पर नहीं जाएगा जब तक कि [Wait until] ब्लॉक में स्थिति TRUE के रूप में रिपोर्ट न हो। [प्रतीक्षा करें] ब्लॉकों का उपयोग गैर-प्रतीक्षा ब्लॉकों जैसे [ड्राइव] या [टर्न] के साथ किया जाता है।
आपकी जानकारी के लिए
गैर-प्रतीक्षारत और प्रतीक्षारत ब्लॉक यह निर्धारित करते हैं कि अगला ब्लॉक कब व्यवहार शुरू करेगा। प्रतीक्षारत ब्लॉक, जैसे [ड्राइव फॉर] और [टर्न फॉर], स्टैक में अगले ब्लॉक पर जाने से पहले अपना व्यवहार पूरा करते हैं। गैर-प्रतीक्षा ब्लॉक, जैसे [ड्राइव] और [टर्न], स्टैक में अगले ब्लॉक की ओर बढ़ना जारी रखते हैं, भले ही गैर-प्रतीक्षा ब्लॉक का व्यवहार पूरा न हुआ हो।
कुछ ब्लॉक, जैसे [ड्राइव फॉर] और [टर्न फॉर] प्रतीक्षारत या गैर-प्रतीक्षारत ब्लॉक हो सकते हैं। ब्लॉक पर तीर का चयन करने से ब्लॉक प्रतीक्षारत से गैर-प्रतीक्षारत ब्लॉक में बदल जाएगा।

स्विच ब्लॉक का उपयोग करना
स्विच नॉन-वेटिंग ब्लॉक, ब्लॉक के अंत में "wait=False" पैरामीटर जोड़ता है। "wait=False" वह पायथन कमांड है जो ब्लॉक को प्रतीक्षा न करने तथा स्टैक में अगले ब्लॉकों की ओर बढ़ना जारी रखने के लिए कहता है।

-
[ड्राइव] नॉन-वेटिंग ब्लॉक को कार्यक्षेत्र में खींचें.

-
[ड्राइव] ब्लॉक के नीचे [प्रतीक्षा करें] ब्लॉक संलग्न करें।

-
[Wait until] ब्लॉक बूलियन शर्तों को स्वीकार करता है। यह परियोजना दीवार भूलभुलैया खेल का मैदानके माध्यम से ड्राइव करने के लिए बम्पर सेंसर का उपयोग करेगी। <Pressing bumper> बूलियन ब्लॉक को [Wait until] ब्लॉक में खींचें.

-
[ड्राइविंग रोकें] ब्लॉक को खींचें और उसे प्रोजेक्ट में जोड़ें.

- यदि यह पहले से खुला नहीं है तो वॉल मेज़ प्लेग्राउंड लॉन्च करें और प्रोजेक्ट चलाएं।
- दीवार भूलभुलैया की शुरुआत से वीआर रोबोट को ड्राइव करते हुए देखें और बम्पर सेंसर को दीवार द्वारा दबाए जाने पर उसे रोकें।
-
[ड्राइव] ब्लॉक <Pressing bumper> ब्लॉक के साथ बम्पर सेंसर की स्थिति की जांच करते हुए वीआर रोबोट को आगे बढ़ने की अनुमति देता है। जब <Pressing bumper> सत्य रिपोर्ट करेगा, तो VR रोबोट स्टैक में अगले ब्लॉक पर चला जाएगा और ड्राइविंग बंद कर देगा।

आपकी जानकारी के लिए
प्रतीक्षारत बनाम गैर-प्रतीक्षारत ब्लॉकों के विज़ुअलाइज़ेशन का अनुसरण करने के लिए, VEXcode VR में कोड निष्पादन हाइलाइटिंग फ़ंक्शन देखें। इस परियोजना की शुरुआत में, शर्त पूरी होने तक [Wait until] ब्लॉक के चारों ओर हरा हाइलाइट दिखाई देगा। ऐसा इसलिए है क्योंकि [Wait until] ब्लॉक एक प्रतीक्षा ब्लॉक है। हरे रंग का हाइलाइट गैर-प्रतीक्षारत ब्लॉकों को छोड़ने के लिए दिखाई देगा क्योंकि ये कमांड शीघ्रता से निष्पादित होते हैं।

स्विच ब्लॉक का उपयोग करना
यह स्विच ब्लॉक है जिसमें <Bumper pressed>के साथ [Wait until] कमांड है
बूलियन रिपोर्टर. 
while not left_bumper.pressed():वह पायथन कमांड है जो यह जांचता है कि क्या बायां बम्पर वर्तमान में दबाया जा रहा है। wait (5, MSEC)एक पायथन कमांड है जो 5 मिलीसेकंड (MSEC) के लिए चेक के निष्पादन को रोक देता है, इसलिए प्रोजेक्ट यह जांचता है कि बाएं बम्पर को हर 5 MSEC पर दबाया गया है या नहीं। कोड की यह पंक्ति, कोड की पहली पंक्ति के नीचे इंडेंट की गई है, क्योंकि यह कमांड वह व्यवहार है जो तब तक दोहराया जाएगा जब तक कि शर्त (इस मामले में, बाएं बम्पर को दबाया गया) पूरी नहीं हो जाती। VEXcode VR में, wait कमांड हमेशा एक सशर्त लूप के साथ जोड़ा जाता है। प्रतीक्षा आदेश का उद्देश्य यह सुनिश्चित करना है कि VEXcode VR प्लेटफॉर्म की वेब-आधारित प्रकृति के कारण, VEXcode VR परियोजना को अपेक्षित रूप से ठीक से चला सके। सशर्त लूप का उपयोग करते समय wait कमांड को कभी भी नहीं हटाया जाना चाहिए, क्योंकि हो सकता है कि आपका प्रोजेक्ट अपेक्षित रूप से न चले। एक बार बाएं बम्पर को दबा दिया जाए तो रोबोट चलना बंद कर देगा।
इस पाठ के शेष भाग को जारी रखने के लिए अगला बटन का चयन करें।