Cuenta los puntos anotados en un tablero de Go.
En el juego del Go (también conocido como baduk, igo, cờ vây y wéiqí) se ganan puntos al rodear por completo intersecciones vacías con tus piedras. Las intersecciones rodeadas de un jugador se conocen como su territorio.
Calcula el territorio de cada jugador. Puedes suponer que las piedras que hayan quedado atrapadas en territorio enemigo ya se han retirado del tablero.
Determina el territorio que incluye una coordenada especificada.
Se pueden rodear varias intersecciones vacías a la vez y, para rodear, solo cuentan los vecinos horizontales y verticales. En el siguiente diagrama, las piedras que importan están marcadas con «O» y las que no, con «I» (ignoradas). Los espacios vacíos representan intersecciones vacías.
+----+
|IOOI|
|O O|
|O OI|
|IOI |
+----+
Para ser más precisos, una intersección vacía forma parte del territorio de un jugador si todos sus vecinos son piedras de ese jugador o intersecciones vacías que forman parte del territorio de ese jugador.
Para más información, consulta Wikipedia o Sensei's Library.
El parámetro board, que representa el tablero de juego, tiene el formato de un array de strings.
[' B ', ' B B ', 'B W B', ' W W ', ' W '];
Cada carácter de un string representa una celda. Los valores válidos para una celda son:
un espacio en blanco que corresponde a una celda vacíaB una celda que pertenece al jugador negroW una celda que pertenece al jugador blancoSe espera que la función getTerritory devuelva un objeto con 2 propiedades:
owner El propietario del territorio (NONE, BLACK o WHITE)territory Un array de coordenadas que representa cada celda del territorio.{
owner: 'BLACK',
territory: [
[0, 0],
[0, 1],
[1, 0],
],
}
Se espera que la función getTerritories devuelva un objeto con 3 propiedades:
territoryBlack Un array de coordenadas que representa los territorios que pertenecen al jugador BLACK
territoryWhite Un array de coordenadas que representa los territorios que pertenecen al jugador WHITE
territoryNone Un array de coordenadas que representa los territorios que no pertenecen a ninguno de los dos jugadores{
territoryBlack: [
[0, 0],
[0, 1],
],
territoryWhite: [
[3, 0],
[3, 1],
],
territoryNone: [],
}
Regístrate en Exercism para aprender y dominar JavaScript con 37 conceptos159 ejercicios y mentoría humana real, todo gratis.