Порахуйте набрані очки на дошці для гри го.
У грі го (також відомій як baduk, igo, cờ vây та wéiqí) очки отримують, повністю оточуючи порожні перетини своїми каменями. Оточені перетини гравця називають його територією.
Обчисліть територію кожного гравця. Можна припустити, що будь-які камені, які опинилися в території супротивника, вже знято з дошки.
Визначте територію, яка містить указану координату.
Кілька порожніх перетинів можуть бути оточені одночасно, і для оточення враховуються лише горизонтальні та вертикальні сусіди. На наступній діаграмі камені, які мають значення, позначено «O», а камені, які не мають, позначено «I» (ігноровані). Порожні пробіли позначають порожні перетини.
+----+
|IOOI|
|O O|
|O OI|
|IOI |
+----+
Точніше кажучи, порожній перетин є частиною території гравця, якщо всі його сусіди - це або камені цього гравця, або порожні перетини, які належать до території цього гравця.
Докладніше можна дізнатися у Вікіпедії або в Sensei's Library.
Параметр board, який представляє ігрове поле, має формат масиву рядків тексту (англ. string).
[' 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: [],
}
Зареєструйтеся на Exercism, щоб вивчати й опановувати JavaScript, а також 37 концепцій159 вправ та справжнє наставництво від людей, і все це безкоштовно.