Skip to main content

পাঠ ৪: নেস্টেড লুপ সহ প্রকল্প প্রবাহ

পরবর্তী দুটি ডিস্ক সংগ্রহ করুন।

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

    ডিস্ক মুভার খেলার মাঠের উপরের দিকের দৃশ্য যেখানে বিন্দুযুক্ত তীরচিহ্নগুলি লাল লক্ষ্য থেকে VR রোবটের পথ নির্দেশ করে লাল ডিস্কটি সংগ্রহ করে গোলটিতে ফেলে দেয়, তারপর সবুজ লক্ষ্যে যাওয়ার জন্য ডানদিকে নির্দেশ করে।
  • একবার প্রথম লাল ডিস্কটি সরানো হলে, VR রোবটটিকে সবুজ লক্ষ্যে ড্রাইভ করতে হবে এবং নীল এবং লাল ডিস্কটি সরানোর জন্য, প্রথম সবুজ ডিস্কটি সরানোর জন্য একই অ্যাকশনগুলি সম্পাদন করতে হবে।

    শুরুতে ডিস্ক মুভার খেলার মাঠের উপর থেকে নিচের দৃশ্য, বিন্দুযুক্ত তীরচিহ্নগুলি নির্দেশ করে যে প্রতিটি ডিস্ক সংগ্রহ করার জন্য রোবটটিকে কোন পথে যেতে হবে। তীরগুলি প্রতিটি লক্ষ্য থেকে প্রথম ডিস্কের দিকে নির্দেশ করে এবং অতিরিক্ত ডান তীরগুলি প্রতিটি লক্ষ্য এলাকার মধ্যে নির্দেশ করে।
  • আচরণগুলি একাধিকবার পুনরাবৃত্তি করার জন্য, for লুপ ব্যবহার করা যেতে পারে।
    মূল সংজ্ঞার মধ্যে লুপ কমান্ডের জন্য VEXcode VR Python। কমান্ডটি প্রথম লাইনে বন্ধনীতে 10 কোলন সহ পরিসরের মান পড়বে, তারপর wait কমান্ডের নীচে ইন্ডেন্ট করলে wait 5 পড়বে, বন্ধনীতে MSEC পড়বে।
  • প্রথম মন্তব্যের উপরে, প্রজেক্টের উপরে লুপের জন্য একটি যোগ করুন এবং 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 লুপে কপি পেস্ট করা হয়েছে। পরবর্তী কোড ব্লকে সঠিক ইন্ডেন্টেশন দেখানো হয়েছে।
  • লুপের জন্যভিতরের কমান্ডগুলি নির্বাচন করুন এবং লুপের মধ্যে থাকা কমান্ডগুলিকে সঠিকভাবে ইন্ডেন্ট করতে 'ট্যাব' ব্যবহার করুন। সঠিকভাবে ইন্ডেন্ট করা হলে, ধূসর নির্দেশক রেখাটি 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 রোবট দেয়ালে আঘাত করলে প্রকল্পটি বন্ধ করুন। প্রকল্পটি উন্নত করা যেতে পারে যাতে ভিআর রোবটটি গ্রিন ডিস্কটি তোলার পরে থেমে যায়, তবে এটি প্রকল্পের সামগ্রিক জটিলতাকে বাড়িয়ে তুলবে।

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

 

 

প্রশ্ন

পাঠ কুইজ অ্যাক্সেস করতে নীচের একটি লিঙ্ক নির্বাচন করুন.

গুগল ডক / .ডকএক্স / .পিডিএফ