পাঠ ৩: যখন লাল রঙ সনাক্ত করা হয়
লাল রঙ শনাক্ত করার পর ভিআর রোবটকে কী করতে হবে তা বলার জন্য কোনও নির্দেশ নেই। লাল সীমানা এড়াতে, VR রোবটটি লাল রঙ শনাক্ত করার সাথে সাথে উল্টে যাবে এবং ঘুরে যাবে, যেমনটি এই ভিডিওতে দেখা যাচ্ছে।
-
ডাউন আই সেন্সর লাল সীমানা শনাক্ত করলে কী ঘটবে তা নির্দেশ করার জন্যwhileলুপের শেষে একটি মন্তব্য যোগ করুন। আপনার প্রকল্পটি এখন এইরকম দেখা উচিত:
def main(): # লাল সীমানা সনাক্ত না হওয়া পর্যন্ত ভবনটি সন্ধান করুন while not down_eye.detect(RED): # দূরত্ব সেন্সর কি দুর্গ সনাক্ত করে? যদি front_distance.found_object(): # দূরত্ব সেন্সর দ্বারা ক্র্যাশ দুর্গ সনাক্ত করা হয় drivetrain.drive(FORWARD) অন্যথায়: # দূরত্ব সেন্সর ব্যবহার করে একটি দুর্গ খুঁজে পেতে ঘুরুন drivetrain.turn(RIGHT) wait(5, MSEC) # লাল সীমানা সনাক্ত হলে বিপরীত করুন এবং ঘুরুন -
মন্তব্যের নিচে একটি drive_forএবং turn_for কমান্ড যোগ করুন যাতে VR রোবটটি লাল রঙ শনাক্ত করার পর বিপরীত দিকে ঘুরতে পারে।
def main(): # লাল সীমানা সনাক্ত না হওয়া পর্যন্ত ভবনটি সন্ধান করুন while not down_eye.detect(RED): # দূরত্ব সেন্সর কি দুর্গ সনাক্ত করে? যদি front_distance.found_object(): # দূরত্ব সেন্সর দ্বারা ক্র্যাশ দুর্গ সনাক্ত করা হয় drivetrain.drive(FORWARD) অন্যথায়: # দূরত্ব সেন্সর ব্যবহার করে একটি দুর্গ খুঁজে পেতে ঘুরুন drivetrain.turn(RIGHT) wait(5, MSEC) # লাল সীমানা সনাক্ত হলে বিপরীত করুন এবং ঘুরুন drivetrain.drive_for(REVERSE, 300, MM) drivetrain.turn_for(RIGHT, 90, DEGREES) - Dynamic Castle Crasher Playgroundযদি ইতিমধ্যে খোলা না থাকে, তাহলে সেটি খুলুন এবং প্রকল্পটি চালান। VR রোবট কি আপনার ইচ্ছা অনুযায়ী আচরণ করে?
- যখন এই প্রকল্পটি চালানো হয়, তখন দুটি শর্ত আছে যা চেক করা হয়। প্রথমটি হল while লুপের ভিতরে লাল রঙ সনাক্তকারী ডাউন আই সেন্সরের অবস্থা। মনে রাখবেন যে প্রকল্পের প্রবাহটি বস্তু সনাক্ত হওয়ার পরবর্তী অবস্থায় চলে যায় শুধুমাত্র যদি ডাউন আই সেন্সর লাল রঙ দেখতে না পায়। যদি ডাউন আই সেন্সর লাল রঙ শনাক্ত করে, তাহলে প্রজেক্ট ফ্লো if else স্টেটমেন্ট এড়িয়ে যায় এবং বিপরীত দিকে গাড়ি চালাতে এবং ঘুরতে লাফ দেয়।

- দ্বিতীয় যে শর্তটি পরীক্ষা করা হয় তা হলif elseস্টেটমেন্ট। ডাউন আই সেন্সর লাল রঙ সনাক্ত না করলেও, দূরত্ব সেন্সরের অবস্থা পরীক্ষা করার জন্য প্রকল্পটিwhileলুপে চলতে থাকবে। ভিআর রোবটটি দূরত্ব সেন্সর থেকে ডেটা ব্যবহার করে এগিয়ে যাওয়ার বা ডানদিকে মোড় নেওয়ার সিদ্ধান্ত নেবে।

-
যাইহোক, একবার ডাউন আই সেন্সর রঙ লাল শনাক্ত করলে, ভিআর রোবটটি বিপরীত দিকে ড্রাইভ করবে, ঘুরবে, তারপর থামবে যেহেতু এটি প্রকল্প প্রবাহের শেষ। আচরণের পুনরাবৃত্তি করার জন্য কোন লুপ ব্যবহার করা হয় না।

একটি অসীম যখন লুপ যোগ করা হচ্ছে
-
একটি লুপে আচরণগুলি পুনরাবৃত্তি করার জন্য একটি অসীম whileলুপ প্রয়োজন। প্রজেক্টের উপরে একটি while লুপ টেনে আনুন অথবা টাইপ করুন, এবং একটি অসীম লুপ তৈরি করতে শর্তটিকে True তে সেট করুন। তারপর, পূর্ববর্তী কোডটি infinite whileলুপের ভিতরে কপি করে পেস্ট করুন। নিশ্চিত করুন যে কমান্ডগুলি সঠিক শিরোনামের অধীনে সঠিকভাবে ইন্ডেন্ট করা হয়েছে, অন্যথায় প্রকল্পটি প্রত্যাশিত হিসাবে চালানো নাও হতে পারে। আপনার প্রকল্পটি এখন এইরকম দেখা উচিত:
def main(): while True: # লাল সীমানা সনাক্ত না হওয়া পর্যন্ত বিল্ডিং সন্ধান করুন while not down_eye.detect(RED): # দূরত্ব সেন্সর কি দুর্গ সনাক্ত করে? যদি front_distance.found_object(): # দূরত্ব সেন্সর দ্বারা ক্র্যাশ দুর্গ সনাক্ত করা হয় drivetrain.drive(FORWARD) অন্যথায়: # দূরত্ব সেন্সর ব্যবহার করে একটি দুর্গ খুঁজে পেতে ঘুরুন drivetrain.turn(RIGHT) wait(5, MSEC) # লাল সীমানা সনাক্ত হলে বিপরীত করুন এবং ঘুরুন drivetrain.drive_for(REVERSE, 300, MM) drivetrain.turn_for(RIGHT, 90, DEGREES) - Dynamic Castle Crasher Playgroundযদি ইতিমধ্যে খোলা না থাকে, তাহলে সেটি খুলুন এবং প্রকল্পটি চালান। ভিআর রোবট কি আপনার ইচ্ছা অনুযায়ী আচরণ করে?
-
এই প্রকল্পটি চালানো হলে, VR রোবট একটি শনাক্ত দুর্গের দিকে ড্রাইভ করবে এবং কোন দুর্গের রিপোর্ট না হলে ডানদিকে ঘুরবে। ডাউন আই সেন্সর একবার লাল রঙ শনাক্ত করলে, ভিআর রোবটটি উল্টো দিকে ড্রাইভ করে, বাঁক নেয় এবং অন্য দুর্গের দিকে গাড়ি চালিয়ে যেতে থাকে।
