Skip to main content

পাঠ ৪: [চিরকালের] ব্লক ব্যবহার করা

বারবার শর্ত পরীক্ষা করা

পূর্ববর্তী পাঠে যেমন দেখা গেছে, [যদি তারপর] ব্লকটি কেবল একবার শর্ত পরীক্ষা করে। [যদি তারপর] ব্লকগুলিতে থাকা শর্তগুলি বারবার পরীক্ষা করার জন্য, একটি [চিরকালের] C ব্লক প্রয়োজন। [Forever] ব্লকটি নিয়ন্ত্রণ বিভাগের একটি C ব্লক যা এর ভিতরে থাকা আচরণগুলি চিরতরে পুনরাবৃত্তি করে।

একটি খালি VEXcode VR Forever ব্লক।
  • পূর্ববর্তী পাঠ থেকে Unit7Lesson3 প্রকল্পটি লোড করুন।

    একই VEXcode VR শেষ পাঠের শেষ থেকে প্রকল্পটিকে ব্লক করে। এটি একটি When Started ব্লক দিয়ে শুরু হয় এবং তারপরে একটি If Then ব্লক থাকে যার একটি বুলিয়ান প্যারামিটার থাকে যা একটি কালার সেন্সিং ব্লকের সাথে লেখা থাকে যার উপর লেখা থাকে 'Front Eye detects green?' এবং If কন্টেইনারের ভিতরে 90 ডিগ্রি ব্লকের জন্য একটি ডানদিকে ঘুরুন। এরপরে যদি ব্লক এবং টার্ন ব্লক স্ট্যাক একই থাকে তবে নীল রঙ সনাক্ত করা গেলে 90 ডিগ্রির জন্য বাম দিকে ঘুরতে পরিবর্তন করা হয়। এরপর, ব্লক এবং টার্ন ব্লক স্ট্যাক ব্যবহার করা হলে একই কাজ করা হবে কিন্তু লাল রঙ সনাক্ত হলে স্টপ ড্রাইভিং এ পরিবর্তন করা হবে। সবশেষে, ব্লক এবং টার্ন ব্লক স্ট্যাক ব্যবহার করলে একই অবস্থা হবে কিন্তু যদি কোন রঙ সনাক্ত না হয় তবে ড্রাইভ ফরোয়ার্ডে পরিবর্তন করা হবে।
  • প্রকল্পটির নাম পরিবর্তন করুন Unit7Lesson4

    VEXcode VR টুলবার যেখানে 'প্রকল্পের নাম' বোতামটি লাল বাক্সে হাইলাইট করা আছে, Select Playground বোতামের বাম দিকে। প্রকল্পের নাম ইউনিট ৭ পাঠ ৪ নির্ধারণ করা হয়েছে।
  • ওয়ার্কস্পেসে একটি [ফরএভার] ব্লক টেনে আনুন এবং ব্লকের স্ট্যাকের উপরের অংশে সংযুক্ত করুন। লক্ষ্য করুন যে এটি [ফরএভার] ব্লকের ভিতরের চারটি [যদি তাহলে] ব্লক অন্তর্ভুক্ত করবে।

    VEXcode VR ব্লক প্রজেক্টটি আগের থেকে তৈরি, কিন্তু একটি তীরচিহ্ন দিয়ে নির্দেশ করা হয়েছে যে সমস্ত if স্টেটমেন্টের চারপাশে একটি Forever ব্লক যুক্ত করা হয়েছে। এটি একটি When Started ব্লক দিয়ে শুরু হয় এবং তারপরে একটি Forever ব্লকে চারটি if স্টেটমেন্টের একটি সিরিজ থাকে। প্রথমে একটি If Then ব্লক আছে যার বুলিয়ান প্যারামিটারে লেখা আছে 'Front Eye detects green?' এবং If কন্টেইনারের ভিতরে 90 ডিগ্রি ব্লকের জন্য ডানদিকে ঘুরুন। এরপরে যদি ব্লক এবং টার্ন ব্লক স্ট্যাক একই থাকে তবে নীল রঙ সনাক্ত করা গেলে 90 ডিগ্রির জন্য বাম দিকে ঘুরতে পরিবর্তন করা হয়। এরপর, ব্লক এবং টার্ন ব্লক স্ট্যাক ব্যবহার করা হলে একই কাজ করা হবে কিন্তু লাল রঙ সনাক্ত হলে স্টপ ড্রাইভিং এ পরিবর্তন করা হবে। সবশেষে, ব্লক এবং টার্ন ব্লক স্ট্যাক ব্যবহার করলে একই অবস্থা হবে কিন্তু যদি কোন রঙ সনাক্ত না হয় তবে ড্রাইভ ফরোয়ার্ডে পরিবর্তন করা হবে।

    আপনার তথ্যের জন্য

    ব্লকগুলিকে প্রকল্পের স্ট্যাকের শুরুতে বা মাঝখানে যুক্ত করা যেতে পারে ব্লকের উপরের অংশে সারিবদ্ধ করে, স্ট্যাকের মধ্যে পছন্দসই বসানো।

    একটি ফরএভার ব্লককে কীভাবে স্ট্যাকের উপরে টেনে আনা যায় এবং স্বয়ংক্রিয়ভাবে স্ট্যাকের বিষয়বস্তুর চারপাশে মোড়ানো যায় তার একটি ভিজ্যুয়ালাইজেশন। VEXcode VR ব্লক প্রকল্পটি আগের মতোই এবং একটি চিরস্থায়ী লুপের মধ্যে রয়েছে। if স্টেটমেন্টগুলো নিম্নরূপ: প্রথমটি হল একটি If Then ব্লক যার একটি বুলিয়ান প্যারামিটার রয়েছে যার রঙ সেন্সিং ব্লকের 'ফ্রন্ট আই সবুজ সনাক্ত করে?' লেখা আছে এবং If কন্টেইনারের ভিতরে 90 ডিগ্রি ব্লকের জন্য ডানদিকে ঘুরুন। এরপরে যদি ব্লক এবং টার্ন ব্লক স্ট্যাক একই থাকে তবে নীল রঙ সনাক্ত করা গেলে 90 ডিগ্রির জন্য বাম দিকে ঘুরতে পরিবর্তন করা হয়। এরপর, ব্লক এবং টার্ন ব্লক স্ট্যাক ব্যবহার করা হলে একই কাজ করা হবে কিন্তু লাল রঙ সনাক্ত হলে স্টপ ড্রাইভিং এ পরিবর্তন করা হবে। সবশেষে, ব্লক এবং টার্ন ব্লক স্ট্যাক ব্যবহার করলে একই অবস্থা হবে কিন্তু যদি কোন রঙ সনাক্ত না হয় তবে ড্রাইভ ফরোয়ার্ডে পরিবর্তন করা হবে।

    নিচের এই ভিডিওটিতে দেখানো হয়েছে কিভাবে বর্তমান প্রকল্পের চারটি [যদি তারপর] ব্লকের চারপাশে [Forever ব্লক] যোগ করতে হয়। লক্ষ্য করুন যে [ফরএভার] ব্লকের উপরের অংশটি [যখন শুরু হয়েছে] এবং প্রথম [যদি তারপর] ব্লকের ঠিক পরে লাইন করা হয়েছে। [ফরএভার] ব্লক তারপর প্রজেক্ট স্ট্যাকের নিচের সমস্ত ব্লকের চারপাশে মোড়ানো হয়।

  • এখন যেহেতু [ফরএভার] ব্লকটি প্রজেক্টে যোগ করা হয়েছে যাতে সমস্ত [যদি তাহলে] ব্লকের অবস্থা ক্রমাগত পরীক্ষা করা হয়, ডিস্ক মেজ প্লেগ্রাউন্ড খুলুন এবং প্রকল্পটি চালান।
  • এই প্রকল্পটি চালানো হলে, VR রোবট ডিস্ক মেজ প্লেগ্রাউন্ড শুরু থেকে শেষ পর্যন্ত নেভিগেট করবে। একবার VR রোবট লাল শনাক্ত করলে, এটি গাড়ি চালানো বন্ধ করে দেবে।

    ভিআর ডিস্ক মেজ খেলার মাঠের উপর থেকে নীচের দৃশ্য, যেখানে ভিআর রোবটটি প্রতিটি ডিস্ক অতিক্রম করে শেষ লাল ডিস্কে বিশ্রাম নিচ্ছে।
  • পূর্ববর্তী পাঠের প্রকল্পে, [যদি তাহলে] ব্লকের শর্তগুলি শুধুমাত্র একবার পরীক্ষা করা হয়েছিল। যেহেতু [যদি তাহলে] ব্লকগুলির মধ্যে শর্তগুলি শুধুমাত্র একবার পরীক্ষা করা হয়েছিল, তাই ভিআর রোবটটি চিরতরে এগিয়ে চলেছিল কারণ কোনও রঙ সনাক্ত না হওয়ার শর্তটি সত্য হিসাবে রিপোর্ট করা হয়েছিল।

    আমাদের VEXcode VR ব্লক প্রকল্পে ফরএভার ব্লক ছাড়াই যুক্তির প্রবাহের একটি চিত্র। তীরচিহ্নগুলি নির্দেশ করে যে প্রতিটি if স্টেটমেন্ট প্রকল্প শেষ হওয়ার আগে কেবল একবার চালানো হয়, ফলে আমাদের প্রকল্পটি আমাদের প্রত্যাশার চেয়ে অনেক কম প্রতিক্রিয়াশীল হয়ে ওঠে। আমাদের প্রকল্পটি পরীক্ষা করে যে সামনের চোখটি সবুজ রঙ সনাক্ত করে কিনা, এবং যদি তাই হয় তবে এটি 90 ডিগ্রির জন্য ডানদিকে ঘোরে। এরপর, যদি সামনের চোখ নীল রঙ শনাক্ত করে তবে এটি ৯০ ডিগ্রি বাম দিকে ঘুরবে। এরপর, যদি সামনের চোখ লাল দেখায় তবে এটি গাড়ি চালানো বন্ধ করে দেয়। সবশেষে, যদি সামনের চোখ কিছুই সনাক্ত না করে তবে এটি সামনের দিকে এগিয়ে যায়।
  • এখন যেহেতু [ফরএভার] ব্লক যোগ করা হয়েছে, [যদি তাহলে] সি ব্লকের প্রতিটি অবস্থা বারবার চেক করা হবে। প্রকল্পের প্রবাহের সময়, যদি [যদি তাহলে] সি ব্লকের অবস্থা সত্য হয়, তবে [যদি তাহলে] সি ব্লকের ভিতরের ব্লকগুলি কার্যকর করা হয়। যদি [যদি তারপর] সি ব্লকের অবস্থা মিথ্যা হয়, তবে [যদি তারপর] সি ব্লকের ভিতরের ব্লকগুলি বাদ দেওয়া হয়, এবং প্রকল্পের প্রবাহ স্ট্যাকের পরবর্তী ব্লকে চলতে থাকবে। এটি VR রোবটকে একটি নির্দিষ্ট রঙ শনাক্ত করার পর বাঁক বা থামানোর মতো বিচ্ছিন্ন আচরণ করতে সক্ষম করে।

    বাম দিকে VEXcode VR ব্লক প্রকল্পের যুক্তি প্রবাহের একটি চিত্র ডানদিকের ছবিতে VR রোবটের একটি উদাহরণের মধ্য দিয়ে চলছে। ছবিতে দেখা যাচ্ছে ভিআর রোবটটি একটি নীল ডিস্কে পৌঁছে বাম দিকে ঘুরছে। চিত্রটি নির্দেশ করে যে if বিবৃতিগুলি চিরকাল পুনরাবৃত্তি হয় এবং প্রতিটি লুপে প্রতিটি পরীক্ষা করা হয়। সামনের চোখ সবুজ না শনাক্ত করার পর, এটি নীল রঙের জন্য পরীক্ষা করে যা সত্য ফেরত দেয় এবং রোবটটিকে 90 ডিগ্রি বাম দিকে ঘুরিয়ে দেয়। এরপর, যুক্তির প্রবাহ স্ট্যাকের নিচে চলতে থাকে, লাল এবং কিছুই নেই কিনা তা পরীক্ষা করে।
  • [তাহলে] ব্লকগুলি [চিরকাল] ব্লকগুলির সাথে ব্যবহার করা হয় যাতে শর্তগুলি ক্রমাগত পরীক্ষা করা হয়।

    আমাদের VEXcode VR ব্লক প্রকল্পে লজিকের প্রবাহের একটি চিত্র, যার মধ্যে বাইরের ফরএভার ব্লকটি অন্তর্ভুক্ত রয়েছে। প্রতিটি তীর এখন লজিক কমান্ড কী পরিমাপ করছে তা দিয়ে লেবেল করা হয়েছে, এবং একটি হলুদ তীর ফরএভার লুপের প্রতিটি ব্লকের মধ্য দিয়ে ক্রমাগত লজিকের পুনরাবৃত্তির প্রবাহ দেখায়। এটা স্পষ্ট যে, forever ব্লকের প্রতিটি লুপে প্রতিটি if স্টেটমেন্ট চেক করা হয়, ফলাফল সত্য বা মিথ্যা যাই হোক না কেন।

সুইচ ব্লক ব্যবহার করা 

এটি হল [Forever] সুইচ ব্লক। Forever এর জন্য Switch Python কমান্ডটি একটি while লুপ তৈরি করে যেখানে শর্তটি True। লুপের মধ্যে নেস্টেড কমান্ডগুলি যখন তখন চিরতরে পুনরাবৃত্তি হয়, কারণ শর্তটি সর্বদা সত্য। 

ফরএভার ব্লকের একটি ভেক্সকোড ভিআর সুইচ ব্লক সংস্করণ। পাইথন কোডটি 'while True:' পড়ে, যা একটি চিরস্থায়ী বিবৃতির পাইথন সমতুল্য।

প্রশ্ন

পাঠ কুইজ অ্যাক্সেস করতে নীচের একটি লিঙ্ক নির্বাচন করুন.

গুগল ডক / .ডকএক্স / .পিডিএফ