সমস্যা:
দাবাতে, পুনরাবৃত্তি দ্বারা অঙ্কন সম্পর্কে কিছুটা সুপরিচিত নিয়ম রয়েছে। যদি একই পজিশনটি 3 বার পুনরুক্ত করা হয় (বা আরও বেশি) তবে প্লেয়ারটি এমন পদক্ষেপ তৈরি করতে চায় যা এই পুনরাবৃত্তিটি একটি ড্র দাবি করতে পারে।
কখনও কখনও সালিসের পক্ষে এটি পাওয়া সহজ কাজ, যদি শেষ কয়েকটি চালগুলি কেবল খেলোয়াড়দের পিছনে এবং সামনের দিকে এগিয়ে যায়। কখনও কখনও এটি কম তুচ্ছ হয়, যখন টুকরোগুলি পুনরাবৃত্তি অবস্থানের মধ্যে উল্লেখযোগ্যভাবে স্থানান্তরিত হয়।
এই চ্যালেঞ্জের মধ্যে সমস্যাটি হ'ল দাবিযুক্ত অবস্থানটি পুনরাবৃত্তি দ্বারা অঙ্কিত করা হয় (3 বার বা তার বেশিবার দেখা হয়েছে) এবং দাবিযুক্ত অবস্থানটি পুনরাবৃত্তি দ্বারা আঁকানো না হলে একটি মিথ্যা মান, স্থানাঙ্কিত স্বরলিপিতে পদক্ষেপের একটি তালিকা দেওয়া হয় নীচে বর্ণিত হিসাবে বা আপনার পছন্দের কোনও স্বরলিপি (তবে আপনাকে পরীক্ষার কেসগুলি রূপান্তর করতে হবে)।
পজিশন কী?
একটি বাস্তব বিশ্বের দৃশ্যে, পজিশন কোনও জিনিস দ্বারা প্রভাবিত হবে যেমন কোনও খেলোয়াড় দুর্গ করতে পারে বা এন-পাসেন্ট সম্ভব কিনা; সমস্যার সমাধানে আপনার এগুলি বিবেচনা করা উচিত নয় । এই সমস্যায় বোর্ডের টুকরোগুলির কনফিগারেশন দ্বারা একটি অবস্থানকে সংজ্ঞায়িত করা হয়। সুতরাং, এই সমস্যার প্রয়োজনে, দুটি বোর্ডের প্রতিটি বর্গক্ষেত্র একই রঙের টুকরা একই ধরণের দ্বারা দখল করা হলে দুটি অবস্থান একই হতে দেখা যায়। উদাহরণস্বরূপ, সাদা নাইটগুলি স্কোয়ারগুলি অদলবদল করতে পারে এবং অন্য সমস্ত টুকরা যদি মানদণ্ডগুলি পূরণ করে তবে এটি একই অবস্থান হতে পারে।
একটি বৈধ স্বরলিপি দেখতে কেমন?
যদিও আমি সমন্বিত স্বরলিপিটি ব্যাখ্যা করতে যাব, আপনি চয়ন করেছেন এমন একটি স্বরলিপি সিস্টেমের মাধ্যমে আপনি ইনপুট নিতে পারবেন। প্রদত্ত যে:
- স্বরলিপি প্রতিটি আইটেম যে কোনও বা সমস্ত বর্ণনা: টুকরা / টুকরা জড়িত; চেক, চেকমেট, ডাবল চেক, চেকমেট বা অচলাবস্থা সরবরাহ করা হয়েছে কিনা; যদি এন-পাসেন্ট ক্যাপচার ঘটেছে; প্রাথমিক অবস্থান; চূড়ান্ত অবস্থান।
- আপনি পারে না আপনার স্বরলিপি পুনরাবৃত্তি সম্পর্কে তথ্য আছে।
সুতরাং যতক্ষণ এই মানদণ্ডগুলি পূরণ করা হয় আমি ততক্ষণ মেনে নিতে পেরে খুশি, যতক্ষণ আপনি নিজের উত্তরে উল্লেখ করেছেন ততক্ষণ আপনার নোটেশন সিস্টেম। এটি উদাহরণস্বরূপ 0 সূচকযুক্ত সারি, কলাম টিপলস বা আপনার প্রোগ্রামটির জন্য যা কিছু বোঝায় তা হতে পারে।
সমন্বয় নোটেশন
স্থানাঙ্ক স্বরলিপি হ'ল একটি স্বরলিপি যা স্থানাঙ্কের ব্যবস্থা হিসাবে বিশুদ্ধভাবে চলনগুলির বর্ণনা দেয়।
প্রথমে সেট থেকে প্রাথমিক স্থানাঙ্ক {A1-H8}
এবং তারপরে একই সেট থেকে গন্তব্য স্থানাঙ্ক হিসাবে একটি পদক্ষেপ বর্ণনা করা হয়। সুতরাং রাজার গাম্বিট দেখতে দেখতে (স্ট্রিংয়ের সংগ্রহ হিসাবে)
{"E2-E4","E7-E5","F2-F4"}
আমি বিশ্বাস করি যে এই সমস্যার জন্য ব্যবহার করা এটি সর্বোত্তম স্বরলিপি কারণ এটি বহিরাগত তথ্যের সাথে জড়িত নয় যেমন চেক হয়েছে কিনা বা কী ধরণের টুকরোগুলি চলছে moving স্বরলিপিটি আপনার পছন্দের হতে পারে তার আগে যেমন উল্লেখ করা হয়েছে, সুতরাং আপনি অন্য স্বরলিপি ব্যবহার করতে পারেন যেমন বীজগণিত স্বরলিপি বা আপনি এই স্বরলিপিটি মানিয়ে নিতে পারেন (যেমন ড্যাশগুলি সরিয়ে ফেলুন, বা তালিকার একটি তালিকা হিসাবে গ্রহণ করুন)
নিয়মাবলী:
- কোনও অবস্থান বা পদক্ষেপ বৈধ কিনা তা আপনাকে বিবেচনা করা উচিত নয় , কেবল এটির কারণে পুনরাবৃত্তি ঘটে
- আপনি ধরে নিতে পারেন যে কাস্টলিং এবং প্যাড প্রচার হবে না ।
- আপনার ইনপুট হিসাবে স্ট্রিংগুলির একটি তালিকা নেওয়া উচিত এবং চূড়ান্ত পদক্ষেপে তৃতীয় (বা আরও) পুনরাবৃত্তি ঘটেছে কিনা তার সাথে সম্পর্কিত সত্যবাদী বা মিথ্যা মান আউটপুট করা উচিত
- খেলাটি সর্বদা দাবা জন্য স্ট্যান্ডার্ড শুরুর অবস্থানে শুরু হয়। প্রাথমিক অবস্থান পুনরাবৃত্তির দিকে গুনতে পারে।
- চূড়ান্ত পদক্ষেপের দ্বারা পজিশনের পুনরাবৃত্তি না হলে পুনরাবৃত্তি দ্বারা অঙ্কন ঘটে না has
সাধারণ নিয়ম:
- এটি কোড-গল্ফ , তাই বাইট জেতে সংক্ষিপ্ত উত্তর।
কোড-গল্ফ ভাষাগুলি আপনাকে নন-কোডগলফিং ভাষার সাথে উত্তর পোস্ট করতে নিরুৎসাহিত করবেন না। 'যে কোনও' প্রোগ্রামিং ভাষার জন্য যতটা সম্ভব সংক্ষিপ্ত উত্তর নিয়ে আসার চেষ্টা করুন। - আপনার উত্তরটির জন্য ডিফল্ট আই / ও বিধিগুলি সহ মানক বিধিগুলি প্রযোজ্য , সুতরাং আপনাকে সঠিক পরামিতি এবং ফিরতি-টাইপ, সম্পূর্ণ প্রোগ্রাম সহ STDIN / STDOUT, ফাংশন / পদ্ধতি ব্যবহারের অনুমতি দেওয়া হবে। আপনার কল
- ডিফল্ট লুফোলগুলি নিষিদ্ধ।
- যদি সম্ভব হয় তবে দয়া করে আপনার কোডের (যেমন টিআইও ) একটি পরীক্ষার সাথে একটি লিঙ্ক যুক্ত করুন ।
- এছাড়াও, আপনার উত্তরের জন্য একটি ব্যাখ্যা যুক্ত করা অত্যন্ত প্রস্তাবিত।
পরীক্ষার কেস
আপনার জন্য সত্যবাদী মানগুলি ফেরত দেওয়া উচিত:
{"B1-C3","B8-C6","C3-B1","C6-B8","B1-C3","B8-C6","C3-B1","C6-B8"}
{"B1-C3","B8-C6","C3-B1","C6-B8","B1-C3","B8-C6","C3-B1","C6-B8","B1-C3","B8-C6","C3-B1","C6-B8"}
{"B1-C3","B8-C6","D2-D4","D7-D5","D1-D3","D8-D6","C3-B1","C6-B8","B1-C3","B8-C6","D3-D1","D6-D8","D1-D3","D8-D6"}
{"D2-D4","B8-C6","E2-E4","C6-D4","D1-E2","D4-E6","E2-F3","E6-D4","F3-D1","D4-C6","D1-E2","C6-D4","E1-D1","D4-C6","D1-E1","C6-D4"}
{"B1-C3","B8-C6","C3-B1","C6-B8","B1-C3","B8-C6","C3-B1","C6-B8","B1-C3","B8-C6","C3-B1","C6-B8","B1-C3"}
এবং এর জন্য ভুয়া মানগুলি:
{}
{"E2-E4","E7-E5","F2-F4"}
{"B1-C3","B8-C6","C3-B1","C6-B8","B1-C3","B8-C6","C3-B1","C6-B8","F2-F4","F7-F5"}
{"E2-E4","E7-E5","G1-F3","B8-C6","F1-C4","G8-F6","F3-G5","D7-D5","E4-D5","F6-D5","G5-F7"}
{"D2-D4","B8-C6","E2-E4","C6-D4","D1-E2","D4-C6","E2-D1","C6-D4","D1-E2","D4-C6","E2-D1"}
{"B1-C3","B8-C6","C3-B5","C6-B4","B5-D4","B4-D5","D4-C6","D5-C3","C6-B8","C3-B1","B8-C6","B1-C3","C6-B8","C3-B1"}
{"E2-E4","E7-E5","D1-E2","E8-E7","E1-D1","D8-E8","E2-E1","E7-D8","E1-E2","E8-E7","E2-E1","E7-E8"}
C6-B8
প্রাথমিক অবস্থানটি তিনবার ঘটেছে।