Conta i punti segnati su un tavoliere da Go.
Nel gioco del go (noto anche come baduk, igo, cờ vây e wéiqí) si guadagnano punti circondando completamente le intersezioni vuote con le proprie pietre. Le intersezioni circondate di un giocatore sono note come suo territorio.
Calcola il territorio di ciascun giocatore. Puoi dare per scontato che tutte le pietre rimaste bloccate in territorio nemico siano già state rimosse dal tavoliere.
Determina il territorio che include una coordinata specificata.
Più intersezioni vuote possono essere circondate contemporaneamente. Per circondare contano solo i vicini orizzontali e verticali. Nel diagramma seguente le pietre che contano sono contrassegnate con «O» e quelle che non contano con «I» (ignorate). Gli spazi vuoti rappresentano intersezioni vuote.
+----+
|IOOI|
|O O|
|O OI|
|IOI |
+----+
Per essere più precisi, un'intersezione vuota fa parte del territorio di un giocatore se tutti i suoi vicini sono pietre di quel giocatore oppure intersezioni vuote che fanno parte del territorio di quel giocatore.
Per maggiori informazioni vedi Wikipedia o Sensei's Library.
Il parametro board, che rappresenta il tabellone di gioco, ha il formato di un array di stringhe.
[' B ', ' B B ', 'B W B', ' W W ', ' W '];
Ogni carattere di una stringa rappresenta una cella. I valori validi per una cella sono:
uno spazio che corrisponde a una cella vuotaB una cella di proprietà del giocatore neroW una cella di proprietà del giocatore biancoCi si aspetta che la funzione getTerritory restituisca un oggetto con 2 proprietà:
owner Il proprietario del territorio (NONE, BLACK o WHITE)territory Un array di coordinate che rappresenta ogni cella del territorio.{
owner: 'BLACK',
territory: [
[0, 0],
[0, 1],
[1, 0],
],
}
Ci si aspetta che la funzione getTerritories restituisca un oggetto con 3 proprietà:
territoryBlack Un array di coordinate che rappresenta i territori di proprietà del giocatore BLACK
territoryWhite Un array di coordinate che rappresenta i territori di proprietà del giocatore WHITE
territoryNone Un array di coordinate che rappresenta i territori che non appartengono a nessuno dei due giocatori{
territoryBlack: [
[0, 0],
[0, 1],
],
territoryWhite: [
[3, 0],
[3, 1],
],
territoryNone: [],
}
Iscriviti a Exercism per imparare e padroneggiare JavaScript con 37 concetti159 esercizi e il mentoring di persone reali, tutto gratis.