Clear-Problem

Javafan21

Mitglied
Sehr geehrte Mitglieder des Java-Forums,
ich habe ein Problem. Ich habe ein Programm zum Zahlenraten geschrieben, aber die zu erratenden Zahlen, nämlich Player1Zahl und Player2Zahl, bleiben sichtbar. Wie kann ich diese verschwinden lassen?
Vielen Dank schon mal im Voraus
Mit freundlichen Grüßen
Javafan21

PS: Anbei folgt das Programm 🙂


Java:
public class ZahlenratenMP {
public static void main(String[]args) {
System.out.println("Herzlich Willkommen zur Multiplayer-Edition des Quiz");
System.out.println("Spieler 1, bitte In-Game Namen eingeben");
String Player1Name = new java.util.Scanner(System.in).nextLine();
System.out.println("Spieler 2, bitte In-Game Namen eingeben");
String Player2Name = new java.util.Scanner(System.in).nextLine();
System.out.println(Player1Name + ", legen Sie bitte die von " + Player2Name + " zu ratende Zahl (gültiger Zahlenbereich: 0 bis 99) fest.");
int Player1Zahl = new java.util.Scanner(System.in).nextInt();
if (Player1Zahl > 99) {
System.out.println("Ungültiger Zahlenbereich. Programm wird beendet");
return;
}
if (Player1Zahl < 0) {
System.out.println("Ungültiger Zahlenbereich. Programm wird beendet");
return;
}
System.out.println(Player2Name + ", legen Sie bitte die von " + Player1Name + " zu ratende Zahl (gültiger Zahlenbereich: 0 bis 99) fest.");
int Player2Zahl = new java.util.Scanner(System.in).nextInt();
if (Player2Zahl > 99) {
System.out.println("Ungültiger Zahlenbereich. Programm wird beendet");
return;
}
if (Player2Zahl < 0) {
System.out.println("Ungültiger Zahlenbereich. Programm wird beendet");
return;
}
while (true) {
System.out.println(Player1Name + ", geben Sie bitte einen Rateversuch (von 0 bis 99) ab.");
int Player1Guess = new java.util.Scanner(System.in).nextInt();
if (Player1Guess > 99) {
System.out.println("Ungültiger Rateversuch! Die Zahl ist zu groß");
}
if (Player1Guess < 0) {
System.out.println("Ungültiger Rateversuch! Die Zahl ist zu klein");
}
if (Player1Guess == Player2Zahl) {
System.out.println("Bravo! " + Player1Name + " hat die Zahl erraten und damit das Spiel gewonnen");
return;
} else {
System.out.println("Schade! Sie haben einen falschen Rateversuch abgegeben");
}
System.out.println(Player2Name + ", geben Sie bitte einen Rateversuch (von 0 bis 99) ab.");
int Player2Guess = new java.util.Scanner(System.in).nextInt();
if (Player2Guess > 99) {
System.out.println("Ungültiger Rateversuch! Die Zahl ist zu groß");
}
if (Player2Guess < 0) {
System.out.println("Ungültiger Rateversuch! Die Zahl ist zu klein");
}
if (Player2Guess == Player1Zahl) {
System.out.println("Bravo! " + Player2Name + " hat die Zahl erraten und damit das Spiel gewonnen");
return;
} else {
System.out.println("Schade! Sie haben einen falschen Rateversuch abgegeben");
}
}
}
}
 
Zuletzt bearbeitet von einem Moderator:
Es funktioniert nicht....
Beim Kompilieren kommt das heraus:

Code:
ZahlenratenMPv2.java:9: error: cannot find symbol
int Player1Zahl = JOptionPane.showInputDialog;
                  ^
  symbol:   variable JOptionPane
  location: class ZahlenratenMPv2
ZahlenratenMPv2.java:19: error: cannot find symbol
int Player2Zahl = JOptionPane.showInputDialog;
                  ^
  symbol:   variable JOptionPane
  location: class ZahlenratenMPv2
 
Zuletzt bearbeitet von einem Moderator:
Zum Beispiel so:
Java:
import javax.swing.JOptionPane;

public class Test {

    static Integer gibZahl(String frage, int min, int max) {
        int zahl = 0;
        boolean eingabeKorrekt = false;
        do {
            try {
                String eingabe = JOptionPane.showInputDialog(frage);
                if (eingabe == null) {
                    return null;
                }
                zahl = Integer.parseInt(eingabe);               
                eingabeKorrekt = (zahl >= min && zahl <= max);
                if (!eingabeKorrekt) {
                    JOptionPane.showMessageDialog(null,
                        String.format("Bitte nur Zahlen zwischen %d und %d eingeben",
                                      min, max));
                }
            } catch (NumberFormatException nfe) {
                JOptionPane.showMessageDialog(null, "Es sind nur Zahlen erlaubt.");
            }
        } while (!eingabeKorrekt);

        return zahl;
    }


    public static void main(String[] args) {
        System.out.println("Herzlich Willkommen zur Multiplayer-Edition des Quiz");
        System.out.println("Spieler 1, bitte In-Game Namen eingeben");
        String Player1Name = new java.util.Scanner(System.in).nextLine();
        System.out.println("Spieler 2, bitte In-Game Namen eingeben");
        String Player2Name = new java.util.Scanner(System.in).nextLine();
        Integer Player1Zahl = gibZahl(Player1Name + ", legen Sie bitte die von " +
                Player2Name + " zu ratende Zahl (gültiger Zahlenbereich: 0 bis 99) fest.",
                0, 99);
        if (Player1Zahl == null) {
            return;
        }

        Integer Player2Zahl = gibZahl(Player2Name + ", legen Sie bitte die von " +
                Player1Name + " zu ratende Zahl (gültiger Zahlenbereich: 0 bis 99) fest.",
                0, 99);
        if (Player2Zahl == null) {
            return;
        }

        while (true) {
            System.out.println(Player1Name + ", geben Sie bitte einen Rateversuch (von 0 bis 99) ab.");
            Integer Player1Guess = gibZahl(Player1Name + ", geben Sie bitte einen Rateversuch " +
                    "(von 0 bis 99) ab.", 0, 99);
            if (Player1Guess == Player2Zahl) {
                System.out.println("Bravo! " + Player1Name + " hat die Zahl erraten und " +
                        "damit das Spiel gewonnen");
                return;
            } else {
                System.out.println("Schade! Sie haben einen falschen Rateversuch abgegeben");
            }
            Integer Player2Guess = gibZahl(Player2Name + ", geben Sie bitte einen Rateversuch " +
                    "(von 0 bis 99) ab.", 0, 99);
            if (Player2Guess == Player1Zahl) {
                System.out.println("Bravo! " + Player2Name + " hat die Zahl erraten und " +
                        "damit das Spiel gewonnen");
                return;
            } else {
                System.out.println("Schade! Sie haben einen falschen Rateversuch abgegeben");
            }
        }
    }
}
EDIT: die Prüfung auf null, um die Schleife zu verlassen, überlasse ich Dir 🙂
 

Neue Themen


Zurück
Oben