olá pessoal, estou com um problema aqui com instancia, não estou conseguindo resolver.
eu instancio um objeto do tipo jogador no main e na classe inimigo, com isso ele fica sendo dois jogadores diferentes.porem, esse foi o uico jeito que eu conseguir acessar o métodp inimogo(ver abaixo).como que eu posso fazer com que instanciando um objeto do tipo inimigo ele reconheça que eh apenas um jogador?
segue abaixo as duas classes.
public class ProgramaPrincipal {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Jogador j = new Jogador();
GerenciadorDePerguntas gp = new GerenciadorDePerguntas();
Erro e = new Erro();
Inimigo i;
int opc;
String nome = JOptionPane.showInputDialog("digite o nome do jogador");
j.setNome(nome);
JOptionPane.showMessageDialog(null, "Seja bem vindo " +nome+"\nPontos: " +j.getPontos()+ "\nLife: "+ j.getLife());
do{
//Pergunta p = new Pergunta();
opc = Integer.parseInt(JOptionPane.showInputDialog("1 - Desafiar algum inimigo?\n 2 - Ver Pontuação?\n 3 - Cadastrar Pergunta\n 4 - Listar Perguntas\n5 - Sair do Jogo"));
switch(opc){
case 1:
opc = Integer.parseInt(JOptionPane.showInputDialog("Com quem você quer lutar?\n 1-Professor de Matematica\n 2-Professor de Portugues"));
if(opc==1){
}
if(opc==2){
i = new Inimigo();
i.enfrentarInimigo("portugues");
break;
}
break;
case 2:
JOptionPane.showMessageDialog(null, "Pontos; " +j.getPontos() + "Life: " + j.getLife());
break;
case 3:
/*String nivel = JOptionPane.showInputDialog("Digite o nivel");
String disciplina= JOptionPane.showInputDialog("Digite a disciplina");
String pergunta = JOptionPane.showInputDialog("Digite a pergunta");
resposta = JOptionPane.showInputDialog("Digite a resposta");
p.setDisciplina(disciplina);
p.setNivel(nivel);
p.setPergunta(pergunta);
//p.setResposta(resposta);
gp.cadastrarPergunta(p);*/
break;
case 4:
}
}while(opc!=5);
}
}
public class Inimigo {
private int life = 10;
Jogador j = new Jogador();
GerenciadorDePerguntas gp = new GerenciadorDePerguntas();
Erro e = new Erro();
ArrayList <Pergunta> listaPerguntas = new ArrayList <Pergunta>();
int opc;
String nome,resposta;
public int getLife(){
return life;
}
public void diminuirLife(){
this.life -=1;
}
public void enfrentarInimigo(String disciplina){
if(getLife()==0){
JOptionPane.showMessageDialog(null,"professor derrotado" );
}
else{
JOptionPane.showMessageDialog(null,"Batalha: \n " +j.getNome() + " X Professor de " +disciplina );
listaPerguntas = gp.lerPerguntas(disciplina);
do{
for(Pergunta p1: listaPerguntas){
resposta = JOptionPane.showInputDialog(p1.getPergunta());
if(e.verificaErro(resposta)==true){
JOptionPane.showMessageDialog(null, "resposta certa");
j.setPontos(10);
diminuirLife();
}
else{
JOptionPane.showMessageDialog(null, "resposta errada");
j.errarReposta();
if(j.getLife()==0){
JOptionPane.showMessageDialog(null, "voce perdeu");
System.exit(1);
}
}
}
}while(getLife()>0);
JOptionPane.showMessageDialog(null, "voce venceu");
}
}
}