সুইচ#
ভূমিকা#
সুইচ ব্লক শিক্ষার্থীদের ব্লক-ভিত্তিক কোডিং থেকে টেক্সট-ভিত্তিক কোডিং-এ যেতে সাহায্য করে। সুইচ ব্লকের সাহায্যে, শিক্ষার্থীরা একটি ব্লকস প্রোজেক্টের ভেতরে সরাসরি পাইথন কোড টাইপ করতে পারে—যেমন কমান্ড, কন্ডিশন, ভ্যালু বা ফাংশন ডেফিনিশন লেখা—এবং একই সাথে প্রোজেক্টের বাকি অংশও ব্লক ব্যবহার করে তৈরি করতে পারে। এছাড়াও, প্রতিটি ব্লককে তার সমতুল্য পাইথন কমান্ডে রূপান্তর করা যায়।
পাইথন কমান্ড, মেথড এবং অপারেটর কীভাবে টাইপ করতে হয় তা জানতে, VEX CTE Python API দেখুন।
যেহেতু সুইচ ব্লকে পাইথন কোড থাকে, তাই প্রজেক্টটি প্রত্যাশিতভাবে চলার জন্য বানান, বিরামচিহ্ন এবং ইন্ডেন্টেশন অবশ্যই সঠিক হতে হবে।
নিম্নে সকল সুইচ ব্লকের একটি তালিকা দেওয়া হলো:
সুইচ ব্লক — একটি ব্লকস প্রোজেক্টে পাইথন কোড যোগ করুন।
স্ট্যাক — পাইথন কমান্ড টাইপ করার জন্য একটি স্থান প্রদান করে যা অন্যান্য স্ট্যাক ব্লকের সাথে ক্রমানুসারে চলে।
C ব্লক — পাইথন কন্ট্রোল কোড টাইপ করার জন্য একটি জায়গা প্রদান করে, যেমন
if,while, বাforস্টেটমেন্ট।C এক্সপ্যান্ডেবল — একাধিক শাখা সহ পাইথন কন্ট্রোল কোড টাইপ করার জন্য একটি স্থান প্রদান করে, যেমন
if,elif, অথবাelse।বুলিয়ান — পাইথন কোড টাইপ করার জন্য একটি স্থান প্রদান করে যা
TrueঅথবাFalseরিটার্ন করে।রিপোর্টার — মান ফেরত দেয় এমন পাইথন কোড টাইপ করার জন্য একটি স্থান প্রদান করে।
Hat — একটি পাইথন ফাংশন সংজ্ঞায়িত করার জন্য স্থান প্রদান করে।
স্ট্যাক#
স্ট্যাক ব্লকটি পাইথন কমান্ড টাইপ করার জন্য একটি জায়গা প্রদান করে, যা অন্যান্য স্ট্যাক ব্লকের সাথে ক্রমানুসারে চলে।
[] :: custom-switch
একটি স্ট্যাক ব্লকে এক লাইন বা একাধিক লাইনের পাইথন কোড থাকতে পারে।
শুরু হলে :: hat events
[Move the 6-Axis Arm to a standard position at the start of the project.]
[arm.move_to(120, 120, 75, False)] :: custom-switch
সি ব্লক#
C ব্লক পাইথন কন্ট্রোল কোড টাইপ করার জন্য একটি জায়গা প্রদান করে, যেমন if, while, বা for স্টেটমেন্ট। C ব্লকের ভিতরে রাখা ব্লকগুলি সেই পাইথন কন্ট্রোল স্ট্রাকচারের অংশ হিসাবে চলে।
if [] :: custom-switch
अंत
একটি C ব্লকে ব্যবহারযোগ্য পাইথন কন্ট্রোল কোডের মধ্যে রয়েছে:
শুরু হলে :: hat events
[Check if the 6-Axis Arm can move to a position.]
if [if not arm.can_arm_reach_to(0, 0, 0):] :: custom-switch
কনসোলে [The 6-Axis Arm can't move to this position.] প্রিন্ট করো ◀ এবং কার্সার পরের সারিতে নিয়ে যাও
अंत
সি প্রসারণযোগ্য#
C Expandable ব্লকটি একাধিক শাখা সহ পাইথন কন্ট্রোল কোড টাইপ করার জন্য জায়গা প্রদান করে, যেমন if, elif, অথবা elseপ্লাস অ্যারো সিলেক্ট করে অতিরিক্ত শাখা যোগ করা যায়।
if [] :: custom-switch-expand
अंत
একটি C এক্সপ্যান্ডেবল ব্লকে ব্যবহারযোগ্য পাইথন কন্ট্রোল কোডের মধ্যে রয়েছে:
শুরু হলে
[Check if the 6-Axis Arm can or can't move to a position.]
if [if not arm.can_arm_reach_to(0, 0, 0):] :: custom-switch-expand
কনসোলে [The 6-Axis Arm can't move to this position.] প্রিন্ট করো ◀ এবং কার্সার পরের সারিতে নিয়ে যাও
else [else:] :: custom-switch-expand
কনসোলে [The 6-Axis Arm can move to this position.] প্রিন্ট করো ◀ এবং কার্সার পরের সারিতে নিয়ে যাও
अंत
বুলিয়ান#
বুলিয়ান ব্লকটি এমন পাইথন কোড টাইপ করার জন্য জায়গা দেয় যা 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>
শুরু হলে
[Check if the 6-Axis Arm can move to a position.]
যদি <না <[arm.can_arm_reach_to(0, 0, 0)] :: custom-switch>> তাহলে
কনসোলে [The 6-Axis Arm can't move to this position.] প্রিন্ট করো ◀ এবং কার্সার পরের সারিতে নিয়ে যাও
अंत
প্রতিবেদক#
Reporter ব্লকটি এমন পাইথন কোড টাইপ করার জন্য জায়গা দেয় যা একটি মান রিটার্ন করে। এটিকে সার্কুলার ইনপুটযুক্ত ব্লকের ভিতরে রাখা যায়।
([] :: custom-switch)
একটি Reporter ব্লকে এমন পাইথন কোড থাকতে পারে যা একটি মান রিটার্ন করে।
([arm.get_y()] :: custom-switch)
একটি রিপোর্টার ব্লকে গাণিতিক অপারেটর ব্যবহার করা যেতে পারে:
([arm.get_y() + 45] :: custom-switch)
শুরু হলে
[Display the current y-position while the 6-Axis Arm moves.]
[arm v]-কে x:(-100) y:(200) z:(100) [mm v] অবস্থানে নিয়ে যাও ◀ এবং অপেক্ষা করো না
<[arm v] সরানো সম্পন্ন?> না হওয়া পর্যন্ত পুনরাবৃত্তি করো
কনসোলে ([arm.get_y()] :: custom-switch) প্রিন্ট করো ◀ এবং কার্সার পরের সারিতে নিয়ে যাও
[0.25] সেকেন্ড অপেক্ষা করো
अंत
টুপি#
Hat ব্লকটি একটি পাইথন ফাংশন সংজ্ঞায়িত করার জন্য জায়গা প্রদান করে। Hat-এর অধীনে সংযুক্ত ব্লকগুলো সেই ফাংশনের মূল অংশে পরিণত হয়।
[] :: hat custom-switch
Hat ব্লকে একটি পাইথন ফাংশনের সংজ্ঞা লিখুন। প্যারামিটারগুলো প্রথম বন্ধনীর ভেতরে দিতে হবে। যদি ফাংশনটিতে কোনো প্যারামিটার ব্যবহৃত না হয়, তবে খালি প্রথম বন্ধনী ব্যবহার করুন।
[def function_name(parameter):] :: hat custom-switch
[def increment_y_100():] :: hat custom-switch
[Create a function to increment the 6-Axis Arm.]
[arm v]-এর অবস্থান x:[0] y:[100] z:[0] [mm v] বৃদ্ধি করো ▶
শুরু হলে :: hat events
[increment_y_100()] :: custom-switch