Hallo
ich habe einen logischen Fehler in meinm Code, es soll ein Galgenmännchenspiel werden, das Problem ist nur ,dass ich den Zähler bei einem falschen Buchstaben nicht zurücksetzen kann, ich habe i--, i-1 und alles probiert ,aber ohne Erfolg, könnte mir jemand helfen ?
Wenn ein Buchstabe verwendet wird ,der nicht im Wort vorhanden ist, soll man noch eine Möglichkeit haben ein Neuenbuchstaben zu verwenden ,bei mir habe ich aber immer nur die Anzahl der Buchstaben im Wort an Möglichkeiten.
ich habe einen logischen Fehler in meinm Code, es soll ein Galgenmännchenspiel werden, das Problem ist nur ,dass ich den Zähler bei einem falschen Buchstaben nicht zurücksetzen kann, ich habe i--, i-1 und alles probiert ,aber ohne Erfolg, könnte mir jemand helfen ?
Wenn ein Buchstabe verwendet wird ,der nicht im Wort vorhanden ist, soll man noch eine Möglichkeit haben ein Neuenbuchstaben zu verwenden ,bei mir habe ich aber immer nur die Anzahl der Buchstaben im Wort an Möglichkeiten.
Java:
/**
*
* Glagenmännchen v1
*
* @ vom 13.08.2009
* @author
*/
import java.util.Scanner;
public class galgenmann
{
public static void main(String[] args)
{
Scanner sc= new Scanner ( System.in);
char w[] = new char [10];
char x[] = new char [10];
char a[] = new char [10];
String f ;
int i;
int j;
int k=0;
int y=1;
int q;
String b;
int s=0;
char p;
String u;
System.out.println("Galgenmaenchen v1 "); // Starttext
System.out.println();
System.out.print("Loading..");
System.out.print(".");
System.out.print(".");
System.out.println();
System.out.println();
System.out.println("Starten?[ja,nein]" ); // Startfrage
String r;
r = sc.next();
if (r.equals("ja")); // Wenn antwort ja
{
System.out.print("Bitte ein Wort eingeben:"); // Bitte um Wort
f = sc.next();
for(i=0;i<f.length();i++) // zerteile wort in chars
{
w[i]=f.charAt(i);
}
for (i=0; i<25; i++)
{
System.out.println("***********************************************"); // Platzhalter
}
System.out.println("Raten Sie los !"); // aufforderung
System.out.println();
for(i=0;i<f.length();i++) // installiere "_" auf alle Felder
{
x[i]= '_';
}
System.out.print("Die Felder:");
for(i=0;i<f.length();i++) // ausgabe aller Felder "_"
{
System.out.print(x[i]+" ");
}
System.out.println(); // platz
System.out.println();
System.out.println();
for(i=1;i<f.length()+1;i++) // buchstabenabfrageschleife
{
System.out.print("Buchstabe:"); // frage nach buchstabe
b= sc.next(); // eingabe von Buchstabe
char t=b.charAt(0); // Eingabe in char umwandeln
for( q=0; q<x.length;q++) // prüf ob verwendet bei buchstaben richtig
{
if(t == x[q]) // Wennn buchstabe gleich buchstabe in Wort
{
System.out.println("Schon verwendet ");
}
}
for( q=0; q<x.length;q++) // prüf ob verwendet bei buchstaben faltsch
{
if(t == a[q]) // Wennn buchstabe gleich buchstabe in Wort
{
System.out.println("Schon verwendet ");
}
}
for( q=0; q<x.length;q++) // prüf ob buchstabe vorhanden
{
if(t != w[q])
{
a[q]= t; // save falschen buchstaben in array
s++;
}
}
if(s==10)
{
System.out.println(" Buchstabe nicht vorhanden");
i--;
}
else
{
for( q=0; q<x.length;q++) // prüf ob buchstabe in array vorhanden
{
if(t == w[q]) // Wennn buchstabe gleich buchstabe in Wort
{
x[q]= t; // ersetze "_" in f[] mit buchstabe
System.out.println(" gefunden !");
}
}
}
}
System.out.println();
}
System.out.print("Ergebnis:");
for(i=0;i<f.length();i++) // ausgabe aller gefunden ersetzten buchstaben
{
System.out.print(x[i]);
}
System.out.println();
}
}
Zuletzt bearbeitet: