সুইচ#

ভূমিকা#

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

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

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

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

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

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

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

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

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

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

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

স্ট্যাক#

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

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

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

চালু হলে, এটি একটি স্ট্যাক ব্লক ব্যবহার করে সামনে এগোয়, কিছুক্ষণ অপেক্ষা করে এবং তারপর থেমে যায়।#
শুরু হলে :: hat events
[Drive forward, then stop.]
[drivetrain.drive(FORWARD)] :: custom-switch
[2] সেকেন্ড অপেক্ষা করো
চালানো বন্ধ করো

সি ব্লক#

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

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

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

চালু করা হলে, স্ক্রিনে চাপ দিলে এটি সামনে এগিয়ে যাওয়ার জন্য একটি সি ব্লক ব্যবহার করে।#
শুরু হলে :: hat events
[Drive forward when the screen is pressed.]
চিরকাল
if [if brain.screen.pressing():] :: custom-switch
[সামনে v] দিকে [200] [mm v] চালাও ▶
अंत
अंत

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

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

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

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

চালু করা হলে, এটি একটি C এক্সপ্যান্ডেবল ব্লক ব্যবহার করে, যার ফলে স্ক্রিনে চাপ দিলে ডানদিকে এবং অন্যথায় বামদিকে মোড় নেওয়া যায়।#
শুরু হলে
[Turn right when the screen is pressed, otherwise turn left.]
চিরকাল
if [if brain.screen.pressing():] :: custom-switch-expand
[ডান v] দিকে ঘোরো
else [else:] :: custom-switch-expand
[বাম v] দিকে ঘোরো
अंत
अंत

বুলিয়ান#

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

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

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

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

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

পাইথন লজিক্যাল অপারেটর সহ বুলিয়ান ব্লক#
<[bumper_a.is_pressed() or bumper_b.is_pressed()] :: custom-switch>

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

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

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

  • সমান: ==

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

পাইথন তুলনা অপারেটর সহ বুলিয়ান ব্লক#
<[drivetrain.get_heading()> 100] :: custom-switch>
চালু করা হলে, স্ক্রিনে চাপ দিলে সামনে এগিয়ে যাওয়ার জন্য এটি একটি বুলিয়ান ব্লক ব্যবহার করে।#
শুরু হলে :: hat events
[Drive forward whenever the screen is pressed.]
চিরকাল
যদি <[brain.screen.pressing()] :: custom-switch> তাহলে
[সামনে v] দিকে [200] [mm v] চালাও ▶
अंत
अंत

প্রতিবেদক#

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

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

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

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

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

  • যোগ: +

  • বিয়োগ: -

  • বিভাগ: /

  • গুণ: *

পাইথন সংযোজন সহ রিপোর্টার ব্লক#
([drivetrain.rotation() + 45] :: custom-switch)
চালু করা হলে, রোবটটি ঘোরার সময় ড্রাইভট্রেনের ঘূর্ণন প্রিন্ট করে।#
শুরু হলে :: hat events
[Display the rotation while turning.]
[ডান v] দিকে [450] ডিগ্রি ঘোরো ◀ এবং অপেক্ষা করো না
চিরকাল
সব সারি মুছে দাও
([drivetrain.rotation()] :: custom-switch) প্রিন্ট করো ▶
[0.1] সেকেন্ড অপেক্ষা করো
अंत

টুপি#

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

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

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

পাইথন ফাংশন সংজ্ঞা সহ হ্যাট ব্লক#
[def function_name(parameter):] :: hat custom-switch
চালু করার সময়, একটি ফাংশন সংজ্ঞায়িত ও কল করার জন্য একটি Hat ব্লক ব্যবহার করা হয়।#
[def drive_400():] :: hat custom-switch
[Create a function to drive the robot forward.]
[সামনে v] দিকে (400) [mm v] চালাও ▶

শুরু হলে :: hat events
[drive_400()] :: custom-switch