পাঠ ৪: ইনফিনিট হোয়াইল লুপ ব্যবহার করা
ডিস্ক মেজ সমস্যা সমাধান
প্রকল্পটি নির্মাণ
- পূর্ববর্তী পাঠ থেকে Unit7Lesson3 প্রকল্পটি লোড করুন, অথবা শুরু করতে এখানে দেখানো প্রকল্পটি পুনরায় তৈরি করুন।
def main():
# যদি সামনের চোখ সবুজ শনাক্ত করে তাহলে ডানে ঘুরুন
যদি front_eye.detect(GREEN):
drivetrain.turn_for(RIGHT, 90, DEGREES)
# যদি সামনের চোখ নীল শনাক্ত করে তাহলে বামে ঘুরুন
যদি front_eye.detect(BLUE):
drivetrain.turn_for(LEFT, 90, DEGREES)
# যদি সামনের চোখ লাল শনাক্ত করে তাহলে থামুন
যদি front_eye.detect(RED):
drivetrain.stop()
# যদি সামনের চোখ কোনটিই শনাক্ত না করে তাহলে সামনের দিকে চালান
যদি front_eye.detect(NONE):
drivetrain.drive(FORWARD)-
প্রকল্পটির নাম পরিবর্তন করুন Unit7Lesson4.

- প্রজেক্টের উপরে একটি অসীমwhile লুপ টেনে আনুন অথবা টাইপ করুন, এবং শর্তটি True তে সেট করুন।
def main():
while True:
wait(5, MSEC)- waitকমান্ডটি সরান যাতে infinitewhileলুপের ভিতরে যাওয়া কমান্ডগুলির জন্য জায়গা তৈরি হয়।
def main():
while True:
wait(5, MSEC)- ইনফিনিটwhile লুপের ভিতরে, লুপের ভিতরে পূর্ববর্তী if স্টেটমেন্টগুলি কপি করে পেস্ট করুন। অপেক্ষা কমান্ডটি এর নীচে লুপ মুছে ফেলবেন না। আপনার প্রকল্পটি দেখতে এরকম হতে পারে। লক্ষ্য করুন যে এইভাবে কমান্ড কপি এবং পেস্ট করলে সঠিক ইন্ডেন্টেশন পাওয়া যায় না।
def main():
while True:
# যদি সামনের চোখ সবুজ শনাক্ত করে তাহলে ডানে ঘুরুন
যদি front_eye.detect(GREEN):
drivetrain.turn_for(RIGHT, 90, DEGREES)
# যদি সামনের চোখ নীল শনাক্ত করে তাহলে বামে ঘুরুন
যদি front_eye.detect(BLUE):
drivetrain.turn_for(LEFT, 90, DEGREES)
# যদি সামনের চোখ লাল শনাক্ত করে তাহলে থামুন
যদি front_eye.detect(RED):
drivetrain.stop()
# যদি সামনের চোখ কোনটিই শনাক্ত না করে তাহলে সামনের দিকে চালান
যদি front_eye.detect(NONE):
drivetrain.drive(FORWARD)
wait(5, MSEC)- মনে রাখবেন, VEXcode VR Python-এ ইন্ডেন্টেশন খুবই গুরুত্বপূর্ণ। প্রকল্প প্রবাহটি উদ্দেশ্য অনুসারে কার্যকর করার জন্য, ifবিবৃতিগুলিকে অসীম whileলুপের মধ্যে ইন্ডেন্ট করতে হবে। ifস্টেটমেন্টগুলি নির্বাচন করুন এবং 'Tab' টিপুন যাতে সেগুলিকে infinitewhileলুপের মধ্যে ইন্ডেন্ট করা যায়। সঠিকভাবে ইন্ডেন্ট করা হলে, আপনার প্রকল্পটি এইরকম দেখাবে:
def main():
while True:
# যদি সামনের চোখ সবুজ শনাক্ত করে তাহলে ডানে ঘুরুন
যদি front_eye.detect(GREEN):
drivetrain.turn_for(RIGHT, 90, DEGREES)
# যদি সামনের চোখ নীল শনাক্ত করে তাহলে বামে ঘুরুন
যদি front_eye.detect(BLUE):
drivetrain.turn_for(LEFT, 90, DEGREES)
# যদি সামনের চোখ লাল শনাক্ত করে তাহলে থামুন
যদি front_eye.detect(RED):
drivetrain.stop()
# যদি সামনের চোখ কোনটিই শনাক্ত না করে তাহলে সামনের দিকে চালান
যদি front_eye.detect(NONE):
drivetrain.drive(FORWARD)
wait(5, MSEC)- প্রকল্পে অসীম while লুপ যোগ করার সাথে সাথে, if স্টেটমেন্টের সমস্ত শর্ত বারবার পরীক্ষা করা হবে। ডিস্ক মেজ প্লেগ্রাউন্ড খুলুন এবং প্রকল্পটি চালান।
-
এই প্রকল্পটি চালু হলে, VR রোবটটি শুরু থেকে শেষ পর্যন্ত ডিস্ক মেজ প্লেগ্রাউন্ড এ নেভিগেট করবে। একবার ভিআর রোবট লাল রঙ শনাক্ত করলে, এটি গাড়ি চালানো বন্ধ করে দেবে।

সংক্ষেপে
- পূর্ববর্তী পাঠ থেকে প্রকল্পে, মধ্যে শর্তাবলী যদি বিবৃতি শুধুমাত্র একবার পরীক্ষা করা হয়। যেহেতু এর মধ্যে বিবৃতি শুধুমাত্র একবার চেক করা হয়েছিল, তাই VR রোবটটি চিরতরে এগিয়ে চলেছিল কারণ প্রকল্পের শুরুতে 'কোন রঙ নেই' শনাক্ত হওয়ার শর্তটি সত্য হিসাবে রিপোর্ট করা হয়েছিল।
- এখন যেহেতু অসীম while লুপ যোগ করা হয়েছে, if স্টেটমেন্টের প্রতিটি শর্ত বারবার পরীক্ষা করা হবে। while লুপের অবস্থা সর্বদা True হয়, এবং তাই while লুপের ভিতরের কোডটি সর্বদা কার্যকর হবে। প্রকল্পটি চলাকালীন এটি if বিবৃতির শর্তগুলি বারবার পরীক্ষা করবে।
- প্রকল্পের প্রবাহের সময়, যদি if বিবৃতির শর্ত সত্য হয়, তাহলে if বিবৃতির ভিতরের কমান্ডগুলি কার্যকর করা হয়। যদি if স্টেটমেন্টের শর্ত False হয়, তাহলে if স্টেটমেন্টের ভিতরের কমান্ডগুলি কার্যকর করা হবে না এবং প্রকল্পের প্রবাহ পরবর্তী কমান্ড পর্যন্ত অব্যাহত থাকবে। এটি VR রোবটকে একটি নির্দিষ্ট রঙ শনাক্ত করার পর বাঁক বা থামানোর মতো বিচ্ছিন্ন আচরণ করতে সক্ষম করে।
- যদি স্টেটমেন্ট অসীম যখনলুপের সাথে ব্যবহার করা হয় যাতে শর্তগুলি ক্রমাগত পরীক্ষা করা হয়।