নিয়ন্ত্রণ#

ভূমিকা#

VEXcode IQ (২য় জেনারেশন)-এর কন্ট্রোল ব্লকগুলো লুপ ও কন্ডিশন পরিচালনা করে এবং ব্লকগুলোর রান হওয়া বিলম্বিত করে একটি প্রোজেক্টের প্রবাহ নিয়ন্ত্রণ করে।

লুপ হলো এমন একটি প্রক্রিয়া যেখানে একটি কম্পিউটার একই ধাপ বা একাধিক ধাপ বারবার পুনরাবৃত্তি করতে থাকে যতক্ষণ না তাকে থামতে বলা হয়। কন্ডিশন হলো একটি নিয়ম যা কম্পিউটার পরবর্তী পদক্ষেপ কী হবে তা নির্ধারণ করার জন্য যাচাই করে। উদাহরণস্বরূপ, একটি সেন্সর কোনো বস্তু শনাক্ত করলে একটি রোবট সামনে এগোতে পারে।

নিচে উপলব্ধ ব্লকগুলোর একটি তালিকা দেওয়া হলো:

  • অপেক্ষা – একটি নির্দিষ্ট সময়ের জন্য ব্লকগুলির চলা থামিয়ে দেয়।

  • অপেক্ষা করুন – একটি নির্দিষ্ট শর্ত পূরণ না হওয়া পর্যন্ত ব্লকগুলির চলা থামিয়ে রাখে।

  • পুনরাবৃত্তি – এক সেট ব্লককে নির্দিষ্ট সংখ্যক বার পুনরাবৃত্তি করে।

  • চিরকাল – এক সেট ব্লক অনির্দিষ্টকালের জন্য পুনরাবৃত্তি করে।

  • repeat until – একটি শর্ত পূরণ না হওয়া পর্যন্ত ব্লকগুলির একটি সেট পুনরাবৃত্তি করে।

  • while – একটি শর্ত সত্য থাকা পর্যন্ত একগুচ্ছ ব্লকের পুনরাবৃত্তি করে।

  • if – কোনো শর্ত সত্য হলে একগুচ্ছ ব্লক চালায়।

  • if / else – শর্ত সত্য হলে এক সেট ব্লক চলে, অন্যথায় অন্য সেট চলে।

  • if / else if / else – একাধিক শর্তের উপর নির্ভর করে বিভিন্ন ব্লক সেট চালায়।

  • break – একটি repeat, forever, repeat until, অথবা while লুপ থেকে অবিলম্বে বেরিয়ে যায়।

  • প্রকল্প বন্ধ করুন – প্রকল্পটি শেষ করে।

অপেক্ষা করুন#

wait স্ট্যাক ব্লকটি পরবর্তী ব্লকে যাওয়ার আগে একটি নির্দিষ্ট সময়ের জন্য ব্লকগুলোর চলমান গতি থামিয়ে দেয়।

অপেক্ষা করুন স্ট্যাক ব্লক#
(1) সেকেন্ড অপেক্ষা করো

প্যারামিটার

বর্ণনা

সময়

অপেক্ষা করার সময়, যা সেকেন্ডে একটি ধনাত্মক পূর্ণ সংখ্যা বা দশমিক সংখ্যা হিসাবে প্রকাশ করতে হবে।

উদাহরণ

চালু হলে, এটি এক সেকেন্ডের জন্য সামনে এগোয়, তারপর সব নড়াচড়া থেমে যায়।#
শুরু হলে
[Move forward for one second, then stop.]
[সামনে v] দিকে চালাও
(1) সেকেন্ড অপেক্ষা করো
চালানো বন্ধ করো

অপেক্ষা করুন যতক্ষণ না#

wait until স্ট্যাক ব্লকটি একটি নির্দিষ্ট শর্ত পূরণ না হওয়া পর্যন্ত ব্লকগুলোর চলমান প্রক্রিয়াকে থামিয়ে রাখে এবং এরপর পরবর্তী ব্লকে যায়।

স্ট্যাক ব্লক পর্যন্ত অপেক্ষা করুন#
<> না হওয়া পর্যন্ত অপেক্ষা করো

প্যারামিটার

বর্ণনা

অবস্থা

পরবর্তী ব্লকে যাওয়ার আগে যে শর্তটি অবশ্যই পূরণ করতে হবে।

উদাহরণ

চালু হলে, ব্রেইন চেক বাটনটি চাপ না দেওয়া পর্যন্ত এটি সামনে এগোতে থাকে, তারপর সমস্ত নড়াচড়া থেমে যায়।#
শুরু হলে
[Move forward until a button is pressed, then stop.]
[সামনে v] দিকে চালাও
<Brain [চেক v] বোতাম চাপা হয়েছে?> না হওয়া পর্যন্ত অপেক্ষা করো
চালানো বন্ধ করো

পুনরাবৃত্তি#

রিপিট সি ব্লকটি এর ভেতরের ব্লকগুলোকে একটি নির্দিষ্ট সংখ্যক বার চালায়।

সি ব্লক পুনরাবৃত্তি করুন#
[10] বার পুনরাবৃত্তি করো
अंत

প্যারামিটার

বর্ণনা

সময়

একটি পূর্ণ সংখ্যা যা নির্ধারণ করে রিপিট ব্লকটি কতবার চলবে।

উদাহরণ

শুরু হলে
[Move in a square path.]
[4] বার পুনরাবৃত্তি করো
[সামনে v] দিকে [150] [mm v] চালাও ▶
[ডান v] দিকে [90] ডিগ্রি ঘোরো ▶
अंत

চিরকাল#

ফরেভার সি ব্লকটি তার ভেতরের ব্লকগুলোকে অবিরাম বারবার চালাতে থাকে।

চিরকাল সি ব্লক#
চিরকাল
अंत

প্যারামিটার

বর্ণনা

এই ব্লকটির কোনো প্যারামিটার নেই।

উদাহরণ

চালু করলে, এটি একটি অসীম চক্রের মধ্যে ৫০ মিমি সামনে এগিয়ে এবং ৯০ ডিগ্রি ডানে ঘুরে একটি বর্গাকার পথে অবিরাম চলতে থাকে।#
শুরু হলে
[Move in a square path forever.]
চিরকাল
[সামনে v] দিকে [150] [mm v] চালাও ▶
[ডান v] দিকে [90] ডিগ্রি ঘোরো ▶
अंत

পুনরাবৃত্তি করুন যতক্ষণ না#

repeat until C ব্লকটি নির্দিষ্ট শর্ত পূরণ না হওয়া পর্যন্ত এর ভেতরের ব্লকগুলোকে বারবার চালায়।

ব্লক না হওয়া পর্যন্ত পুনরাবৃত্তি করুন#
<> না হওয়া পর্যন্ত পুনরাবৃত্তি করো
अंत

প্যারামিটার

বর্ণনা

অবস্থা

একটি এক্সপ্রেশন বা ভেরিয়েবল যা প্রতিটি লুপের আগে যাচাই করা হয়। যদি এটি False হয়, তাহলে ব্লকগুলো পুনরাবৃত্তি হতে থাকে। যদি এটি True হয়, তাহলে লুপটি থেমে যাবে।

উদাহরণ

চালু করলে, ব্রেইন চেক বাটনটি চাপ না দেওয়া পর্যন্ত সাইরেন বাজে, তারপর পাওয়ার বন্ধ হওয়ার শব্দ বাজে।#
শুরু হলে
[Play a sound until a button is pressed.]
<Brain [চেক v] বোতাম চাপা হয়েছে?> না হওয়া পর্যন্ত পুনরাবৃত্তি করো
[সাইরেন v] শব্দ বাজাও
(0.5) সেকেন্ড অপেক্ষা করো
अंत
(0.5) সেকেন্ড অপেক্ষা করো
[পাওয়ার ডাউন v] শব্দ বাজাও

যখন#

while C ব্লকটি নির্দিষ্ট শর্ত পূরণ হওয়া পর্যন্ত এর ভেতরের ব্লকগুলোকে বারবার চালায়।

সি ব্লক চলাকালীন#
যখন <>
अंत

প্যারামিটার

বর্ণনা

অবস্থা

একটি এক্সপ্রেশন বা ভেরিয়েবল যা প্রতিটি লুপের আগে যাচাই করা হয়। যদি এটি True হয়, তাহলে ব্লকগুলো পুনরাবৃত্তি হতে থাকে। যদি এটি False হয়, তাহলে লুপটি থেমে যাবে।

উদাহরণ

চালু করলে, ড্রাইভট্রেন চলার সময় একটি অ্যালার্ম বাজে।#
শুরু হলে
[Play an alarm while the robot is moving.]
[সামনে v] দিকে [300] [mm v] চালাও ◀ এবং অপেক্ষা করো না
যখন <চালানো চলছে?>
[অ্যালার্ম v] শব্দ বাজাও
(0.3) সেকেন্ড অপেক্ষা করো
अंत

যদি#

C-এর if ব্লকটি শর্তটি সত্য হলে ভেতরের ব্লকগুলোকে চালায়।

যদি ব্লক#
যদি <> তাহলে
अंत

প্যারামিটার

বর্ণনা

অবস্থা

একটি এক্সপ্রেশন বা ভেরিয়েবল যা স্টেটমেন্টটি চলার সময় যাচাই করা হয়। যদি এটি True হয়, তাহলে if ব্লকের ভেতরের ব্লকগুলো চলবে। যদি এটি False হয়, তাহলে ব্লকগুলো এড়িয়ে যাওয়া হয়।

উদাহরণ

চালু হলে, ব্রেইন চেক বাটনটি চাপা হয়েছে কিনা তা ক্রমাগত পরীক্ষা করে। চাপা হলে, রোবটটি ডানদিকে ঘোরে।#
শুরু হলে
[Turn in a circle if a button is pressed.]
চিরকাল
যদি <Brain [চেক v] বোতাম চাপা হয়েছে?> তাহলে
[ডান v] দিকে (360) ডিগ্রি ঘোরো ▶
अंत
চালানো বন্ধ করো
अंत

যদি / অন্যথায়#

C-এর if / else ব্লকটি শর্তটি True বা False হওয়ার উপর ভিত্তি করে কোন ব্লক সেটটি চলবে তা নির্ধারণ করে।

যদি তাহলে অন্যথায় ব্লক#
যদি <> তাহলে
অন্যথায়
अंत

প্যারামিটার

বর্ণনা

অবস্থা

একটি এক্সপ্রেশন বা ভেরিয়েবল যা স্টেটমেন্টটি চলার সময় যাচাই করা হয়। যদি এটি True হয়, তাহলে if ব্লকের ভেতরের অংশগুলো চলবে। আর যদি এটি False হয়, তাহলে else ব্লকের ভেতরের অংশগুলো চলবে।

উদাহরণ

চালু করা হলে, ব্রেইন চেক বাটন চাপলে এটি বারবার ডানদিকে ঘোরে; অন্যথায়, এটি সাইরেন বাজায়।#
শুরু হলে
[Repeatedly play a sound if a button is not pressed.]
চিরকাল
যদি <Brain [চেক v] বোতাম চাপা হয়েছে?> তাহলে
[ডান v] দিকে (360) ডিগ্রি ঘোরো ▶
অন্যথায়
[সাইরেন v] শব্দ বাজাও
(0.5) সেকেন্ড অপেক্ষা করো
अंत

যদি / অন্যথায় যদি / অন্যথায়#

if / else if / else এক্সপ্যান্ডেবল C ব্লকটি শর্তের উপর ভিত্তি করে কোন ব্লক সেটটি চলবে তা নির্বাচন করে:

  • শর্তটি সত্য প্রমাণিত হলে if তার কোড ব্লকটি চালায়।

  • else if শুধুমাত্র তখনই অতিরিক্ত শর্তগুলো যাচাই করে, যখন পূর্ববর্তী সমস্ত শর্ত False হিসেবে প্রমাণিত হয়। একাধিক else if স্টেটমেন্ট ব্যবহার করা যেতে পারে।

  • পূর্ববর্তী কোনো শর্তই সত্য না হলে, else তার কোড ব্লকটি কেবল তখনই চালায়।

if else if else ব্লক#
যদি <> তাহলে
অন্যথায় যদি <> তাহলে
অন্যথায়
अंत

প্যারামিটার

বর্ণনা

অবস্থা

একটি এক্সপ্রেশন বা ভেরিয়েবল যা স্টেটমেন্টটি চলার সময় যাচাই করা হয়। প্রথম যে শর্তটি সত্য হয়, সেটি ওই ব্লক সেটটি চালায়। যদি সমস্ত শর্ত মিথ্যা প্রমাণিত হয়, তবে else ব্লকের ভেতরের ব্লকগুলো চলবে।

উদাহরণ

চালু হলে, ব্রেইন রাইট বাটন চাপলে ডানদিকে ঘোরে, ব্রেইন লেফট বাটন চাপলে বামদিকে ঘোরে এবং অন্যথায় থেমে যায়।#
শুরু হলে
[Turn right if the right button on the brain is pressed, left if the left is pressed, and stop if anything else is pressed.]
চিরকাল
যদি <Brain [Right v] বোতাম চাপা হয়েছে?> তাহলে
[ডান v] দিকে (90) ডিগ্রি ঘোরো ▶
অন্যথায় যদি <Brain [Left v] বোতাম চাপা হয়েছে?> তাহলে
[বাম v] দিকে (90) ডিগ্রি ঘোরো ▶
অন্যথায়
চালানো বন্ধ করো
अंत
अंत

বিরতি#

break স্ট্যাক ব্লক একটি লুপ থেকে অবিলম্বে বেরিয়ে যায়। এই ব্লকটি repeat, repeat until, while, এবং forever ব্লকের ভিতরে ব্যবহার করা যেতে পারে। যখন প্রোজেক্ট চলাকালীন কোনো ঘটনার কারণে, যেমন একটি বোতাম চাপা হলে বা একটি সেন্সর কোনো বস্তু শনাক্ত করলে, লুপটিকে সময়ের আগেই থামাতে হয়, তখন Break ব্লকটি কার্যকর।

স্ট্যাক ব্লক ভাঙুন#
বিরতি দাও

প্যারামিটার

বর্ণনা

এই ব্লকটির কোনো প্যারামিটার নেই।

উদাহরণ

চালু করলে, ব্রেইন চেক বাটনটি চাপ না দেওয়া পর্যন্ত এটি ঘুরতে থাকে, তারপর চালনা থামিয়ে দেয় এবং পাওয়ার ডাউন সাউন্ড বাজায়।#
শুরু হলে
[Stop turning after a button is pressed.]
চিরকাল
[ডান v] দিকে ঘোরো
যদি <Brain [চেক v] বোতাম চাপা হয়েছে?> তাহলে
বিরতি দাও
अंत
अंत
চালানো বন্ধ করো
[পাওয়ার ডাউন v] শব্দ বাজাও

প্রকল্পটি বন্ধ করুন#

stop project স্ট্যাক ব্লকটি একটি চলমান প্রজেক্ট বন্ধ করে দেয়।

প্রজেক্ট ব্লক বন্ধ করুন#
প্রকল্প বন্ধ করো

প্যারামিটার

বর্ণনা

এই ব্লকটির কোনো প্যারামিটার নেই।

উদাহরণ

চালু করা হলে, ব্রেইন চেক বাটনটি চাপ না দেওয়া পর্যন্ত এটি চলতে থাকে, তারপর প্রজেক্টটি থামিয়ে দেয়।#
শুরু হলে
[Stop the project entirely after a button is pressed.]
চিরকাল
[ডান v] দিকে ঘোরো
যদি <Brain [চেক v] বোতাম চাপা হয়েছে?> তাহলে
প্রকল্প বন্ধ করো
अंत
अंत
[পাওয়ার ডাউন v] শব্দ বাজাও