Boa noite a todos,
Eu estou fazendo um programa aonde os dados(base) ficam separados da aplicação, mas eu tenho elementos dentro da base que dependem de elementos dentro dela mesma. Acho q essa parte pode estar gerando um erro na hora de alterar os valores que quero, pois quando coloco a aplicação para rodar(apenas para entrar com dados e imprimir) esses elementos retornam apenas 0.0 (No caso, os elementos que apresentam erros são o ataque_Especial e a experiência). Alguém sabe qual pode ser o erro?
public class Base {
protected String nome;
protected double vida, ataque_Especial;
protected double experiencia[] = new double[20];
protected int ataque, defesa, velocidade, agilidade,nivel;
public void setNome(String nome){
this.nome=nome;
}
public void setVida(double vida) {
this.vida=vida;
}
public void setAtaque(int ataque) {
this.ataque=ataque;
}
public void setDefesa(int defesa) {
this.defesa=defesa;
}
public void setVelocidade(int velocidade) {
this.velocidade=velocidade;
}
public void setAtaqueEspecial(double ataqueEspecial) {
ataqueEspecial = (this.ataque+(this.ataque*Math.random()));
this.ataque_Especial = ataqueEspecial;
}
public void setAgilidade(int agilidade) {
this.agilidade=agilidade;
}
public void setNivel(int nivel) {
this.nivel=nivel;
}
public void setExperiencia(double experiencia[]) {
experiencia[0]=0;
experiencia[1]=80;
for(int i=2;i<5;i++) {
experiencia[i] = experiencia[i-1]*(2.3);
}
for(int i=5;i<20;i++) {
experiencia[i] = experiencia[i-1]*(1.3);
}
for(int j=0;j<20;j++) {
this.experiencia[j]=experiencia[j];
}
}
public String getNome(){
return nome;
}
public double getVida() {
return vida;
}
public int getAtaque() {
return ataque;
}
public int getDefesa() {
return defesa;
}
public int getVelocidade() {
return velocidade;
}
public double getAtaqueEspecial() {
return ataque_Especial;
}
public int getAgilidade() {
return agilidade;
}
public int getNivel() {
return nivel;
}
public double getExperiencia() {
return experiencia[getNivel()];
}
public Base() {
}
public Base(String nome, double vida, int nivel, int ataque,int defesa, int velocidade, int ataque_Especial, int agilidade) {
this.nome=nome;
this.vida=vida;
this.nivel=nivel;
this.ataque=ataque;
this.defesa=defesa;
this.velocidade=velocidade;
this.agilidade=agilidade;
}
public void imprimir() {
System.out.println("Nome: " + getNome());
System.out.println("Vida: " + getVida());
System.out.println("Nível: " + getNivel());
System.out.println("Experiencia: " + getExperiencia());
System.out.println("Ataque: " + getAtaque());
System.out.println("Defesa: " + getDefesa());
System.out.println("Velocidade: " + getVelocidade());
System.out.println("Ataque Especial: " + getAtaqueEspecial());
System.out.println("Agilidade: " + getAgilidade());
}
public void entradaDados() {
Scanner scanner = new Scanner(System.in);
System.out.println("Entre com o nome: ");
this.setNome(scanner.nextLine());
System.out.println("Entre com a vida: ");
this.setVida(scanner.nextDouble());
System.out.println("Entre com o nível: ");
this.setNivel(scanner.nextInt());
System.out.println("Entre com o ataque: ");
this.setAtaque(scanner.nextInt());
System.out.println("Entre com a defesa: ");
this.setDefesa(scanner.nextInt());
System.out.println("Entre com a velocidade: ");
this.setVelocidade(scanner.nextInt());
System.out.println("Entre com a agilidade: ");
this.setAgilidade(scanner.nextInt());
}
}