Boa noite! Estou fazendo um exercício para fazer um programa que retorne o status de um jogo da velha:
0 – Jogo não iniciado: o tabuleiro está “vazio”, isto ´e sem pecas X e O;
1 – Jogo encerrado 1: o primeiro jogador (que usa as peças X) ´e o ganhador;
2 – Jogo encerrado 2: o segundo jogador (que usa as peças O) ´e o ganhador;
3 – Jogo encerrado 3: empate – todas as casas do tabuleiro estão preenchidas com X e
O, mas nenhum dos jogadores ganhou;
4 – Jogo já iniciado e em andamento: nenhuma das alternativas anteriores.
A saída precisa retornar um número inteiro (entre 0 (zero) e 4, correspondendo ao status do jogo do tabuleiro atual, conforme a lista de estados possíveis já apresentada).
Segue meu código até agora
public class JogoDaVelha {
static final char pecaX = 'X';
static final char pecaY = 'O';
static final char espacoVazio = ' ';
/*
Determina o status de uma partida de Jogo da Valha
Entrada:
tabuleiro - matriz 3x3 de caracteres representando uma partida valida de Jogo da Velha
Saída:
um inteiro contendo o status da partida (valores válidos de zero a quatro)
*/
static int verificaStatus(char[][] tabuleiro) {
int status = -1;
int linha;
int coluna;
int jogada;
int tab0 = 0;
int tab1 = 1;
int tab2 = 2;
int tab3 = 3;
int tab4 = 4;
char [][] tab0 = new char[3][3];
tabuleiro = tab0;
char [][] tab1 = new char[3][3];
tabuleiro = tab1;
char [][] tab2 = new char[3][3];
tabuleiro = tab2;
char [][] tab3 = new char[3][3];
tabuleiro = tab3;
char [][] tab4 = new char[3][3];
tabuleiro = tab4;
boolean ganhou = false;
while (!ganhou)
if (jogada %2==1) {
pecaX;
}
else {
pecaY;
}
boolean linhaValida = false;
if ( linha>= 1 && linha<=3) {
linhaValida = true;
}
else {
} ;
}
colunaValida = false;
if( coluna>= 1 && coluna<=3) {
colunaValida = true;
}
else {
}
linha --;
coluna --;
if(tabuleiro [linha][coluna] == pecaX || tabuleiro [linha][coluna] == pecaY) {
return = -1;
}
else {
tabuleiro [linha][coluna] = pecaX, pecaY;
jogada++;
}
if ( ( tabuleiro [0] [0] == espacoVazio && tabuleiro [0][1] == espacoVazio && tabuleiro [0][2] == espacoVazio)
|| (tabuleiro [1][0] == espacoVazio && tabuleiro [1][1] == espacoVazio && tabuleiro [1][2] == espacoVazio)
|| (tabuleiro [2][0] == espacoVazio && tabuleiro [2][1] == espacoVazio && tabuleiro [2][2] == espacoVazio)
|| (tabuleiro [0][0] == espacoVazio && tabuleiro [1][0] == espacoVazio && tabuleiro [2][0] == espacoVazio)
|| (tabuleiro [0][1] == espacoVazio && tabuleiro [1][1] == espacoVazio && tabuleiro [2][1] == espacoVazio)
|| (tabuleiro [0][2] == espacoVazio && tabuleiro [1][2] == espacoVazio && tabuleiro [2][2] == espacoVazio)
|| (tabuleiro [0][0] == espacoVazio && tabuleiro [1][1] == espacoVazio && tabuleiro [2][2] == espacoVazio))
{
status = tab0;
}
else {
status = tab4;
}
if (( tabuleiro [0] [0] == pecaX && tabuleiro [0][1] == pecaX && tabuleiro [0][2] == pecaX)
|| (tabuleiro [1][0] == pecaX && tabuleiro [1][1] == pecaX && tabuleiro [1][2] == pecaX)
|| (tabuleiro [2][0] == pecaX && tabuleiro [2][1] == pecaX && tabuleiro [2][2] == pecaX)
|| (tabuleiro [0][0] == pecaX && tabuleiro [1][0] == pecaX && tabuleiro [2][0] == pecaX)
|| (tabuleiro [0][1] == pecaX && tabuleiro [1][1] == pecaX && tabuleiro [2][1] == pecaX)
|| (tabuleiro [0][2] == pecaX && tabuleiro [1][2] == pecaX && tabuleiro [2][2] == pecaX)
|| (tabuleiro [0][0] == pecaX && tabuleiro [1][1] == pecaX && tabuleiro [2][2] == pecaX))
{
status = tab1;
}
else {
status = tab3;
}
if (( tabuleiro [0] [0] == pecaY && tabuleiro [0][1] == pecaY && tabuleiro [0][2] == pecaY)
|| (tabuleiro [1][0] == pecaY && tabuleiro [1][1] == pecaY && tabuleiro [1][2] == pecaY)
|| (tabuleiro [2][0] == pecaY && tabuleiro [2][1] == pecaY && tabuleiro [2][2] == pecaY)
|| (tabuleiro [0][0] == pecaY && tabuleiro [1][0] == pecaY && tabuleiro [2][0] == pecaY)
|| (tabuleiro [0][1] == pecaY && tabuleiro [1][1] == pecaY && tabuleiro [2][1] == pecaY)
|| (tabuleiro [0][2] == pecaY && tabuleiro [1][2] == pecaY && tabuleiro [2][2] == pecaY)
|| (tabuleiro [0][0] == pecaY && tabuleiro [1][1] == pecaY && tabuleiro [2][2] == pecaY))
{
status = tab2;
}
else {
status = tab3;
}
return status;
}