নিয়ন্ত্রণ#

ভূমিকা#

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

প্যারামিটার

বর্ণনা

সময়

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

উদাহরণ

শুরু হলে :: hat events
[Drive forward then stop.]
[সামনে v] দিকে চালাও
(2) সেকেন্ড অপেক্ষা করো
চালানো বন্ধ করো

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

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

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

প্যারামিটার

বর্ণনা

অবস্থা

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

উদাহরণ

শুরু হলে :: hat events
[Drive forward when the sound button is pressed.]
<[soundIcon v] চাপা হয়েছে?> না হওয়া পর্যন্ত অপেক্ষা করো
[সামনে v] দিকে [200] [mm v] চালাও

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

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

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

প্যারামিটার

বর্ণনা

সময়

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

উদাহরণ

শুরু হলে :: hat events
[Drive in a square pattern.]
[4] বার পুনরাবৃত্তি করো
[সামনে v] দিকে [200] [mm v] চালাও
[ডান v] দিকে [90] ডিগ্রি ঘোরো

চিরকাল#

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

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

প্যারামিটার

বর্ণনা

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

উদাহরণ

শুরু হলে :: hat events
[Blink LED light in a pattern.]
চিরকাল
[সবুজ v] দিয়ে আলো জ্বালাও
[0.5] সেকেন্ড অপেক্ষা করো
[বন্ধ v] দিয়ে আলো জ্বালাও
[0.5] সেকেন্ড অপেক্ষা করো

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

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

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

প্যারামিটার

বর্ণনা

অবস্থা

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

উদাহরণ

শুরু হলে :: hat events
[Blink LED light until the sound button is pressed.]
<[soundIcon v] চাপা হয়েছে?> না হওয়া পর্যন্ত পুনরাবৃত্তি করো
[সবুজ v] দিয়ে আলো জ্বালাও
[0.5] সেকেন্ড অপেক্ষা করো
[বন্ধ v] দিয়ে আলো জ্বালাও
[0.5] সেকেন্ড অপেক্ষা করো

যখন#

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

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

প্যারামিটার

বর্ণনা

অবস্থা

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

উদাহরণ

শুরু হলে :: hat events
[Turn the robot around.]
যখন <(ডিগ্রিতে চালানোর দিকনির্দেশ) [math_less_than v] [180]>
[ডান v] দিকে ঘোরো
अंत
চালানো বন্ধ করো

যদি#

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

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

প্যারামিটার

বর্ণনা

অবস্থা

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

উদাহরণ

শুরু হলে :: hat events
[Drive forward whenever the sound button is pressed.]
চিরকাল
যদি <[soundIcon v] চাপা হয়েছে?> তাহলে
[সামনে v] দিকে [200] [mm v] চালাও

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

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

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

প্যারামিটার

বর্ণনা

অবস্থা

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

উদাহরণ

শুরু হলে :: hat events
[Drive forward until a crash.]
চিরকাল
যদি <সংঘর্ষ শনাক্ত হয়েছে?> তাহলে
চালানো বন্ধ করো
অন্যথায়
[সামনে v] দিকে [200] [mm v] চালাও

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

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

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

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

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

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

প্যারামিটার

বর্ণনা

অবস্থা

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

উদাহরণ

শুরু হলে :: hat events
[Turn right for the right button, left for the left button.]
চিরকাল
যদি <[ifbuttonright v] চাপা হয়েছে?> তাহলে
[ডান v] দিকে ঘোরো
অন্যথায় যদি <[ifbuttonleft v] চাপা হয়েছে?> তাহলে
[বাম v] দিকে ঘোরো
অন্যথায়
চালানো বন্ধ করো

বিরতি#

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

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

প্যারামিটার

বর্ণনা

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

উদাহরণ

শুরু হলে :: hat events
[Flash the LED until the sound button is pressed.]
চিরকাল
[সবুজ v] দিয়ে আলো জ্বালাও
[0.5] সেকেন্ড অপেক্ষা করো
[নীল v] দিয়ে আলো জ্বালাও
[0.5] সেকেন্ড অপেক্ষা করো
যদি <[soundIcon v] চাপা হয়েছে?> তাহলে
বিরতি দাও

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

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

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

প্যারামিটার

বর্ণনা

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

উদাহরণ

শুরু হলে :: hat events
[Stop the project after a crash.]
চিরকাল
[সামনে v] দিকে চালাও
যদি <সংঘর্ষ শনাক্ত হয়েছে?> তাহলে
প্রকল্প বন্ধ করো