Ich sollte ein Programm schreiben, in dem zwei Rollen gegeneinander kämpfen (textbasiert). Leider kann ich meine Variablen "hpr" und "hpm" nicht neu besetzen, wenn ein Treffer erfolgt ist und die HP sinken. So gibt es nie einen Sieger. Ohne Neubesetzung der Variablen erhalte ich eine Endlosschleife.
Ich erhalte beim Compilieren den Fehler "variable hpm is already defined in method main(String[])", bzw. "variable hpr is already defined in method main(String[])" (bei hpm/hpr) und bei beiden "cannot find symbol" (bei neuhpm/neuhpr). Es geht um die folgenden beiden Zeilen:
Hier mein Quellcode:
Ich erhalte beim Compilieren den Fehler "variable hpm is already defined in method main(String[])", bzw. "variable hpr is already defined in method main(String[])" (bei hpm/hpr) und bei beiden "cannot find symbol" (bei neuhpm/neuhpr). Es geht um die folgenden beiden Zeilen:
Code:
int hpm = neuhpm;
int hpr = neuhpr;
Code:
public class TextbasiertesRollenspiel2 {
public static void main(String[] a) {
int hpr = Integer.parseInt(a[0]); // HP von Rebecca
int atkr = Integer.parseInt(a[1]); // ATK von Rebecca
int hitr = Integer.parseInt(a[2]); // HIT von Rebecca
int hpm = hpr*2; // HP vom fliegenden Spaghettimonster
int atkm = atkr/2; // ATK vom fliegenden Spaghettimonster
int hitm = 50; // HIT vom fliegenden Spaghettimonster
System.out.println("Rebecca tritt gegen das fliegende Spaghettimonster an.");
System.out.println("Rebecca besitzt " + hpr + " HP.");
System.out.println("Das fliegende Spaghettimonster besitzt " + hpm + " HP.");
System.out.println("-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.--.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-");
System.out.println("Runde 1 beginnt!");
do {
System.out.println("Rebecca greift an.");
int zufall; // Erzeugen einer (dezimalen) Zufallszahl (zufall) im Intervall [0,1).
zufall = (int)(Math.random() * 100); // Vervielfältigung und abrunden von zufall.
if (hitr < zufall) {
System.out.println("Sie verfehlt das fliegende Spaghettimonster.");
} else {
System.out.println("Und sie trifft!");
int neuhpm = hpm - atkr;
if (neuhpm > 0) {
System.out.println("Das fliegende Spaghettimonster hat nur noch " + neuhpm + " HP."); // Ausgabe der neuen Monster-HP nur bei positiven HP.
} else {
System.out.println("Spaghetti fliegen wild durch die Luft...");
System.out.println("Das fliegende Spaghettimonster wurde besiegt!");
System.out.println("Rebecca gewinnt, das Spiel ist vorbei.");
}
}
int hpm = neuhpm;
System.out.println("-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.--.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-");
System.out.println("Jetzt ist das fliegende Spaghettimonster dran.");
int zufall2; // Erzeugen einer zweiten (dezimalen) Zufallszahl in [0,1).
zufall2 = (int)(Math.random() * 100); // Vervielfältigung und abrunden.
if (hitm < zufall2) {
System.out.println("Es verfehlt Rebecca.");
} else {
System.out.println("Es bewirft Rebecca mit Fleischbällchen und trifft!");
int neuhpr = hpr - atkm;
if (neuhpr > 0) {
System.out.println("Rebecca hat noch " + neuhpr + " HP.");
System.out.println("Das fliegende Spaghettimonster muss bestraft werden!");
} else {
System.out.println("Rebecca liegt röchelnd am Boden...");
System.out.println("Sie wurde besiegt!");
System.out.println("Das Spaghettimonster gewinnt, das Spiel ist vorbei.");
}
}
int hpr = neuhpr;
System.out.println("-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.--.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-");
}
while (hpr > 0 && hpm > 0);
}
}