Calcule o resultado de uma partida de Hex / Polygon.
O jogo de tabuleiro abstrato conhecido como Hex / Polygon / CON-TAC-TIX é bem simples nas regras, embora seja complexo na prática. Dois jogadores colocam pedras em um paralelogramo com casas hexagonais. Vence quem conectar suas pedras ao lado oposto primeiro. Os quatro lados do paralelogramo são divididos entre os dois jogadores (ou seja, um jogador fica com um lado e com o lado diretamente oposto a ele, e o outro jogador fica com os outros dois lados).
Seu objetivo é construir um programa que, dada uma representação simples de um tabuleiro, calcule o vencedor (ou a ausência dele). Repare que nem todas as partidas precisam ser equilibradas. (Por exemplo, os jogadores podem ter quantidades diferentes de peças, ou o tabuleiro do jogo pode ter largura e altura diferentes.)
Os tabuleiros se parecem com isto:
. O . X .
. X X O .
O O O X .
. X O X O
X O O O X
O "Jogador O" joga de cima para baixo, e o "Jogador X" joga da esquerda para a direita.
No exemplo acima, O fez uma conexão da esquerda para a direita, mas ninguém venceu, pois O não conectou em cima e embaixo.
Você pode notar que alguns casos de teste parecem injustos. No entanto, pode ser que essa injustiça seja legítima. Por exemplo, é comum dar a jogadores jovens ou iniciantes n peças extras em posições fixas do tabuleiro, então quantidades diferentes de peças podem aparecer em um jogo que, de resto, é totalmente legal.
De qualquer forma, este exercício só se preocupa em determinar um vencedor para um jogo que pode ter uma variedade de parâmetros, como o comprimento do tabuleiro e peças extras. Ele não se interessa por nenhum outro estado do jogo, como quem se moveu para onde, quando, ou de quem é a vez.
Então não se deixe confundir por esses jogos que parecem injustos.
Crie sua conta no Exercism para aprender e dominar Scala com 95 exercícios e mentoria humana de verdade, tudo de graça.