Olá! Estou fazendo um projeto em JAVA para faculdade de jogo da velha. Existe uma classe tabuleiro onde as jogadas serão feitas pelo jogador(classe) e pelo computador (classe), obviamente as jogadas terão que ser feitas no mesmo objeto do tipo tabuleiro.
O que acontece é que eu não consigo criar essa interação entre jogador e tabuleiro, pois não consigo passar a minha matriz que pertence a classe tabuleiro para a classe jogador, onde tem o método jogar. Esse método jogar precisa da matriz para que possa ocorrer a interação(manipular a matriz).
Em resumo é que eu não consigo referenciar uma matriz em outra classe.
Já tentei de várias formas, já pesquisei, assisti vídeos, mas nada trata desse problema em específico. Ps: A classe computador não foi implementada ainda, mas se eu conseguir resolver esse problema na classe jogador fazer o mesmo na classe computador é mais fácil.
O código está sem nenhuma tentativa de resolver esse problema para que fique mais fácil o entendimento.
package lab;
public class Tabuleiro {
protected String tabuleiro[][] = new String[3][3];
public Tabuleiro() {
tabuleiro[0][0] = "A1";
tabuleiro[0][1] = "A2";
tabuleiro[0][2] = "A3";
tabuleiro[1][0] = "B1";
tabuleiro[1][1] = "B2";
tabuleiro[1][2] = "B3";
tabuleiro[2][0] = "C1";
tabuleiro[2][1] = "C2";
tabuleiro[2][2] = "C3";
}
public String[][] getTabuleiro() {
return tabuleiro;
}
public void setTabuleiro(String[][] tabuleiro) {
this.tabuleiro = tabuleiro;
}
public void Mostrar() {
for (int i = 0; i < tabuleiro.length; i++) {
for (int j = 0; j < tabuleiro[i].length; j++) {
System.out.print(tabuleiro[i][j] + " ");
}
System.out.println();
}
System.out.println();
}
public void VisualizarJogo() {
tabuleiro[0][0] = "A1";
tabuleiro[0][1] = "A2";
tabuleiro[0][2] = "A3";
tabuleiro[1][0] = "B1";
tabuleiro[1][1] = "B2";
tabuleiro[1][2] = "B3";
tabuleiro[2][0] = "C1";
tabuleiro[2][1] = "C2";
tabuleiro[2][2] = "C3";
for (int i = 0; i < tabuleiro.length; i++) {
for (int j = 0; j < tabuleiro[i].length; j++) {
System.out.print(tabuleiro[i][j] + " ");
}
System.out.println();
}
System.out.println();
}
}
package lab;
import java.util.Scanner;
public class Jogador extends Tabuleiro {
public void Jogar(){
Scanner scan = new Scanner(System.in);
System.out.print("Escolha sua jogada: ");
String jogada = scan.nextLine();
switch (jogada ) {
case "A1":
if (tabuleiro[0][0].equals("O") || tabuleiro[0][0].equals("X")) {
System.out.println("Esta jogada já foi efetuada.Faça outra jogada! JOGUE NOVAMENTE");
System.out.println();
Jogar();
} else {
tabuleiro[0][0] = "O";
}
break;
case "A2":
if (tabuleiro[0][1].equals("O") || tabuleiro[0][1].equals("X")) {
System.out.println("Esta jogada já foi efetuada.Faça outra jogada! JOGUE NOVAMENTE");
System.out.println();
Jogar();
} else {
tabuleiro[0][1] = "O";
}
break;
case "A3":
if (tabuleiro[0][2].equals("O") || tabuleiro[0][2].equals("X")) {
System.out.println("Esta jogada já foi efetuada.Faça outra jogada! JOGUE NOVAMENTE");
System.out.println();
Jogar();
} else {
tabuleiro[0][2] = "O";
}
break;
case "B1":
if (tabuleiro[1][0].equals("O") || tabuleiro[1][0].equals("X")) {
System.out.println("Esta jogada já foi efetuada.Faça outra jogada! JOGUE NOVAMENTE");
System.out.println();
Jogar();
} else {
tabuleiro[1][0] = "O";
}
break;
case "B2":
if (tabuleiro[1][1].equals("O") || tabuleiro[1][1].equals("X")) {
System.out.println("Esta jogada já foi efetuada.Faça outra jogada! JOGUE NOVAMENTE");
System.out.println();
Jogar();
} else {
tabuleiro[1][1] = "O";
}
break;
case "B3":
if (tabuleiro[1][2].equals("O") || tabuleiro[1][2].equals("X")) {
System.out.println("Esta jogada já foi efetuada.Faça outra jogada! JOGUE NOVAMENTE");
System.out.println();
Jogar();
} else {
tabuleiro[1][2] = "O";
}
break;
case "C1":
if (tabuleiro[2][0].equals("O") || tabuleiro[2][0].equals("X")) {
System.out.println("Esta jogada já foi efetuada.Faça outra jogada! JOGUE NOVAMENTE");
System.out.println();
Jogar();
} else {
tabuleiro[2][0] = "O";
}
break;
case "C2":
if (tabuleiro[2][1].equals("O") || tabuleiro[2][1].equals("X")) {
System.out.println("Esta jogada já foi efetuada.Faça outra jogada! JOGUE NOVAMENTE");
System.out.println();
Jogar();
} else {
tabuleiro[2][1] = "O";
}
break;
case "C3":
if (tabuleiro[2][2].equals("O") || tabuleiro[2][2].equals("X")) {
System.out.println("Esta jogada já foi efetuada.Faça outra jogada! JOGUE NOVAMENTE");
System.out.println();
Jogar();
} else {
tabuleiro[2][2] = "O";
}
break;
default:
System.out.println("ATENÇÃO: JOGUE APENAS CONFORME OS DADOS FORNECIDOS NA TABELA. JOGUE NOVAMENTE! ");
Jogar();
break;
}
}
}