পাঠ ৪: নেস্টেড লুপ সহ প্রকল্প প্রবাহ
পরবর্তী দুটি ডিস্ক সংগ্রহ করুন।
-
এখন যেহেতু VR রোবট লাল ডিস্কের মুখোমুখি হচ্ছে, VR রোবটকে সেই একই আচরণের পুনরাবৃত্তি করতে হবে যা নীল ডিস্ক সংগ্রহ করতে ব্যবহৃত হয়েছিল, যাতে লাল ডিস্কটি তোলা এবং সরানোর জন্য। ডিস্কটি তুলে নেওয়ার জন্য, ঘুরে দাঁড়ানোর জন্য এবং ডিস্কটি ফেলে দেওয়ার জন্য একই রঙের লক্ষ্যে ফিরে যাওয়ার জন্য গাড়ি চালানোর আচরণগুলি।

-
একবার প্রথম লাল ডিস্কটি সরানো হলে, VR রোবটটিকে সবুজ লক্ষ্যে ড্রাইভ করতে হবে এবং নীল এবং লাল ডিস্কটি সরানোর জন্য, প্রথম সবুজ ডিস্কটি সরানোর জন্য একই অ্যাকশনগুলি সম্পাদন করতে হবে।

- আচরণগুলি একাধিকবার পুনরাবৃত্তি করার জন্য, for লুপ ব্যবহার করা যেতে পারে।

-
প্রথম মন্তব্যের উপরে, প্রজেক্টের উপরে লুপের জন্য একটি যোগ করুন এবং range ফাংশন প্যারামিটারটি '3' তে সেট করুন। নিশ্চিত করুন যে লুপের জন্য মূল সংজ্ঞার মধ্যে ইন্ডেন্ট করা আছে।
def main(): রেঞ্জে repeat_count এর জন্য (3): wait(5, MSEC) -
forলুপে কোডটি কপি করতে, ইন্ডেন্টেশনের দিকে সাবধানে মনোযোগ দিতে হবে। প্রথমে,waitকমান্ডের আগে স্পেস যোগ করুন, যাতে লুপটি এরকম দেখায়:
def main(): রেঞ্জে repeat_count এর জন্য (3): wait(5, MSEC) - এরপর,forলুপে যেসব কমান্ড বসাতে হবে তা নির্বাচন করুন এবংwaitকমান্ডের উপরে কপি করে পেস্ট করুন। লক্ষ্য করুন যে কেবল অনুলিপি এবং পেস্ট করার পরে ইন্ডেন্টেশনটি ভুল হবে। forলুপের ধূসর নির্দেশক রেখাটি ভেঙে গেছে এবংwaitকমান্ড থেকে সংযোগ বিচ্ছিন্ন হয়ে গেছে। এটি একটি চাক্ষুষ সংকেত যে আপনার প্রকল্পটি উদ্দেশ্য অনুযায়ী কার্যকর হবে না।

-
লুপের জন্যভিতরের কমান্ডগুলি নির্বাচন করুন এবং লুপের মধ্যে থাকা কমান্ডগুলিকে সঠিকভাবে ইন্ডেন্ট করতে 'ট্যাব' ব্যবহার করুন। সঠিকভাবে ইন্ডেন্ট করা হলে, ধূসর নির্দেশক রেখাটি forলুপকে waitকমান্ডের সাথে সংযুক্ত করবে যাতে বাইরের লুপের সীমানা দেখা যায়। সম্পূর্ণ হলে, আপনার প্রকল্পের মত দেখতে হবে:
def main(): রেঞ্জ(3) এ পুনরাবৃত্তি_গণনার জন্য: # 1. ডাউন আই সেন্সর ব্যবহার করে ডিস্কে ড্রাইভ করুন, down_eye.near_object() ব্যবহার না করে: drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.stop() # 2। ডিস্ক magnet.energize(BOOST) # 3 তুলে নাও। দূরত্ব সেন্সর ব্যবহার করে লক্ষ্যে যান drivetrain.turn_to_heading(180, DEGREES) যখন front_distance.get_distance(MM) > 200: drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain। স্টপ() # ৪। গোল magnet.energize(DROP) drivetrain.drive_for(REVERSE, 100, MM) # 5 এ ডিস্ক ড্রপ করুন। ঘুরুন এবং পরবর্তী লক্ষ্যে যান drivetrain.turn_to_heading(90, DEGREES) drivetrain.drive_for(FORWARD, 800, MM) # 6। ডিস্কে ঘুরুন ড্রাইভট্রেন।turn_to_heading(0, DEGREES) অপেক্ষা করুন(5, MSEC) - কিভাবে কমান্ডগুলি সরানো যায় এবং উপরে বর্ণিত ইন্ডেন্টেশন সামঞ্জস্য করা যায় তা দেখতে নীচের ভিডিওটি দেখুন। ভিডিও ক্লিপে, প্রকল্পের ছয়টি মন্তব্য বিভাগ হাইলাইট করা হয়েছে, এবং প্রসঙ্গ মেনু খোলা হয়েছে। 'কাট' বিকল্পটি নির্বাচন করা হয়, এবং তারপর কার্সারটি for লুপ কমান্ডের নীচে স্থাপন করা হয়। কনটেক্সট মেনু আবার খোলা হয়, এবং 'পেস্ট' নির্বাচন করা হয়। কমান্ডগুলি তখন লুপের জন্য এর মধ্যে থাকে, কিন্তু ভুলভাবে ইন্ডেন্ট করা হয়। ছয়টি মন্তব্য বিভাগ আবার হাইলাইট করা হয় এবং লুপের মধ্যে প্রকল্পটি সঠিকভাবে ইন্ডেন্ট করার জন্য কীবোর্ডের 'ট্যাব' টিপে।
- ডিস্ক মুভার প্লেগ্রাউন্ডযদি ইতিমধ্যে খোলা না থাকে তবে এটি খুলুন এবং প্রকল্পটি চালান।
-
যখন এই প্রকল্পটি চালানো হয়, VR রোবট প্রতিটি রঙের একটি ডিস্ককে তার সংশ্লিষ্ট রঙিন লক্ষ্যে তুলে নেয় এবং ফেলে দেয়।

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