পাঠ ২: যদি অন্যথায় বিবৃতি
এই পাঠে, আপনি এমন একটি প্রকল্প তৈরি করবেন যেখানে VR রোবট Dynamic Castle Crasher Playgroundএ কমপক্ষে দুটি দুর্গের উপর আঘাত করবে। প্রতিটি রিসেটের সাথে খেলার মাঠের বিন্যাস পরিবর্তিত হয় বলে লুপ এবং সেন্সর প্রতিক্রিয়া ব্যবহার করে চ্যালেঞ্জ সমাধানের জন্য একটি অ্যালগরিদমের প্রয়োজন হবে।
ডাইনামিক ক্যাসেল ক্র্যাশার প্লেগ্রাউন্ড লেআউটের উদাহরণ:

শেখার ফলাফল
- চিহ্নিত করুন যে একটি if elseস্টেটমেন্ট রিপোর্ট করা বুলিয়ান মানের উপর ভিত্তি করে 'if' অথবা 'else' শাখার ভিতরে কমান্ড চালায়।
- চিহ্নিত করুন যে একটি if else স্টেটমেন্ট সাধারণত for লুপ অথবা একটি infinite whileলুপের সাথে একাধিকবার অবস্থা পরীক্ষা করার জন্য ব্যবহৃত হয়।
- লুপের সাথে কেন if elseস্টেটমেন্ট ব্যবহার করা হয়েছে তা চিহ্নিত করুন এবং বর্ণনা করুন।
- if elseস্টেটমেন্ট সহ একটি প্রকল্পে 'if' শাখা বা 'else' শাখা চালানোর কারণ কী তা বর্ণনা করুন।
কেন "যদি অন্যথা হয়" বিবৃতি ব্যবহার করবেন?
ডাইনামিক ক্যাসেল ক্র্যাশার চ্যালেঞ্জটি ইউনিট ২-এর ক্যাসেল ক্র্যাশার চ্যালেঞ্জ থেকে আলাদা। ইউনিট ২ চ্যালেঞ্জে একটি স্থির খেলার মাঠে দুর্গগুলিকে আঘাত করার জন্য সহজ সিকোয়েন্সিং এবং ড্রাইভট্রেন কমান্ড ব্যবহার করা হয়েছিল।
def main():
drivetrain.set_drive_velocity(100, PERCENT)
drivetrain.set_turn_velocity(100, PERCENT)
drivetrain.drive_for(FORWARD, 1550, MM)
drivetrain.turn_for(RIGHT, 180, DEGREES)
drivetrain.drive_for(FORWARD, 700, MM)
drivetrain.turn_for(RIGHT, 90, DEGREES)তবে, ডাইনামিক ক্যাসেল ক্র্যাশার প্লেগ্রাউন্ডের পরিবর্তিত লেআউটের কারণে, ভিআর রোবট দুই বা ততোধিক দুর্গ ধ্বংস করার জন্য কেবলড্রাইভট্রেন কমান্ড যথেষ্ট হবে না। ড্রাইভট্রেন কমান্ডের একটি সেট একটি খেলার মাঠে কাজ করতে পারে, কিন্তু অন্যটিতে নয়। পুনরাবৃত্তিতে সেন্সর এবং নির্বাচন ব্যবহার করে এমন একটি অ্যালগরিদমের প্রয়োজন হবে। এই প্রকল্পে শর্তসাপেক্ষ বিবৃতি সহ নির্বাচন যোগ করে একটি অ্যালগরিদম তৈরি করতে if elseস্টেটমেন্ট ব্যবহার করা হবে।

যদি অন্যথা হয় তবে বিবৃতি
if else বিবৃতিটি এমন একটি বিবৃতি যা বুলিয়ান শর্ত গ্রহণ করে। if elseস্টেটমেন্টটি একটি শর্তসাপেক্ষ স্টেটমেন্ট যা একটি প্রকল্পের প্রবাহ নিয়ন্ত্রণ করে। if elseস্টেটমেন্ট কমান্ডের একটি নির্দিষ্ট ক্রম কার্যকর করবেযদি শর্ত পূরণ হয়, else(যখন শর্ত নয় পূরণ হয়) তখন কমান্ডের আরেকটি সেট কার্যকর করা হবে - যার ফলে প্রকল্প প্রবাহ 'শাখা' করা হবে। if else-তে একবারে শুধুমাত্র একটি শাখা কার্যকর করা হবে।
যদি শর্ত:
পাস
অন্যথায়:
পাস- শর্তটি সত্য হিসাবে রিপোর্ট করা হলে, 'if' শাখার ভিতরের কমান্ডগুলি চালানো হয়।
- যদি শর্তটি False হিসাবে রিপোর্ট করা হয়, তাহলে 'else' শাখার ভিতরের কমান্ডগুলি চালানো হবে।
- একবার একটি শাখার ভিতরের সমস্ত কমান্ড চালানো হয়ে গেলে, প্রকল্পটিif elseস্টেটমেন্টের বাইরে পরবর্তী কমান্ডে চলে যাবে।
তুমি সম্ভবত তোমার দৈনন্দিন কাজেif elseযুক্তি ব্যবহার করো। উদাহরণস্বরূপ, বাইরের আবহাওয়ার উপর ভিত্তি করে ঘর থেকে বের হওয়ার সময় কী নিতে হবে তা নির্ধারণ করার সময়, আপনিif elseলজিক ব্যবহার করতে পারেন। যদিবৃষ্টি হয়, তাহলে ছাতা নিও; অন্য জনজন সানগ্লাস নিও।
'যদি' শাখা -
- এই পরিস্থিতিতে, 'বৃষ্টিপাত' শর্ত পূরণ হয়, তাই 'যদি'শাখাটি কার্যকর করা হবে, এবং আপনি একটি ছাতা নেবেন।

'অন্য' শাখা -
- এই পরিস্থিতিতে, 'বৃষ্টিপাত'-এর শর্ত নয়, পূরণ হয়েছে, তাই 'অন্য' শাখাটি কার্যকর করা হবে এবং আপনাকে সানগ্লাস নিতে হবে।

যদি অন্য কিছু হয় তাহলে বিবৃতি এবং ডাইনামিক ক্যাসেল ক্র্যাশার সমস্যা
VR রোবটের জন্য ডায়নামিক ক্যাসেল ক্র্যাশার প্লেগ্রাউন্ডএ সফলভাবে দুর্গের উপর নক করার জন্য দুটি প্রধান ধাপ রয়েছে। মূলত, ভিআর রোবটকে অবশ্যই খেলার মাঠে দুর্গগুলি সনাক্ত করতে এবং সনাক্ত করতে সক্ষম হতে হবে এবং তারপরে তাদের ছিটকে যাওয়ার জন্য গাড়ি চালাতে হবে। if elseবিবৃতির পরিপ্রেক্ষিতে, এটিকে এভাবে গঠন করা যেতে পারে:
- যদি VR রোবট একটি দুর্গ শনাক্ত করে, এটিকে ছিটকে দেওয়ার জন্য এটির দিকে এগিয়ে যান।

- অন্যথায়,(যখন VR রোবট কোনও দুর্গ সনাক্ত করতে পারে না), তখন ঘুরে খেলার মাঠের অন্য কোনও স্থানে দুর্গ আছে কিনা তা পরীক্ষা করুন।

ভিআর রোবটের দূরত্ব সেন্সরটি এই খেলার মাঠে দুর্গ সনাক্ত করতে ব্যবহার করা যেতে পারে।অন্যান্য খেলার মাঠের মতো, ডায়নামিক ক্যাসেল ক্র্যাশার প্লেগ্রাউন্ড কোনও দেয়াল নেই। যেহেতু Dynamic Castle Crasher Playgroundএ দুর্গগুলিই একমাত্র বস্তু, তাই যখন দূরত্ব সেন্সর কোনও বস্তু সনাক্ত করে, তখন সেই বস্তুটি একটি দুর্গ হবে। ভিআর রোবটকে বারবার দূরত্ব সেন্সরের অবস্থা পরীক্ষা করতে হবে, যাতে এই দুটি মৌলিক ধাপসম্পন্ন হওয়ার পরে, ভিআর রোবট ফিরে যেতে পারে এবং পরবর্তী দুর্গটি খুঁজে পেতে দূরত্ব সেন্সর ব্যবহার করতে পারে।
If Else স্টেটমেন্ট দিয়ে একটি প্রকল্পের পরিকল্পনা করা
- একটি নতুন প্রকল্প শুরু করুন এবং অনুরোধ করা হলে ডাইনামিক ক্যাসেল ক্র্যাশার প্লেগ্রাউন্ডনির্বাচন করুন।

- প্রকল্পটির নাম দিন Unit9 Lesson2।

-
কর্মক্ষেত্রে মন্তব্য যোগ করুন যা উপরে চিহ্নিত পদক্ষেপের উপর ভিত্তি করে প্রকল্পের উদ্দেশ্য রূপরেখা দেয়। প্রথম মন্তব্যটি if elseবিবৃতির অবস্থা ব্যাখ্যা করে, এবং পরবর্তী দুটি মন্তব্য if elseবিবৃতির প্রতিটি শাখার ক্রিয়া ব্যাখ্যা করে। মনে রাখবেন পাইথন মন্তব্য একটি # (পাউন্ড) চিহ্ন দিয়ে শুরু হয়। আপনার প্রকল্পটি দেখতে এরকম হওয়া উচিত:
def main(): # দূরত্ব সেন্সর কি দুর্গ সনাক্ত করে? # একটি দূরত্ব সেন্সর দ্বারা ক্র্যাশ দুর্গ সনাক্ত করা হয়েছে # দূরত্ব সেন্সর ব্যবহার করে একটি দুর্গ খুঁজতে ঘুরুন -
উপরে বর্ণিত প্রতিটি ক্রিয়া ট্রিগার করার জন্য একটি if else বিবৃতি ব্যবহার করা যেতে পারে। প্রতিটি ক্রিয়া নির্ভর করে if elseবিবৃতিতে বুলিয়ান অবস্থা সত্য না মিথ্যা হিসাবে রিপোর্ট করে কিনা তার উপর। মন্তব্যের পরে একটি if elseবিবৃতি যোগ করুন। আপনার প্রকল্পটি এখন এইরকম দেখা উচিত:
def main(): # দূরত্ব সেন্সর কি দুর্গ সনাক্ত করে? # একটি দূরত্ব সেন্সর দ্বারা ক্র্যাশ দুর্গ সনাক্ত করা হয়েছে # দূরত্ব সেন্সর ব্যবহার করে একটি দুর্গ খুঁজে পেতে ঘুরুন যদি শর্ত: পাস অন্যথায়: পাস -
if else স্টেটমেন্টের প্রতিটি শাখা মন্তব্য ব্যবহার করে সংজ্ঞায়িত করা যেতে পারে। যদিদূরত্ব সেন্সর একটি দুর্গ সনাক্ত করে, তাহলে ভিআর রোবটটি দুর্গটি অতিক্রম করার জন্য গাড়ি চালাবে; অন্যথায়দুর্গ সনাক্ত করার জন্য এটি ঘুরে দাঁড়াবে। সংশ্লিষ্ট ক্রিয়াগুলি বর্ণনাকারী মন্তব্যগুলির সাথে সারিবদ্ধ করতে প্রকল্পের if এবং else শাখাগুলি সরান৷ আপনার প্রকল্পটি এখন এইরকম দেখা উচিত:
def main(): # দূরত্ব সেন্সর কি দুর্গ সনাক্ত করে? যদি শর্ত: # একটি দূরত্ব সেন্সর দ্বারা ক্র্যাশ দুর্গ সনাক্ত করা হয়েছে পাস অন্যথায়: # দূরত্ব সেন্সর পাস ব্যবহার করে একটি দুর্গ খুঁজে পেতে ঘুরুন
এই পাঠের বাকি অংশটি চালিয়ে যেতে পরবর্তী বোতামটি নির্বাচন করুন।