Variablen int-Variable neuen Wert zuweisen

PiQuadrat

Neues Mitglied
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:
Code:
int hpm = neuhpm;
int hpr = neuhpr;
Hier mein Quellcode:
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);
    }
}
 

Enceladus271

Bekanntes Mitglied
Wenn du einer bestehenden Variable einen neuen Wert zuweisen möchtest, musst du das so machen:
hpm = neuhpm;
Durch
int hpm = neuhpm;
würdest du versuchen eine neue Variable zu deklarieren, die schon existiert. Daher auch die Fehlermeldung beim Kompilieren.
 

Neue Themen


Oben