পাঠ ৩: একাধিক While লুপ সহ প্রকল্প প্রবাহ
এখন যেহেতু আপনি Wall Maze Playgroundএ VR রোবটকে 'A' অক্ষরে নেভিগেট করার জন্য একটি টেক্সট প্রজেক্ট তৈরি করেছেন, আপনি শর্তসাপেক্ষ এবং সেন্সর মান ব্যবহার করে আপনার দক্ষতা প্রসারিত করবেন। এই পাঠে, আপনি VR রোবটটিকে Wall Maze Playgroundএর '2' নম্বরে নেভিগেট করবেন, তারপর 'B' অক্ষরে গাড়ি চালানোর জন্য অতিরিক্ত কমান্ডের প্রয়োজন কেন তা অন্বেষণ করবেন। মিনি-চ্যালেঞ্জে, আপনি ওয়াল মেজের শুরু থেকে '3' নম্বরে নেভিগেট করার জন্য এই দক্ষতাগুলি প্রয়োগ করবেন।

শেখার ফলাফল
- বাম্পার সেন্সর চাপা না হওয়া পর্যন্ত একটি VR রোবট ড্রাইভ ফরোয়ার্ড আছে এমন একটি প্রকল্পে প্রোগ্রাম প্রবাহ বর্ণনা করুন।
প্রকল্পের নাম পরিবর্তন করুন
- যদি পূর্ববর্তী পাঠের প্রকল্পটি ইতিমধ্যে লোড না হয়, তাহলে Unit4Lesson2 প্রকল্পটি লোড করুন।
-
প্রকল্পটির নাম পরিবর্তন করুন Unit4Lesson3।

'A' অক্ষরে ড্রাইভ করার জন্য প্রকল্পের প্রবাহ
আগের পাঠে, VR রোবটটি Wall Maze Playgroundএ 'A' অক্ষরের দিকে গাড়ি চালিয়েছিল। ওয়াল গোলকধাঁধায় একটি নতুন অবস্থানে নেভিগেট করার প্রস্তুতি নেওয়ার সময় প্রকল্পের প্রবাহকে ভেঙে দেওয়া যাক।

-
Wall Maze Playgroundএ 'A' অক্ষরে ড্রাইভিং করার জন্য প্রকল্পের প্রবাহটি আরও ভালভাবে বোঝার জন্য, আপনার আগের প্রকল্পটি সংশোধন করে শুরু করুন বা এই বেস প্রকল্পের সাথে মেলে একটি নতুন প্রকল্প তৈরি করুন৷
def main(): while not left_bumper.pressed(): drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.turn_for(LEFT, 90, DEGREES) while not left_bumper.pressed(): drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.turn_for(LEFT, 90, DEGREES) while not left_bumper.pressed(): drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.stop() - যখন একটি প্রকল্প whileলুপ ব্যবহার করে যার সাথে নয় শর্ত থাকে, তখনও প্রকল্পের প্রোগ্রাম প্রবাহ একই শীর্ষ থেকে নীচের ক্রম অনুসরণ করে। whileলুপ প্রোগ্রাম প্রবাহকে একটি নির্দিষ্ট বিন্দুতে "বিরতি" দিতে দেয়, যখন একটি শর্ত পূরণ হয়। নয়অপারেটরশর্তটি মিথ্যা রিপোর্ট না করা পর্যন্ত প্রকল্পটিকে লুপে থাকতে দেয়। তারপর প্রকল্পটি লুপের বাইরে পরবর্তী কমান্ডে প্রবাহিত হবে। একটি বুলিয়ান অবস্থা, যেমন বাম বাম্পার টিপলে, একটি সত্য বা মিথ্যা মান রিপোর্ট করবে। 'A' অক্ষরে VR রোবট চালানোর জন্য এই কোডে, VR রোবটটি এগিয়ে যাবে যতক্ষণ না বাম বাম্পারের বুলিয়ান অবস্থাটি টিপে রাখা হয়, যা সত্য হয়।
'A' অক্ষরে ড্রাইভ করার জন্য প্রকল্পের প্রকল্প প্রবাহটি এইরকম দেখাবে:
ভিআর রোবটের আচরণ দেখায় যে প্রতিটিwhileলুপ কীভাবে কার্যকর করা হচ্ছে। ভিআর রোবটের গতিবিধির পাশাপাশি ভেঙে ফেলা হলে, প্রকল্পেরলুপ কার্যকর করার সময় প্রতিপরে আমরা স্পষ্টভাবে দেখতে পাচ্ছি যে ভিআর রোবটটি কোথায় পৌঁছেছে।
'2' নম্বরে ড্রাইভ করুন
এই পাঠে, প্রকল্পটি ওয়াল মেজ খেলার মাঠতে VR রোবট ড্রাইভ নম্বর '2'-এর জন্য সম্পাদনা করা হবে!

-
পাঠ ২-এর প্রকল্পটিতে VR রোবটটি 'A' অক্ষরে গাড়ি চালানোর জন্য বাম দিকে ঘুরছে। '২' নম্বরটিতে নেভিগেট করার জন্য, ভিআর রোবটটিকে ডানদিকে ঘুরতে হবে, সামনের দিকে গাড়ি চালাতে হবে এবং তারপর বাম দিকে ঘুরতে হবে।

-
দ্বিতীয় turn_forকমান্ডের দিক বামের পরিবর্তে ডানে পরিবর্তন করুন। আপনার প্রকল্পটি এখন এইরকম দেখা উচিত:
def main(): while not left_bumper.pressed(): drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.turn_for(LEFT, 90, DEGREES) while not left_bumper.pressed(): drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.turn_for(RIGHT, 90, DEGREES) while not left_bumper.pressed(): drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.stop() - যদি Wall Maze Playground খোলা না থাকে, তাহলে সেটি চালু করুন এবং প্রকল্পটি চালান।
-
দেখুন ভিআর রোবটটি '২' নম্বর দিকে গাড়ি চালাতে শুরু করেছে, কিন্তু একটি দেয়ালে থামছে। সুতরাং, ভিআর রোবটটি যখন দেয়ালে চাপ দেয় তখন থামার পরিবর্তে বাম দিকে ঘুরতে হয়।

-
খেলার মাঠ রিসেট করতে "রিসেট" বোতামটি নির্বাচন করুন এবং VR রোবটটিকে তার শুরুর অবস্থানে ফিরিয়ে আনুন।

-
VR রোবটটিকে '2' নম্বরে চালানোর জন্য stop কমান্ডটি সরিয়ে এবং নিম্নলিখিত কমান্ডগুলি দিয়ে এটি প্রতিস্থাপন করে কোডটি সম্পাদনা করুন।
def main(): while not left_bumper.pressed(): drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.turn_for(LEFT, 90, DEGREES) while not left_bumper.pressed(): drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.turn_for(RIGHT, 90, DEGREES) while not left_bumper.pressed(): drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.turn_for(LEFT, 90, DEGREES) while not left_bumper.pressed(): drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.turn_for(LEFT, 90, DEGREES) while not left_bumper.pressed(): ড্রাইভট্রেন.ড্রাইভ(ফরওয়ার্ড) অপেক্ষা(5, MSEC) ড্রাইভট্রেন.স্টপ() - ওয়াল মেজ খেলার মাঠ চালু করুন যদি এটি ইতিমধ্যে খোলা না থাকে এবং প্রকল্পটি চালান।
-
Wall Maze Playgroundএ '2' নম্বরে VR রোবট ড্রাইভ দেখুন!

- খেলার মাঠ রিসেট করতে "রিসেট" বোতামটি নির্বাচন করুন এবং VR রোবটটিকে তার শুরুর অবস্থানে ফিরিয়ে আনুন।
এই পাঠের বাকি অংশটি চালিয়ে যেতে পরবর্তী বোতামটি নির্বাচন করুন।