Escreva um programa para jogar o jogo Connect 4 . Você recebe o estado do tabuleiro como entrada e deve decidir em qual coluna colocar sua peça para obter 4 seguidas (horizontal, vertical ou diagonal) ou impedir que seu oponente faça o mesmo.
O tabuleiro é uma matriz de 6x7, onde cada célula pode estar vazia (''), conter sua peça ('X') ou a peça do seu oponente ('O'). Um quadro de exemplo:
O
XX X
XOX OO
XOO OXO
OXXOXXO
XOXOXOX
Você gostaria de jogar na coluna 3 (as colunas são de 0 a 6, numeradas da esquerda) para a vitória na diagonal. Então você produz:
3
Seu código deve gerar um número de coluna e deve atender aos seguintes critérios:
- Você não pode jogar em uma coluna que já possui 6 peças.
- Se houver pelo menos uma jogada vencedora, você deve jogar uma delas.
- Se você pode impedir que seu oponente vença na próxima jogada, você deve fazê-lo.
Observe que o jogo ideal não é necessário, apenas que você ganha imediatamente ou impede a vitória imediata do seu oponente. Se seu oponente tiver mais de uma maneira de vencer, você não precisará bloquear nenhuma delas.
Você recebe a placa na entrada padrão e deve imprimir um número de coluna na qual deseja reproduzir na saída padrão. É garantido que o conselho seja bem formado (sem buracos, pelo menos um movimento possível) e que ainda não tenha ganho para nenhum dos jogadores.
O menor código vence.
Exemplo 1
X
O
X
O
OOO X
XXX O
Você deve jogar a coluna 0 ou 4 para a vitória.
Exemplo 2
X
X X
O O
XOX XO
XXO XOX
XXO XXO
Você deve jogar a coluna 3 para bloquear a vitória imediata do seu oponente.
Exemplo 3
X
XO
OX O
XO XX
XXO OOO
OOO XXO
Você não pode vencer ou impedir que seu oponente vença, portanto, você pode jogar qualquer coluna de 1 a 6 (0 está cheio).
Exemplo 4
X
O
X
OOO
XOX
OXOX
Você não pode jogar na coluna 3, pois isso permite que seu oponente ganhe imediatamente. Você pode jogar nas colunas 1-2 ou 4-6.