সুইচ#

ভূমিকা#

সুইচ ব্লক শিক্ষার্থীদের ব্লক-ভিত্তিক কোডিং থেকে টেক্সট-ভিত্তিক কোডিং-এ যেতে সাহায্য করে। সুইচ ব্লকের সাহায্যে, শিক্ষার্থীরা একটি ব্লকস প্রোজেক্টের ভেতরে সরাসরি পাইথন কোড টাইপ করতে পারে—যেমন কমান্ড, কন্ডিশন, ভ্যালু বা ফাংশন ডেফিনিশন লেখা—এবং একই সাথে প্রোজেক্টের বাকি অংশও ব্লক ব্যবহার করে তৈরি করতে পারে। এছাড়াও, প্রতিটি ব্লককে তার সমতুল্য পাইথন কমান্ডে রূপান্তর করা যায়।

পাইথন কমান্ড, মেথড এবং অপারেটর কীভাবে টাইপ করতে হয় তা জানতে, VEXcode AIR Python API দেখুন।

যেহেতু সুইচ ব্লকে পাইথন কোড থাকে, তাই প্রজেক্টটি প্রত্যাশিতভাবে চলার জন্য বানান, বিরামচিহ্ন এবং ইন্ডেন্টেশন অবশ্যই সঠিক হতে হবে।

নিম্নে সকল সুইচ ব্লকের একটি তালিকা দেওয়া হলো:

সুইচ ব্লক — একটি ব্লকস প্রোজেক্টে পাইথন কোড যোগ করুন।

  • স্ট্যাক — পাইথন কমান্ড টাইপ করার জন্য একটি স্থান প্রদান করে যা অন্যান্য স্ট্যাক ব্লকের সাথে ক্রমানুসারে চলে।

  • C ব্লক — পাইথন কন্ট্রোল কোড টাইপ করার জন্য একটি জায়গা প্রদান করে, যেমন if, while, বা for স্টেটমেন্ট।

  • C এক্সপ্যান্ডেবল — একাধিক শাখা সহ পাইথন কন্ট্রোল কোড টাইপ করার জন্য একটি স্থান প্রদান করে, যেমন if, elif, অথবা else।

  • বুলিয়ান — পাইথন কোড টাইপ করার জন্য একটি স্থান প্রদান করে যা True অথবা False রিটার্ন করে।

  • রিপোর্টার — মান ফেরত দেয় এমন পাইথন কোড টাইপ করার জন্য একটি স্থান প্রদান করে।

  • Hat — একটি পাইথন ফাংশন সংজ্ঞায়িত করার জন্য স্থান প্রদান করে।

স্ট্যাক#

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

স্ট্যাক ব্লক#
[] :: custom-switch

একটি স্ট্যাক ব্লকে এক লাইন বা একাধিক লাইনের পাইথন কোড থাকতে পারে।

চালু হলে, এটি উড্ডয়ন করতে, অপেক্ষা করতে এবং তারপর অবতরণ করতে একটি স্ট্যাক ব্লক ব্যবহার করে।#
শুরু হলে
[Take off, wait 1 second, then land.]
[drone.take_off(500)] :: custom-switch
[1] সেকেন্ড অপেক্ষা করো
অবতরণ করো ▶

সি ব্লক#

C ব্লক পাইথন কন্ট্রোল কোড টাইপ করার জন্য একটি জায়গা প্রদান করে, যেমন if, while, বা for স্টেটমেন্ট। C ব্লকের ভিতরে রাখা ব্লকগুলি সেই পাইথন কন্ট্রোল স্ট্রাকচারের অংশ হিসাবে চলে।

সি ব্লক#
if [] :: custom-switch
अंत

একটি C ব্লকে ব্যবহারযোগ্য পাইথন কন্ট্রোল কোডের মধ্যে রয়েছে:

চালু করা হলে, ৭ নম্বর বোতাম চাপ না দেওয়া পর্যন্ত কন্ট্রোলার দিয়ে নড়াচড়া করার জন্য একটি সি ব্লক ব্যবহার করা হয়।#
শুরু হলে
[Move with the controller until button 7 is pressed.]
[500] [mm v] উচ্চতায় উড্ডয়ন করো ▶
if [while not controller.button7.pressing():] :: custom-switch
কন্ট্রোলার দিয়ে চলো
अंत
অবতরণ করো ▶

সি প্রসারণযোগ্য#

C Expandable ব্লকটি একাধিক শাখা সহ পাইথন কন্ট্রোল কোড টাইপ করার জন্য জায়গা প্রদান করে, যেমন if, elif, অথবা elseপ্লাস অ্যারো সিলেক্ট করে অতিরিক্ত শাখা যোগ করা যায়।

C প্রসারণযোগ্য ব্লক#
if [] :: custom-switch-expand
अंत

একটি C এক্সপ্যান্ডেবল ব্লকে ব্যবহারযোগ্য পাইথন কন্ট্রোল কোডের মধ্যে রয়েছে:

চালু করা হলে, উপরে উঠতে, নিচে নামতে বা ভেসে থাকতে একটি C এক্সপ্যান্ডেবল ব্লক ব্যবহার করে।#
শুরু হলে
[Climb up or down with buttons 5 and 6.]
[500] [mm v] উচ্চতায় উড্ডয়ন করো ▶
চিরকাল
if [if controller.button5.pressing():] :: custom-switch-expand
[উপরে v] দিকে উঠো
else [elif controller.button6.pressing():] :: custom-switch-expand
[নিচে v] দিকে উঠো
else [else:] :: custom-switch-expand
ভাসমান থাকো
अंत
अंत

বুলিয়ান#

বুলিয়ান ব্লকটি এমন পাইথন কোড টাইপ করার জন্য জায়গা দেয় যা True অথবা Falseরিটার্ন করে। এটিকে ষড়ভুজাকার ইনপুটযুক্ত ব্লকের ভিতরে রাখা যায়।

বুলিয়ান ব্লক#
<[] :: custom-switch>

একটি বুলিয়ান ব্লকে পাইথন শর্ত থাকতে পারে।

পাইথন শর্ত সহ বুলিয়ান ব্লক#
<[controller.button7.pressing()] :: custom-switch>

একটি বুলিয়ান ব্লকে লজিক্যাল অপারেটরও ব্যবহার করা যায়:

পাইথন লজিক্যাল অপারেটর সহ বুলিয়ান ব্লক#
<[controller.button5.pressing() and controller.button7.pressing()] :: custom-switch>

একটি বুলিয়ান ব্লক মান তুলনা করার জন্য তুলনা অপারেটর ব্যবহার করতে পারে:

  • এর চেয়ে বড়: >

  • এর চেয়ে কম: <

  • সমান: ==

  • অন্যান্য তুলনা অপারেটরগুলির মধ্যে রয়েছে <=, !=, এবং >=

পাইথন তুলনা অপারেটর সহ বুলিয়ান ব্লক#
<[drone.inertial.get_heading()> 100] :: custom-switch>
চালু করা হলে, এটি একটি বুলিয়ান ব্লক ব্যবহার করে বাটন ৭ চাপ না দেওয়া পর্যন্ত পুনরাবৃত্তি করতে থাকে।#
শুরু হলে
[Move with the controller until button 7 is pressed.]
[500] [mm v] উচ্চতায় উড্ডয়ন করো ▶
<[controller.button7.pressing()] :: custom-switch> না হওয়া পর্যন্ত পুনরাবৃত্তি করো
কন্ট্রোলার দিয়ে চলো
अंत
অবতরণ করো ▶

প্রতিবেদক#

Reporter ব্লকটি এমন পাইথন কোড টাইপ করার জন্য জায়গা দেয় যা একটি মান রিটার্ন করে। এটিকে সার্কুলার ইনপুটযুক্ত ব্লকের ভিতরে রাখা যায়।

রিপোর্টার ব্লক#
([] :: custom-switch)

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

রিপোর্টার ব্লক, যেখানে পাইথন কোড একটি মান রিটার্ন করে।#
([drone.get_altitude()] :: custom-switch)

একটি রিপোর্টার ব্লকে গাণিতিক অপারেটর ব্যবহার করা যেতে পারে:

  • যোগ: +

  • বিয়োগ: -

  • বিভাগ: /

  • গুণ: *

পাইথন সংযোজন সহ রিপোর্টার ব্লক#
([drone.get_altitude() + 45] :: custom-switch)
চালু করা হলে, ৩ সেকেন্ড উপরে ওঠার পর ড্রোনটির উচ্চতা প্রিন্ট করে।#
শুরু হলে
[Display the altitude after climbing for 3 seconds.]
[500] [mm v] উচ্চতায় উড্ডয়ন করো ▶
[উপরে v] দিকে উঠো
[3] সেকেন্ড অপেক্ষা করো
স্ক্রিনে ([drone.get_altitude()] :: custom-switch) প্রিন্ট করো ▶
অবতরণ করো ▶

টুপি#

Hat ব্লকটি একটি পাইথন ফাংশন সংজ্ঞায়িত করার জন্য জায়গা প্রদান করে। Hat-এর অধীনে সংযুক্ত ব্লকগুলো সেই ফাংশনের মূল অংশে পরিণত হয়।

টুপি ব্লক#
[] :: hat custom-switch

Hat ব্লকে একটি পাইথন ফাংশনের সংজ্ঞা লিখুন। প্যারামিটারগুলো প্রথম বন্ধনীর ভেতরে দিতে হবে। যদি ফাংশনটিতে কোনো প্যারামিটার ব্যবহৃত না হয়, তবে খালি প্রথম বন্ধনী ব্যবহার করুন।

পাইথন ফাংশন সংজ্ঞা সহ হ্যাট ব্লক#
[def function_name(parameter):] :: hat custom-switch
চালু করার সময়, একটি ফাংশন সংজ্ঞায়িত ও কল করার জন্য একটি Hat ব্লক ব্যবহার করা হয়।#
[def take_off_500():] :: hat custom-switch
[Define a custom function using a Hat block.]
[500] [mm v] উচ্চতায় উড্ডয়ন করো ▶

শুরু হলে
[take_off_500()] :: custom-switch