4. Verificar o vencedor

Recursos do Minicurso

Mostrando um Vencedor

Escreva um método getWinner(String[] curBoard) que retorne o vencedor em uma String com um array de entrada do tabuleiro atual do jogo.

Existem várias formas de escrever esse método.

Tente primeiro no Replit a seguir; ele vai dizer se seu método está escrito corretamente! Abrir Replit

Ideias/Dicas para escrever o método getWinner()

  • Concatene as Strings nas 3 posições que formam uma linha horizontal, vertical ou diagonal.
  • Use equals() para verificar se cada uma das Strings concatenadas é "XXX" ou "OOO" para definir um vencedor. (Você também pode criar outro método que verifique se uma String de entrada é "XXX" ou "OOO").
  • Se todos os espaços no array estiverem preenchidos (um for loop pode ajudar) e não houver vencedor, o jogo termina em empate.

Chamando o Método do Vencedor

No main(), chame o método getWinner() depois da linha de código onde você coloca a jogada do jogador, "X".

Verifique se o jogo deve continuar (quando não há vencedor nem empate).

Se houver um vencedor ou empate, imprima o tabuleiro final e o resultado do jogo! E adicione a linha de código break;, que faz o programa sair do while loop!

Repetir o Passo Acima

No main(), repita o código do passo anterior (verificar vencedor e imprimir resultado se necessário) depois que você colocar a jogada do computador, "O".

Fechar o Objeto Scanner

Fora do laço while, adicione o código sc.close() para fechar o objeto Scanner e parar de ler novas entradas.

É uma boa prática fechar o objeto Scanner se não vamos mais receber entradas depois de dar break no while loop!

Tudo Pronto :)!

Agora você deve ter um jogo da velha funcionando! Você deve estar muito orgulhoso(a) por terminar este workshop! Bom trabalho 👍!

Como resumo, essa deve ser a estrutura do seu código:
Jogo da Velha: Seu Projeto Java. void main(String args[]) que lê as entradas do jogador, processa entradas e apresenta cada rodada do jogo ou imprime o vencedor. void printBoard(String[] curBoard) é um método para imprimir o tabuleiro. int getComputerMove(String[] curBoard) retorna aleatoriamente uma jogada disponível para o computador. String getWinner(String[] curBoard) retorna o vencedor do jogo/EMPATE ou '' se o jogo deve continuar.