ola pessoa, estou com um problema que é o seguinte. eu tenho essa classe inimigo e o main certo? no main eu crio um objeto do tipo Inimigo e faço o if, se for portugues eu luto contra portugues, da tudo blz, o problema é que quando o atributo life zera, eu vou tentar lutar contra matematica e ele permanece zerado, uma vez que é o mesmo objeto.
uma forma seria criar varios objetos, 1 para cada materia.
soh que eu pergunto…existe alguma outra maneira que voces podem me ajudar?
aguardo resposta
Classe Inimigo
private int life = 10;
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, Jogador j){
if(this.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 p: listaPerguntas){
resposta = JOptionPane.showInputDialog(p.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");
}
Main
Inimigo i = new Inimigo();
do{
opc = Integer.parseInt(JOptionPane.showInputDialog("Com quem você quer lutar?\n 1-Professor de Matematica\n 2-Professor de Portugues"));
if(opc==1){
i.enfrentarInimigo( "matematica", j);
break;
}
if(opc==2){
i.enfrentarInimigo("portugues", j);
break;
}
...