Cuenta los puntos anotados en un tablero de Go.
En el juego de 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 quedaron atrapadas en territorio enemigo ya se retiraron del tablero.
Determina el territorio que incluye una coordenada específica.
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, está en 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 le pertenece al jugador negroW una celda que le 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 le pertenecen al jugador BLACK
territoryWhite Un array de coordenadas que representa los territorios que le pertenecen al jugador WHITE
territoryNone Un array de coordenadas que representa los territorios que no le 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.