Introdução
O Nine Mens's Morris (também chamado Mills) é um jogo de tabuleiro para dois jogadores, que é jogado no seguinte tabuleiro (imagem retirada da página da Wikipedia vinculada):
Cada jogador tem 9 homens, coloridos em preto e branco. As regras concretas não são importantes para esse desafio, mas verifique a página da Wikipedia se você estiver interessado.
O desafio
Dada uma grade como entrada, o que representa um certo boardstate, a saída do moinho de contagem total mcom 0<=m<=8.
Três homens da mesma cor formam um moinho quando estão em uma linha reta de pontos conectados. b2a f2não é um moinho, uma vez que os homens são de cor diferente. Também d2para d5não formar um moinho desde os três pontos têm de ser ligados.
A placa na imagem acima contém dois moinhos, por exemplo. Um de f2para f6e um de e3para e5.
Entrada
A placa é representada como uma grade 2D com 24 pontos, que são conectados como mostrado na imagem de exemplo acima. O exemplo usa letras de a-gpara as colunas e números 1-7para as linhas, mas você pode escolher qualquer formato de entrada razoável, desde que mapeie 24 coordenadas exclusivas para um dos seguintes estados:
- Esvaziar
- Lomografo: black
- Tirada por branco
A representação do concreto depende de você; você não está restrito a "b" ou "w" para as cores.
Além disso, sua entrada pode não conter nenhuma informação adicional.
Notas Adicionais
- Você não precisa mapear os pontos por nenhum tipo de valor. Se você deseja pegar a entrada como uma matriz 2D, tudo bem também. Mas lembre-se de que nem todos os pontos são usados e que você deve considerar as conexões entre eles.
- A entrada pode estar vazia; nesse caso, você deve gerar zero (placa vazia -> sem fresas).
- Como cada jogador tem 9 homens, a entrada nunca conterá mais de 18 pontos conquistados.
- Você pode omitir pontos vazios na entrada e, portanto, apenas os pontos de entrada que são capturados.
- A entrada pode ser solicitada de qualquer forma. Você não pode confiar em um pedido específico.
- Você pode assumir que a entrada sempre será válida. Isso significa que não haverá mais de 9 homens de cada cor e que cada ponto será único.
Regras
- Esclareça qual formato de entrada você usa em sua solução. É altamente recomendável fornecer um exemplo de execução do seu programa.
- Função ou programa completo permitido.
- Regras padrão para entrada / saída.
- Aplicam-se brechas padrão .
- Isso é código-golfe , portanto, a menor contagem de bytes vence. O desempatador é uma inscrição anterior.
Casos de teste
O formato de entrada aqui é uma lista de tuplas com as coordenadas, como no exemplo acima, como primeiro elemento e o estado do segundo elemento do ponto. Um ponto tomado por branco é marcado como "w" e um ponto tomado por preto como "b". Todos os outros pontos são deixados de fora e estão vazios.
[("a4", "w"), ("b2", "b"), ("b4", "b"), ("c4", "b"), ("d1", "w") , ("d2", "w"), ("e3", "w"), ("e4", "w"), ("e5", "w"), ("f2", "b") , ("f4", "b"), ("f6", "b"), ("g4", "w")] -> 2
[("a1", "b"), ("a4", "b"), ("a7", "b"), ("b4", "b"), ("c4", "b") , ("d3", "w"), ("d2", "w"), ("d1", "w")] -> 3
[] -> 0
[("b4", "b"), ("a4", b "), (" c4 ", w")] -> 0
[("b4", "b"), ("a4", b "), (" c4 ", b")] -> 1
[("a1", "b"), ("a4", "b"), ("a7", "b"), ("b2", "b"), ("b4", "b") , ("b6", "b"), ("c3", "b"), ("c4", "b"), ("c5", "b"), ("e3", "w") , ("e4", "w"), ("e5", "w"), ("f2", "w"), ("f4", "w"), ("f6", "w") , ("g1", "w"), ("g4", "w"), ("g7", "w")] -> 8
Feliz codificação!
d3e d5não está conectado. Regras dizem: Three men of the same color form a mill when they are in a straight row of connected points.. Adicionei alguns exemplos nesta seção para deixar claro, obrigado pelo comentário!
