Hallo!
Ich habe ein kleines Programm geschrieben, welches das Spiel "Galgenraten" darstellen soll:
leider ist irgendwo ein Fehler im Programm, denn die Ausgabe sieht so aus:
bitte wort eingeben
testdurchlauf
bitte buchstaben eingeben
t
t--t---------fehler:-0
bitte buchstaben eingeben
fehler:-1
bitte buchstaben eingeben
fehler:-2
bitte buchstaben eingeben
ich weiß leider nicht woran das liegt, und ich finde meinen Fehler nicht, eigentlich sollte die Anzeige so aussehen:
bitte wort eingeben
testdurchlauf
bitte buchstaben eingeben
t
t--t---------fehler:-0
bitte buchstaben eingeben
->hier sollte man dann eben den Buchstaben 2 eingeben....
Bitte um Hilfe,das macht mich Wahnsinnig!
Danke schon mal!
mfg coffeecup
Ich habe ein kleines Programm geschrieben, welches das Spiel "Galgenraten" darstellen soll:
Code:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Galgenratenprogramm {
// Variablen
private static String eingabewort;
private static char eingabebuchstabe;
private static int i = 0;
private static int x;
private static char[] anzeige;
private static char[] wort;
private static int counter;
private static char verdeckt;
private static boolean prüfung;
private static void ausgabe() { //Ausgabe des aktuellen Standes und der Fehlerzahl
while (i < x) {
System.out.print(anzeige[i]);
i++;
}
System.out.println("fehler:-" + counter);
}
private static void ersetzung() { // Buchstaben werden in die "Anzeige" eingefügt
int zwcounter = 0;
int i = 0;
while (i < x) {
if (wort[i] == eingabebuchstabe) {
anzeige[i] = eingabebuchstabe;
}
if (wort[i] != eingabebuchstabe) {
zwcounter++;
}
if (zwcounter == x) {
counter++;}
i++;
}
}
private static void erstellunganzeige() {// die Anzeige "-----" wird erstellt
int b = 0;
while (b < x) {
verdeckt = '-';
anzeige[b] = verdeckt;
b++;
}
}
private static void eingabe() throws NumberFormatException, IOException { // der Buchstabe wird eingelesen
BufferedReader myInput = new BufferedReader(new InputStreamReader(
System.in));
System.out.println("bitte buchstaben eingeben");
eingabebuchstabe = (char) System.in.read();
}
private static boolean prüfung() { // es wird überprüft, ob schon alle Buchstaben gefunden wurden
//oder schon 10 fehler gemacht wurden
int w=0;
int geschafft = 0;
prüfung=true;
if (anzeige[w] != verdeckt){ geschafft++;}
if (geschafft==x){prüfung=false;}
if (counter==10){prüfung=false;}
return prüfung;
}
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader myInput = new BufferedReader
(new InputStreamReader(System.in));
System.out.println("bitte wort eingeben");
eingabewort = myInput.readLine();
x = eingabewort.length();
anzeige= new char[x];
wort = eingabewort.toCharArray();
erstellunganzeige();
prüfung=true;
while (prüfung=true){
eingabe();
ersetzung();
ausgabe();
prüfung();}
System.out.println("Ende");
}}
leider ist irgendwo ein Fehler im Programm, denn die Ausgabe sieht so aus:
bitte wort eingeben
testdurchlauf
bitte buchstaben eingeben
t
t--t---------fehler:-0
bitte buchstaben eingeben
fehler:-1
bitte buchstaben eingeben
fehler:-2
bitte buchstaben eingeben
ich weiß leider nicht woran das liegt, und ich finde meinen Fehler nicht, eigentlich sollte die Anzeige so aussehen:
bitte wort eingeben
testdurchlauf
bitte buchstaben eingeben
t
t--t---------fehler:-0
bitte buchstaben eingeben
->hier sollte man dann eben den Buchstaben 2 eingeben....
Bitte um Hilfe,das macht mich Wahnsinnig!
Danke schon mal!
mfg coffeecup