গো গণনা

গো গণনা

মধ্যম

নির্দেশনা

গো বোর্ডে স্কোর হওয়া পয়েন্টগুলো গুনুন।

গো গেমে (যা baduk, igo, cờ vây এবং wéiqí নামেও পরিচিত) পয়েন্ট পাওয়া যায় আপনার পাথর দিয়ে খালি ছেদবিন্দুগুলো সম্পূর্ণভাবে ঘিরে ফেলার মাধ্যমে। একজন খেলোয়াড়ের ঘেরা ছেদবিন্দুগুলো তার এলাকা হিসেবে পরিচিত।

প্রতিটি খেলোয়াড়ের এলাকা হিসাব করুন। আপনি ধরে নিতে পারেন, শত্রুর এলাকায় আটকে পড়া যেকোনো পাথর ইতিমধ্যে বোর্ড থেকে সরিয়ে ফেলা হয়েছে।

নির্দিষ্ট একটি স্থানাঙ্ক যে এলাকার মধ্যে পড়ে, সেটি নির্ধারণ করুন।

একসাথে একাধিক খালি ছেদবিন্দু ঘেরা হতে পারে, আর ঘেরার জন্য শুধু আনুভূমিক ও উল্লম্ব প্রতিবেশী গণ্য হয়। নিচের চিত্রে যে পাথরগুলো গুরুত্বপূর্ণ সেগুলো "O" দিয়ে চিহ্নিত, আর যেগুলো গুরুত্বপূর্ণ নয় সেগুলো "I" (উপেক্ষিত) দিয়ে চিহ্নিত। খালি জায়গাগুলো খালি ছেদবিন্দু নির্দেশ করে।

+----+
|IOOI|
|O  O|
|O OI|
|IOI |
+----+

আরও নিখুঁতভাবে বলতে গেলে, একটি খালি ছেদবিন্দু কোনো খেলোয়াড়ের এলাকার অংশ হবে যদি তার সব প্রতিবেশী হয় ওই খেলোয়াড়ের পাথর, নয়তো ওই খেলোয়াড়ের এলাকার অংশ এমন খালি ছেদবিন্দু।

আরও তথ্যের জন্য দেখুন উইকিপিডিয়া বা Sensei's Library।

ইনপুট ফরম্যাট

গেম বোর্ড বোঝানো board প্যারামিটারটি স্ট্রিংয়ের একটি অ্যারে আকারে থাকে।

['  B  ', ' B B ', 'B W B', ' W W ', '  W  '];

স্ট্রিংয়ের প্রতিটি ক্যারেক্টার একটি সেল বোঝায়। একটি সেলের বৈধ মানগুলো হলো:

  • একটি স্পেস, যা একটি খালি সেল বোঝায়
  • B কালো খেলোয়াড়ের দখলে থাকা একটি সেল
  • W সাদা খেলোয়াড়ের দখলে থাকা একটি সেল

আউটপুট ফরম্যাট

getTerritory ফাংশনটি ২টি প্রপার্টিসহ একটি অবজেক্ট রিটার্ন করবে বলে আশা করা হয়:

  • owner টেরিটরির মালিক (NONE, BLACK বা WHITE)
  • territory টেরিটরির প্রতিটি সেলের স্থানাঙ্কের একটি অ্যারে।
{
    owner: 'BLACK',
    territory: [
        [0, 0],
        [0, 1],
        [1, 0],
    ],
}

getTerritories ফাংশনটি ৩টি প্রপার্টিসহ একটি অবজেক্ট রিটার্ন করবে বলে আশা করা হয়:

  • territoryBlack BLACK খেলোয়াড়ের মালিকানাধীন টেরিটরিগুলোর প্রতিটি সেলের স্থানাঙ্কের একটি অ্যারে
  • territoryWhite WHITE খেলোয়াড়ের মালিকানাধীন টেরিটরিগুলোর প্রতিটি সেলের স্থানাঙ্কের একটি অ্যারে
  • territoryNone দুই খেলোয়াড়ের কারও মালিকানাধীন নয় এমন টেরিটরিগুলোর প্রতিটি সেলের স্থানাঙ্কের একটি অ্যারে
{
    territoryBlack: [
        [0, 0],
        [0, 1],
    ],
    territoryWhite: [
        [3, 0],
        [3, 1],
    ],
    territoryNone: [],
}
GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি একটি নতুন উইন্ডো বা ট্যাবে খোলে
JavaScript Exercism

গো গণনা শুরু করতে প্রস্তুত?

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