Connect

Connect

Nehéz

Utasítások

Számítsd ki egy Hex / Polygon játék eredményét.

A Hex / Polygon / CON-TAC-TIX néven ismert absztrakt táblajáték szabályai meglehetősen egyszerűek, a gyakorlatban mégis összetettek. Két játékos köveket helyez el egy hatszögletű mezőkből álló paralelogrammán. Az a játékos nyer, aki elsőként összeköti a köveit a szemközti oldallal. A paralelogramma négy oldala oszlik meg a két játékos között (azaz az egyik játékos megkapja az egyik oldalt és a vele közvetlenül szemközti oldalt, a másik játékos pedig a másik kettőt).

A célod, hogy olyan programot készíts, amely egy tábla egyszerű reprezentációja alapján kiszámítja a győztest (vagy annak hiányát). Vedd figyelembe, hogy nem minden játéknak kell „fairnek” lennie. (Például a játékosoknak eltérő számú bábujuk lehet, vagy a tábla szélessége és magassága különbözhet.)

A táblák így néznek ki:

. O . X .
 . X X O .
  O O O X .
   . X O X O
    X O O O X

Az O játékos fentről lefelé, az X játékos balról jobbra játszik. A fenti példában O balról jobbra összeköttetést hozott létre, de senki sem nyert, mivel O nem kötötte össze a felső és az alsó oldalt.

Kurzusspecifikus utasítások

Előfordulhat, hogy néhány teszteset igazságtalannak tűnik. Lehet azonban, hogy jogosan tűnik annak. Például gyakori, hogy a fiatal vagy kezdő játékosoknak plusz n bábut adnak a tábla meghatározott pozícióin, így egyébként teljesen szabályos játszmában is eltérhet a bábuk száma.

Mindenesetre ez a feladat csak a győztes meghatározásával törődik egy olyan játékban, amelynek többféle paramétere lehet, például a tábla hossza és a plusz bábuk. Nem érdekli a játék semmilyen más állapota, például hogy ki hova lépett, mikor, vagy hogy kin van a sor.

Szóval ne lepődj meg azokon a látszólag igazságtalan játszmákon.

Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Scala Exercism

Készen állsz elkezdeni a(z) Connect feladatot?

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