নিয়ন্ত্রণ#

ভূমিকা#

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

প্যারামিটার

বর্ণনা

সময়

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

উদাহরণ

চালু হলে, এটি এক সেকেন্ডের জন্য সামনে এগোয়, তারপর সব নড়াচড়া থেমে যায়।#
শুরু হলে
[Move to the left, then the right after one second.]
[arm v]-এর অবস্থান x:[100] y:[0] z:[0] [mm v] বৃদ্ধি করো ▶
(1) সেকেন্ড অপেক্ষা করো
[arm v]-এর অবস্থান x:[-100] y:[0] z:[0] [mm v] বৃদ্ধি করো ▶

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

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

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

প্যারামিটার

বর্ণনা

অবস্থা

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

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

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

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

প্যারামিটার

বর্ণনা

সময়

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

উদাহরণ

শুরু হলে
[Move in a square pattern.]
[4] বার পুনরাবৃত্তি করো
[arm v]-এর অবস্থান x:[2] y:[0] z:[0] [ইঞ্চি v] বৃদ্ধি করো ▶
[arm v]-এর অবস্থান x:[0] y:[2] z:[0] [ইঞ্চি v] বৃদ্ধি করো ▶
[arm v]-এর অবস্থান x:[-2] y:[0] z:[0] [ইঞ্চি v] বৃদ্ধি করো ▶
[arm v]-এর অবস্থান x:[0] y:[2] z:[0] [ইঞ্চি v] বৃদ্ধি করো ▶
अंत

চিরকাল#

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

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

প্যারামিটার

বর্ণনা

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

উদাহরণ

চালু করলে, এটি একটি অসীম চক্রের মধ্যে ৫০ মিমি সামনে এগিয়ে এবং ৯০ ডিগ্রি ডানে ঘুরে একটি বর্গাকার পথে অবিরাম চলতে থাকে।#
শুরু হলে
[Move in a square path forever.]
চিরকাল
[arm v]-এর অবস্থান x:[2] y:[0] z:[0] [ইঞ্চি v] বৃদ্ধি করো ▶
[arm v]-এর অবস্থান x:[0] y:[2] z:[0] [ইঞ্চি v] বৃদ্ধি করো ▶
[arm v]-এর অবস্থান x:[-2] y:[0] z:[0] [ইঞ্চি v] বৃদ্ধি করো ▶
[arm v]-এর অবস্থান x:[0] y:[2] z:[0] [ইঞ্চি v] বৃদ্ধি করো ▶
अंत

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

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

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

প্যারামিটার

বর্ণনা

অবস্থা

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

উদাহরণ

চালু করলে, স্ক্রিনে চাপ না দেওয়া পর্যন্ত সব এলইডি লাল থাকে, তারপর সেগুলো বন্ধ করে দেয়।#
শুরু হলে
[Increment along the x-axis until it's no longer possible.]
<না <[arm v] x:[100] y:[0] z:[0] [mm v] দ্বারা অবস্থান বৃদ্ধি করতে পারবে?>> না হওয়া পর্যন্ত পুনরাবৃত্তি করো
[arm v]-এর অবস্থান x:[100] y:[0] z:[0] [mm v] বৃদ্ধি করো ▶
अंत
[arm v]-এর নিয়ন্ত্রণ বন্ধ সেট করো

যখন#

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

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

প্যারামিটার

বর্ণনা

অবস্থা

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

উদাহরণ

ব্লকের একটি স্ট্যাক যা একটি ‘when started’ ব্লক দিয়ে শুরু হয়, যার পরে একটি কমেন্ট ব্লক থাকে যেখানে লেখা থাকে ‘২ সেকেন্ড অতিবাহিত হওয়ার পর সময় প্রদর্শন করুন’। একটি ‘wait until’ ব্লক টাইমার দুই সেকেন্ডে না পৌঁছানো পর্যন্ত বা তা অতিক্রম না করা পর্যন্ত কার্যক্রমের গতি থামিয়ে রাখে। এই শর্তটি পূরণ হলে, একটি ‘print’ ব্লক স্ক্রিনে টাইমারের মান প্রদর্শন করে।#
শুরু হলে
[Display the 6-Axis Arm's position as it moves.]
[arm v]-কে x:(-100) y:(200) z:(100) [mm v] অবস্থানে নিয়ে যাও ◀ এবং অপেক্ষা করো না
যখন <না <[arm v] সরানো সম্পন্ন?>>
কনসোলে ([mm v]-এ [arm v]-এর [y v] অবস্থান) প্রিন্ট করো ◀ এবং কার্সার পরের সারিতে নিয়ে যাও
[0.25] সেকেন্ড অপেক্ষা করো

যদি#

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

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

প্যারামিটার

বর্ণনা

অবস্থা

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

উদাহরণ

শুরু হলে
[Check if the 6-Axis Arm can move to a position.]
যদি <না <[arm v] x:[0] y:[0] z:[0] [mm v] অবস্থানে যেতে পারবে?>> তাহলে
[The 6-Axis Arm can't move to this position.] প্রিন্ট করো ◀ এবং কার্সার পরের সারিতে নিয়ে যাও

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

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

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

প্যারামিটার

বর্ণনা

অবস্থা

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

উদাহরণ

শুরু হলে
[Check if the 6-Axis Arm can or can't move to a position.]
যদি <না <[arm v] x:[100] y:[100] z:[100] [mm v] অবস্থানে যেতে পারবে?>> তাহলে
কনসোলে [The 6-Axis Arm can't move to this position.] প্রিন্ট করো ◀ এবং কার্সার পরের সারিতে নিয়ে যাও
অন্যথায়
কনসোলে [The 6-Axis Arm can move to this position.] প্রিন্ট করো ◀ এবং কার্সার পরের সারিতে নিয়ে যাও

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

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

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

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

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

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

প্যারামিটার

বর্ণনা

অবস্থা

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

উদাহরণ

শুরু হলে
[Move until the 6-Axis Arm is at the corner of the tile.]
যদি <[arm v] x:[50] y:[0] z:[0] [mm v] দ্বারা অবস্থান বৃদ্ধি করতে পারবে?> তাহলে
[arm v]-এর অবস্থান x:[50] y:[0] z:[0] [mm v] বৃদ্ধি করো ▶
অন্যথায় যদি <[arm v] x:[0] y:[50] z:[0] [mm v] দ্বারা অবস্থান বৃদ্ধি করতে পারবে?> তাহলে
[arm v]-এর অবস্থান x:[0] y:[50] z:[0] [mm v] বৃদ্ধি করো ▶
অন্যথায়
কনসোলে [The 6-Axis Arm has reached the corner.] প্রিন্ট করো ◀ এবং কার্সার পরের সারিতে নিয়ে যাও

বিরতি#

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

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

প্যারামিটার

বর্ণনা

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

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

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

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

প্যারামিটার

বর্ণনা

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