Kurzusok
/
JavaScript
JavaScript
/
Feladatok
/
Goszámlálás
Goszámlálás

Goszámlálás

Közepes

Utasítások

Számold meg a megszerzett pontokat egy Go-táblán.

A Go játékában (amely baduk, igo, cờ vây és wéiqí néven is ismert) pontokat úgy szerezhetsz, hogy a köveiddel teljesen körbeveszel üres metszéspontokat. Egy játékos körbevett metszéspontjait a területének nevezzük.

Számítsd ki minden játékos területét. Felteheted, hogy az ellenséges területen rekedt kövek már lekerültek a tábláról.

Határozd meg azt a területet, amely tartalmaz egy megadott koordinátát.

Egyszerre több üres metszéspont is körbevehető, és a körbevételnél csak a vízszintes és függőleges szomszédok számítanak. A következő ábrán a számító kövek „O” jelölést kaptak, a nem számítók pedig „I” jelölést (figyelmen kívül hagyott). Az üres helyek az üres metszéspontokat jelentik.

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

Pontosabban: egy üres metszéspont akkor része egy játékos területének, ha az összes szomszédja vagy az adott játékos köve, vagy olyan üres metszéspont, amely az adott játékos területének része.

További információért nézd meg a Wikipédiát vagy a Sensei's Library oldalt.

Bemeneti formátum

A board paraméter, amely a játéktáblát képviseli, stringek tömbjének formátumában van.

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

A string minden karaktere egy cellát jelöl. A cella érvényes értékei:

  • egy szóköz, amely egy üres cellának felel meg
  • B a fekete játékos tulajdonában lévő cella
  • W a fehér játékos tulajdonában lévő cella

Kimeneti formátumok

A getTerritory függvénynek egy 2 tulajdonsággal rendelkező objektumot kell visszaadnia:

  • owner A terület tulajdonosa (NONE, BLACK vagy WHITE)
  • territory Egy koordinátákból álló tömb, amely a terület minden celláját képviseli.
{
    owner: 'BLACK',
    territory: [
        [0, 0],
        [0, 1],
        [1, 0],
    ],
}

A getTerritories függvénynek egy 3 tulajdonsággal rendelkező objektumot kell visszaadnia:

  • territoryBlack Egy koordinátákból álló tömb, amely a BLACK játékos tulajdonában lévő területeket képviseli
  • territoryWhite Egy koordinátákból álló tömb, amely a WHITE játékos tulajdonában lévő területeket képviseli
  • territoryNone Egy koordinátákból álló tömb, amely egyik játékos tulajdonában sem lévő területeket képviseli
{
    territoryBlack: [
        [0, 0],
        [0, 1],
    ],
    territoryWhite: [
        [3, 0],
        [3, 1],
    ],
    territoryNone: [],
}
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
JavaScript Exercism

Készen állsz elkezdeni a(z) Goszámlálás feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) JavaScript nyelvet 37 fogalom159 feladat segítségével, valódi emberi mentorálással, mindez ingyen.