Skip to content

Instantly share code, notes, and snippets.

@wagfim
Last active August 3, 2019 20:16
Show Gist options
  • Save wagfim/f81b41cdc450f08c7abf041e45e24a98 to your computer and use it in GitHub Desktop.
Save wagfim/f81b41cdc450f08c7abf041e45e24a98 to your computer and use it in GitHub Desktop.
public class Questao4 {
public static void main(String[] args) {
String jogoDaVelha[][] = {
{"X","O","X"},
{"O","X","O"},
{"O","X","X"}
};
if (isJogoCompleto(jogoDaVelha))
System.out.println("Sequencia completa.");
else
System.out.println("Nenhuma sequencia completa.");
}
public static boolean isJogoCompleto(String[][] matriz) {
//transforma as linhas em vetores
String[] linha0 = extrairLinha(matriz, 0);
String[] linha1 = extrairLinha(matriz, 1);
String[] linha2 = extrairLinha(matriz, 2);
//checa se alguma linha está completa (falso ou verdadeiro)
boolean statusLinha0 = checarSequencia(linha0);
boolean statusLinha1 = checarSequencia(linha1);
boolean statusLinha2 = checarSequencia(linha2);
//transforma as colunas em vetores
String[] coluna0 = extrairColuna(matriz, 0);
String[] coluna1 = extrairColuna(matriz, 1);
String[] coluna2 = extrairColuna(matriz, 2);
//checa se alguma coluna está completa
boolean statusColuna0 = checarSequencia(coluna0);
boolean statusColuna1 = checarSequencia(coluna1);
boolean statusColuna2 = checarSequencia(coluna2);
//transforma as diagonais em vetores
String[] diagonalPrimaria = extrairDiagonalPrincipal(matriz);
String[] diagonalSecundaria = extrairDiagonalSecundaria(matriz);
//verifica se alguma diagonal está completa
boolean statusPrimaria = checarSequencia(diagonalPrimaria);
boolean statusSecundaria = checarSequencia(diagonalSecundaria);
//verifica todas situações, se alguma linha estiver completa, isJogoCompleto() retorna verdadeiro
if (statusLinha0 | statusLinha1 | statusLinha2 | statusColuna0 | statusColuna1 | statusColuna2 | statusPrimaria | statusSecundaria) {
return true;
} else {
return false;
}
}
public static String[] extrairLinha(String[][] matriz, int numeroLinha) {
String[] linha = new String[3];
for (int i = 0; i < 3; i++) {
linha[i] = matriz[numeroLinha][i];
}
return linha;
}
public static String[] extrairColuna(String[][] matriz, int numeroColuna) {
String[] linha = new String[3];
for (int i = 0; i < 3; i++) {
linha[i] = matriz[i][numeroColuna];
}
return linha;
}
public static String[] extrairDiagonalPrincipal(String[][] matriz) {
String[] array = new String[matriz.length];
for (int i = 0; i < matriz.length; i++) {
for (int j = 0; j < matriz[i].length; j++) {
if (i == j)
array[i] = matriz[i][j];
}
}
return array;
}
public static String[] extrairDiagonalSecundaria(String[][] matriz) {
String[] array = new String[matriz.length];
for (int i = 0; i < matriz.length; i++) {
for (int j = 0; j < matriz[i].length; j++) {
if (i + j == matriz[i].length-1)
array[i] = matriz[i][j];
}
}
return array;
}
public static boolean checarSequencia(String[] linha) {
int sequencia = 1;
for (int i = 0; i < 1; i++) {
for (int j = i+1; j < linha.length; j++) {
if (linha[i].equals(linha[j]))
sequencia++;
else
break;
if (sequencia == 3)
return true;
}
}
return false;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment