ট্র্যাক
/
Python
Python
/
অনুশীলনী
/
ফুলের ক্ষেত
ফুলের ক্ষেত

ফুলের ক্ষেত

মধ্যম

ভূমিকা

Flower Field হলো জনপ্রিয় গেম Minesweeper-এর একটি সহানুভূতিপূর্ণ পুনর্কল্পনা। গেমটির উদ্দেশ্য হলো সংখ্যাগত সংকেতের সাহায্যে বাগানের সব ফুল খুঁজে বের করা; এই সংকেতগুলো জানায় একটি ঘরের সঙ্গে সরাসরি (আনুভূমিক, উল্লম্ব বা কর্ণ বরাবর) কতগুলো ফুল সংলগ্ন আছে। ইতালি, জার্মানি, দক্ষিণ কোরিয়া, জাপান ও তাইওয়ানের Microsoft Windows-এর আঞ্চলিক সংস্করণগুলোতে Flower Field অন্তর্ভুক্ত হয়েছিল।

নির্দেশনা

আপনার কাজ হলো একটি সম্পূর্ণ ফ্লাওয়ার ফিল্ড বাগানের খালি ঘরগুলোতে ফুলের সংখ্যা যোগ করা। বাগানটি নিজেই একটি আয়তাকার বোর্ড, যা এমন ঘর দিয়ে গঠিত যেগুলো হয় খালি (' '), নয়তো একটি ফুল ('*')।

প্রতিটি খালি ঘরের জন্য তার সংলগ্ন (অনুভূমিক, উল্লম্ব ও তির্যকভাবে) ফুলের সংখ্যা গণনা করুন। খালি ঘরটির সংলগ্নে কোনো ফুল না থাকলে সেটি খালি রেখে দিন। অন্যথায় সেটিকে সংলগ্ন ফুলের সংখ্যা দিয়ে প্রতিস্থাপন করুন।

উদাহরণস্বরূপ, আপনি এইরকম একটি ৫ x ৪ বোর্ড পেতে পারেন (স্ক্রিনে দেখানোর জন্য এখানে খালি জায়গাগুলো '·' অক্ষর দিয়ে দেখানো হয়েছে):

·*·*·
··*··
··*··
·····

যেটিকে আপনার কোড এই রূপে রূপান্তর করবে:

1*3*1
13*31
·2*2·
·111·

এক্সেপশন মেসেজ

কখনো কখনো এক্সেপশন রেইজ করা প্রয়োজন হয়। এটি করার সময়, এররটির উৎস কী তা বোঝাতে সবসময় একটি অর্থপূর্ণ এরর মেসেজ যোগ করা উচিত। এটি আপনার কোডকে আরও পাঠযোগ্য করে তোলে এবং ডিবাগিংয়ে যথেষ্ট সাহায্য করে। যে ক্ষেত্রে আপনি জানেন এররের উৎসটি একটি নির্দিষ্ট টাইপ হবে, সেখানে আপনি বিল্ট-ইন এরর টাইপগুলির একটি রেইজ করার সিদ্ধান্ত নিতে পারেন, তবে তবুও একটি অর্থপূর্ণ মেসেজ যোগ করা উচিত।

এই নির্দিষ্ট অনুশীলনীতে রেইজ স্টেটমেন্ট ব্যবহার করে board() ফাংশন যখন ত্রুটিপূর্ণ ইনপুট পায়, তখন একটি ValueError "থ্রো" করতে হবে। পরীক্ষাগুলি কেবল তখনই পাস করবে যদি আপনি exceptionটি raise করেন এবং তার সঙ্গে একটি মেসেজও দেন।

একটি মেসেজ-সহ ValueError রেইজ করতে, মেসেজটি exception টাইপের একটি আর্গুমেন্ট হিসেবে লিখুন:

# when the board receives malformed input
raise ValueError("The board is invalid with current input.")
GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি একটি নতুন উইন্ডো বা ট্যাবে খোলে
Python Exercism

ফুলের ক্ষেত শুরু করতে প্রস্তুত?

Exercism-এ সাইন আপ করুন, Python ট্র্যাকের 17টি কনসেপ্ট146টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।

ডিপ ডাইভ: ফুলের ক্ষেত!

আমরা দেখব নেস্টেড for লুপ, বাউন্ড চেকিং সহজ করতে min/max-এর চতুর ব্যবহার, ফাংশনাল পাইপলাইন আর দ্বিমাত্রিক ম্যাট্রিক্সের ব্যবহার।