Wie bekomme ich es hin das die Lebenspunkte vom Monster in Java um eins abnehmen?
if (zauberer.getAngriffswert() > monster.getAngriffswert()) {
monster.getLebenspunkte()-1 == monster.getLebenspunkte();
System.out.println("Ihr Zauberer " + zauberer.getName() + " hat daher diesn Kampf gewonnen.");
Das ist mein Code bis jetzt, wie bekomme ich es hin, dass die Lebenspunkte eins weniger werden und die Lebenspunkte davor überschreiben? So wie ich die Zeile:
monster.getLebenspunkte()-1 == monster.getLebenspunkte();
bis jetzt habe wird es als Falsch angezeigt.
1 Antwort
Du brauchst eine .setLebenspunkte() oder eine .decreaseLebenspunkte() Methode in deiner Klasse.
//z.B.
public void decreaseLebenspunkte(int damage){
lebensPunkte -= damage;
}
//oder
public void setLebenspunkte(int val){
lebensPunkte = val;
}
//beim aufrufen dann
monster.decreaseLebenspunkte(1);
//oder
monster.setLebenspunkte(monster.getLebenspunkte()-1);
Wenn ich das einsetze bekomme ich leider alle Lebenspunkte abgezogen und nicht nur einen. Also wenn mein Monster 5 Leben hatte hat es danach 0 Leben. Was soll ich machen?
if (3 == antwort) {
scan = new Scanner(System.in);
Monster monster;
Zauberer zauberer;
System.out.println("Bennen Sie bitte hier ihren neuen Zauberer:");
name = scan.nextLine();
Wuerfel wuerfel;
wuerfel = new Wuerfel(6);
zauberer = new Zauberer(name, 4, (5 * wuerfel.wuerfeln()), 7, 10, 2);
monster = new Monster(4 * wuerfel.wuerfeln(), 5);
System.out.println("Ihr Zauberer " + zauberer.getName() + " hat das Licht der Welt erblickt! ");
{
System.out.println("Ihr Zauberer " + zauberer.getName() + " hat einen Angriffswert von 4, multipliziert mit " +
"ihrer Gewürfelten Zahl, ergibt das " + zauberer.getAngriffswert() +
"Zu ihren normalen " + zauberer.getLebenspunkte() + " bekommt ihr Zauberer durch seinen heilenden Kräfte ");
System.out.println("noch weitere " + zauberer.getHeilen() + " Lebenspunkte.Somit hat Ihr Zauberer insgesamt " + (zauberer.getLebenspunkte() + zauberer.getHeilen()) + " Lebenspunkte. ");
System.out.println("Das Monster, gegen das sie kämpfen hat eine Angriffswert von 3, multipliziert " +
"mit der gewürfelten Zahl vom Monster erbit das " + monster.getAngriffswert() + ".");
System.out.println("Das Moonster hat " + monster.getLebenspunkte() + " Lebenspunkte ");
Wuerfel wuerfeln;
wuerfeln = new Wuerfel(10);
if (zauberer.getAngriffswert() > monster.getAngriffswert()) {
monster.setLebenspunkte(monster.getLebenspunkte() - 1);
System.out.println("Ihr Zauberer " + zauberer.getName() + " hat daher diesn Kampf gewonnen." +
" Daher hat ihr Zauberer nun " + zauberer.getLebenspunkte() + " und das Monster " + monster.getLebenspunkte() + " Lebenspunkte.");
} else
zauberer.setLebenspunkte(monster.getLebenspunkte() -1);
System.out.println("Ihr Zauberer " + zauberer.getName() + " hat daher diesn Kampf leider verloren." +
" Daher hat ihr Zauberer nun nur noch " + zauberer.getLebenspunkte() + " und das Monster " + monster.getLebenspunkte() + " Lebenspunkte");
}
}
Und der Code wo du setLebenspunkte und getLebenspunkte programmiert hast?
Da haben wir doch schonmal einen Fehler. Du musst setLebenspunkte natürlich auch richtig implementieren. Also tausch mal public int setLebenspunkte(int i) {return lebenspunkte;}
durch
public void setLebenspunkte(int val){
lebenspunkte = val;
}
Danke, jetzt funktioniert es. Noch mal vielen vielen dank, das Sie sich die Zeit genommen haben mir zu helfen.
monster.setLebenspunkte(monster.getLebenspunkte()-1);
Also wenn ich das eingebe werden automatisch die Lebenspunkte um eins reduziert und vom Programm dann als neue Lebenspunkte fürs Monster angenommen.