Os materiais didáticos aqui disponibilizados estão licenciados através de Creative Commons Atribuição-SemDerivações-SemDerivados CC BY-NC-ND. Você possui a permissão para visualizar e compartilhar, desde que atribua os créditos do autor. Não poderá alterá-los e nem utilizá-los para fins comerciais.
Atribuição-SemDerivações-SemDerivados
CC BY-NC-ND
Cursos / Informática para Internet / Programação Estruturada / Aula
O jogo da velha termina no momento em que todas as posições do tabuleiro são preenchidas ou quando um dos jogadores completa uma sequência de símbolos em uma linha, em uma coluna ou em uma diagonal. Para o jogo finalizar, é importante que, durante toda a partida, seja feita a verificação do status do jogo. Ou seja, o programa deve verificar se, antes de todas as casas serem preenchidas, já existe um vencedor. Esse controle é realizado pelo seguinte procedimento:
public static void check() {
int i = 0;
//verificando se houve vencedor na Horizontal:
for (i = 0; i < 3; i++) {
if (casa[i][0] == casa[i][1] && casa[i][0] == casa[i][2]) {
if (casa[i][0] == 1) win = 1;
if (casa[i][0] == 2) win = 2;
}
}
//verificando se houve vencedor na Vertical:
for (i = 0; i < 3; i++) {
if (casa[0][i] == casa[1][i] && casa[0][i] == casa[2][i]) {
if (casa[0][i] == 1) win = 1;
if (casa[0][i] == 2) win = 2;
}
}
//verificando se houve vencedor na Diagonal de cima para baixo:
if (casa[0][0] == casa[1][1] && casa[0][0] == casa[2][2]) {
if (casa[0][0] == 1) win = 1;
if (casa[0][0] == 2) win = 2;
}
//verificando se houve vencedor na Diagonal de baixo para cima:
if (casa[0][2] == casa[1][1] && casa[0][2] == casa[2][0]) {
if (casa[0][2] == 1) win = 1;
if (casa[0][2] == 2) win = 2;
}
}
Lembre-se de que a variável win foi criada no início do nosso código para armazenar o vencedor (que pode ser o valor inteiro 1 ou 2). Cada estrutura for, na rotina check, verifica se houve vencedor em uma situação específica. Todas as situações de vitórias possíveis são checadas (na vertical, na horizontal e na diagonal).
Versão 5.3 - Todos os Direitos reservados