ট্র্যাক
/
Python
Python
/
অনুশীলনী
/
রানির আক্রমণ
রানির আক্রমণ

রানির আক্রমণ

সহজ

নির্দেশনা

দাবা বোর্ডে দুইটি রানির অবস্থান দেওয়া থাকলে, তারা একে অপরকে আক্রমণ করার মতো অবস্থানে আছে কি না তা নির্ণয় করুন।

দাবার খেলায় একটি রানি একই সারি, কলাম বা কর্ণে থাকা গুটি আক্রমণ করতে পারে।

দাবা বোর্ডকে ৮ × ৮ অ্যারে হিসেবে প্রকাশ করা যায়।

তাই যদি আপনাকে বলা হয় যে সাদা রানির অবস্থান c5 (শূন্য-সূচক কলাম ২, সারি ৩) এবং কালো রানির অবস্থান f2 (শূন্য-সূচক কলাম ৫, সারি ৬), তাহলে আপনি বুঝবেন বিন্যাসটি এরকম:

দুইটি রানিসহ একটি দাবা বোর্ড। c5-তে থাকা রানি থেকে বেরোনো তিরগুলো কলাম, সারি এবং কর্ণ বরাবর সম্ভাব্য আক্রমণের দিক নির্দেশ করে।

আপনি এও উত্তর দিতে পারবেন যে রানিরা একে অপরকে আক্রমণ করতে পারে কি না। এ ক্ষেত্রে উত্তরটি হবে হ্যাঁ, তারা পারে, কারণ দুইটি গুটি একই কর্ণে অবস্থান করে।

স্বীকৃতি

দাবা বোর্ডের ছবিটি তৈরি করেছেন habere-et-dispertire, LaTeX এবং Ulrike Fischer-এর chessboard package ব্যবহার করে।

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

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

এই নির্দিষ্ট অনুশীলনীতে, Queen কনস্ট্রাক্টরে ঋণাত্মক সংখ্যা, অথবা বৈধ সারি বা কলাম নয় এমন সংখ্যা পাস করা হলে raise স্টেটমেন্ট দিয়ে ValueErrors "থ্রো" করতে হবে। আপনি যদি exception raise করেন এবং তার সঙ্গে একটি মেসেজও দেন, তবেই টেস্টগুলো পাস করবে। এছাড়াও, can_attack() মেথডে পাস করা দুটি রানি যদি একই অবস্থানে থাকে, তাহলেও আপনার একটি ValueError raise করা উচিত।

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

# if the row parameter is negative
raise ValueError("row not positive")

# if the row parameter is not on the defined board
raise ValueError("row not on board")

# if the column parameter is negative
raise ValueError("column not positive")

# if the column parameter is not on the defined board
raise ValueError("column not on board")

# if both the queens are on the same location
raise ValueError("Invalid queen position: both queens in the same square")
GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি একটি নতুন উইন্ডো বা ট্যাবে খোলে
Python Exercism

রানির আক্রমণ শুরু করতে প্রস্তুত?

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