সুইচ#
ভূমিকা#
সুইচ ব্লক শিক্ষার্থীদের ব্লক-ভিত্তিক কোডিং থেকে টেক্সট-ভিত্তিক কোডিং-এ যেতে সাহায্য করে। সুইচ ব্লকের সাহায্যে, শিক্ষার্থীরা একটি ব্লকস প্রোজেক্টের ভেতরে সরাসরি পাইথন কোড টাইপ করতে পারে—যেমন কমান্ড, কন্ডিশন, ভ্যালু বা ফাংশন ডেফিনিশন লেখা—এবং একই সাথে প্রোজেক্টের বাকি অংশও ব্লক ব্যবহার করে তৈরি করতে পারে। এছাড়াও, প্রতিটি ব্লককে তার সমতুল্য পাইথন কমান্ডে রূপান্তর করা যায়।
পাইথন কমান্ড, মেথড এবং অপারেটর কীভাবে টাইপ করতে হয় তা জানতে, VEX AIM পাইথন API দেখুন।
যেহেতু সুইচ ব্লকে পাইথন কোড থাকে, তাই প্রজেক্টটি প্রত্যাশিতভাবে চলার জন্য বানান, বিরামচিহ্ন এবং ইন্ডেন্টেশন অবশ্যই সঠিক হতে হবে।
নিম্নে সকল সুইচ ব্লকের একটি তালিকা দেওয়া হলো:
সুইচ ব্লক — একটি ব্লকস প্রোজেক্টে পাইথন কোড যোগ করুন।
স্ট্যাক — পাইথন কমান্ড টাইপ করার জন্য একটি স্থান প্রদান করে যা অন্যান্য স্ট্যাক ব্লকের সাথে ক্রমানুসারে চলে।
C ব্লক — পাইথন কন্ট্রোল কোড টাইপ করার জন্য একটি জায়গা প্রদান করে, যেমন
if,while, বাforস্টেটমেন্ট।C এক্সপ্যান্ডেবল — একাধিক শাখা সহ পাইথন কন্ট্রোল কোড টাইপ করার জন্য একটি স্থান প্রদান করে, যেমন
if,elif, অথবাelse।বুলিয়ান — পাইথন কোড টাইপ করার জন্য একটি স্থান প্রদান করে যা
TrueঅথবাFalseরিটার্ন করে।রিপোর্টার — মান ফেরত দেয় এমন পাইথন কোড টাইপ করার জন্য একটি স্থান প্রদান করে।
Hat — একটি পাইথন ফাংশন সংজ্ঞায়িত করার জন্য স্থান প্রদান করে।
স্ট্যাক#
স্ট্যাক ব্লকটি পাইথন কমান্ড টাইপ করার জন্য একটি জায়গা প্রদান করে, যা অন্যান্য স্ট্যাক ব্লকের সাথে ক্রমানুসারে চলে।
[] :: custom-switch
একটি স্ট্যাক ব্লকে এক লাইন বা একাধিক লাইনের পাইথন কোড থাকতে পারে।
শুরু হলে
[Move forward 400 mm.]
[robot.move_for(400, 0)] :: custom-switch
সি ব্লক#
C ব্লক পাইথন কন্ট্রোল কোড টাইপ করার জন্য একটি জায়গা প্রদান করে, যেমন if, while, বা for স্টেটমেন্ট। C ব্লকের ভিতরে রাখা ব্লকগুলি সেই পাইথন কন্ট্রোল স্ট্রাকচারের অংশ হিসাবে চলে।
if [] :: custom-switch
अंत
একটি C ব্লকে ব্যবহারযোগ্য পাইথন কন্ট্রোল কোডের মধ্যে রয়েছে:
শুরু হলে
[Continuously turn right until the screen is pressed.]
[ডান v] দিকে ঘোরো
চিরকাল
if [if robot.screen.pressing():] :: custom-switch
স্ক্রিনে [Screen was pressed!] প্রিন্ট করো ▶
সব চলাচল বন্ধ করো
अंत
अंत
সি প্রসারণযোগ্য#
C Expandable ব্লকটি একাধিক শাখা সহ পাইথন কন্ট্রোল কোড টাইপ করার জন্য জায়গা প্রদান করে, যেমন if, elif, অথবা elseপ্লাস অ্যারো সিলেক্ট করে অতিরিক্ত শাখা যোগ করা যায়।
if [] :: custom-switch-expand
अंत
একটি C এক্সপ্যান্ডেবল ব্লকে ব্যবহারযোগ্য পাইথন কন্ট্রোল কোডের মধ্যে রয়েছে:
শুরু হলে
[Continuously move forward until the robot has a sports ball.]
চিরকাল
if [if robot.has_sports_ball():] :: custom-switch-expand
স্ক্রিনে [Sports ball found!] প্রিন্ট করো ▶
সব চলাচল বন্ধ করো
else [else:]
[সামনে v] দিকে চলো
अंत
अंत
বুলিয়ান#
বুলিয়ান ব্লকটি এমন পাইথন কোড টাইপ করার জন্য জায়গা দেয় যা True অথবা Falseরিটার্ন করে। এটিকে ষড়ভুজাকার ইনপুটযুক্ত ব্লকের ভিতরে রাখা যায়।
<[] :: custom-switch>
একটি বুলিয়ান ব্লকে পাইথন শর্ত থাকতে পারে।
<[robot.screen.pressing()] :: custom-switch>
একটি বুলিয়ান ব্লকে লজিক্যাল অপারেটরও ব্যবহার করা যায়:
<[robot.screen.pressing() and robot.has_sports_ball()] :: custom-switch>
একটি বুলিয়ান ব্লক মান তুলনা করার জন্য তুলনা অপারেটর ব্যবহার করতে পারে:
এর চেয়ে বড়:
>এর চেয়ে কম:
<সমান:
==অন্যান্য তুলনা অপারেটরগুলির মধ্যে রয়েছে
<=,!=, এবং>=
<[robot.inertial.get_heading()> 100] :: custom-switch>
শুরু হলে
[Continuously turn right until the screen is pressed.]
[ডান v] দিকে ঘোরো
চিরকাল
যদি <[robot.screen.pressing()] :: custom-switch> তাহলে
স্ক্রিনে [Screen was pressed!] প্রিন্ট করো ▶
সব চলাচল বন্ধ করো
अंत
अंत
প্রতিবেদক#
Reporter ব্লকটি এমন পাইথন কোড টাইপ করার জন্য জায়গা দেয় যা একটি মান রিটার্ন করে। এটিকে সার্কুলার ইনপুটযুক্ত ব্লকের ভিতরে রাখা যায়।
([] :: custom-switch)
একটি Reporter ব্লকে এমন পাইথন কোড থাকতে পারে যা একটি মান রিটার্ন করে।
([robot.inertial.get_heading()] :: custom-switch)
একটি রিপোর্টার ব্লকে গাণিতিক অপারেটর ব্যবহার করা যেতে পারে:
([robot.inertial.get_heading() + 45] :: custom-switch)
শুরু হলে
[Print the robot's heading plus 45 degrees.]
স্ক্রিনে ([robot.inertial.get_heading() + 45] :: custom-switch) প্রিন্ট করো ▶
টুপি#
Hat ব্লকটি একটি পাইথন ফাংশন সংজ্ঞায়িত করার জন্য জায়গা প্রদান করে। Hat-এর অধীনে সংযুক্ত ব্লকগুলো সেই ফাংশনের মূল অংশে পরিণত হয়।
[] :: hat custom-switch
Hat ব্লকে একটি পাইথন ফাংশনের সংজ্ঞা লিখুন। প্যারামিটারগুলো প্রথম বন্ধনীর ভেতরে দিতে হবে। যদি ফাংশনটিতে কোনো প্যারামিটার ব্যবহৃত না হয়, তবে খালি প্রথম বন্ধনী ব্যবহার করুন।
[def function_name(parameter):] :: hat custom-switch
[def move_400():] :: hat custom-switch
[Define a custom function using a Hat block.]
[সামনে v] দিকে (400) [mm v] চলো ▶
শুরু হলে
[move_400()] :: custom-switch