Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hangman - ist der Buchstabe vorhanden wenn ja wo kommt er vor
ich arbeite derzeit mit einer GUI auf dem am Ende Hangman gespielt werden soll.
Ich habe jetzt soweit das meiste hinter mir aber ein wichtiger Punkt fehlt mir noch.
Sobald ich auf einen Buchstabe drücke muss ja überprüft werden ist dieser Buchstabe vorhanden und wenn ja wo kommt er vor und wie oft und das danach in dem jeweiligen Label ausgeben.
Habe es geschafft mit einer kleinen Arraylist das Wort zu "spalten" und je nachdem wie viele Zeichen das Wort lang ist wird je nach länge die Labels angezeigt.
Aber wie kann ich das jetzt machen das sobald ich auf den Button klicke mir das Programm sagt ja der Buchstabe ist vorhanden (fürs erste) oder auch nicht und als zweites es mir sagt wo er sitzt und wie oft er vor kommt.
(Habe erstmal gemacht,sobald man auf den Button A drückt verschwinden die "_" und es wird das ganze Wort angezeigt)
Vielleicht könnt ihr mir ja weiter helfen, denn ich weiß hier nicht weiter.
Also wenn ichs jetzt richtig verstanden habe, hast du eine ArrayList, in der die Buchstaben von deinem Wort gespeichert sind? Und für jeden Buchstaben hast du ein Label erzeugt? Im Prinzip musst du ja nur eine Schleife über alle Einträge in deiner Liste machen, und dort den Buchstaben mit deiner Eingabe vergleichen. (Beliebter Anfängerfehler an der Stelle: Strings darf man nicht mit a == b vergleichen, sondern per a.equals(b))
Falls dir die Zuordnung von dem Buchstaben auf das jeweilige Label Probleme macht, würde ich dir empfehlen, in deiner Liste nicht direkt die Buchstaben zu speichern, sondern eine extra Klasse erstellen, die sowohl den Buchstaben als auch das zugehörige Label enthält.
Vielen Dank!
Habe es geschafft das soweit mir das Programm sagt ob in diesem Wort ein Buchstabe vorkommt oder nicht! Und habe es versucht auch zu machen das der Buchstabe in dem jeweiligen Label ausgeben wird!
Leider wenn in dem Wort zwei A's vorkommen zeigt es nur in den ersten zwei Labels das A an! Also wenn ein A vorkommt zeigt es nur in dem ersten Label ein A an.
Eventull kannst du mir/oder wer auch immer sagen was ich hier falsch mache. Also das im prinzip am Ende wenn ich auf den Button klicke mir das Programm sagt ja es gibt ein Buchstabe und er sitzt an der 1 und 4 Position und das Label wurde von einem _ durch das A ersetzt oder dem jeweiligen Buchstabe!
Hoffe du/ihr versteh(s)t was ich meine.
Wusste nicht ob ich lb1.setText("A"); hinschreiben sollte oder lb6.setText(String.valueOf(meinWort[mZahll]));
Alles klappt bis auf dass das Programm mir nicht sagt wo der Buchstabe sitzt .
Java:
public void mouseClicked(MouseEvent e)
{
//btA
int mHangZahl;
mHangZahl=0;
int mZaehler=0;
mWort=mWort.toUpperCase();
meinWort = mWort.toCharArray();
for(int i= 0; i< meinWort.length; i++)
{
mZahll=i;
//buchstabe();
String mLO=String.valueOf(meinWort[mZahll]);
String buchstabe="A";
if(mLO.equals(buchstabe))
{
mHangZahl=mHangZahl+1;
mZaehler=mZaehler+1;
}
else
{
mHangZahl=mHangZahl+0;
}
switch(mZaehler)
{
case 1:
lb1.setText("A");
break;
case 2:
lb2.setText("A");
break;
case 3:
lb3.setText("A");
break;
case 4:
lb4.setText("A");
break;
case 5:
lb5.setText("A");
break;
case 6:
lb6.setText(String.valueOf(meinWort[mZahll]));
break;
case 7:
lb7.setText(String.valueOf(meinWort[mZahll]));
break;
case 8:
lb8.setText(String.valueOf(meinWort[mZahll]));
break;
case 9:
lb9.setText(String.valueOf(meinWort[mZahll]));
break;
case 10:
lb10.setText(String.valueOf(meinWort[mZahll]));
break;
case 11:
lb11.setText(String.valueOf(meinWort[mZahll]));
break;
case 12:
lb12.setText(String.valueOf(meinWort[mZahll]));
break;
case 13:
lb13.setText(String.valueOf(meinWort[mZahll]));
break;
case 14:
lb14.setText(String.valueOf(meinWort[mZahll]));
break;
case 15:
lb15.setText(String.valueOf(meinWort[mZahll]));
break;
case 16:
lb16.setText(String.valueOf(meinWort[mZahll]));
break;
case 17:
lb17.setText(String.valueOf(meinWort[mZahll]));
break;
case 18:
lb18.setText(String.valueOf(meinWort[mZahll]));
break;
case 19:
lb19.setText(String.valueOf(meinWort[mZahll]));
break;
case 20:
lb20.setText(String.valueOf(meinWort[mZahll]));
break;
}
}
if(mHangZahl>0)
{
System.out.println("Geht");
}
else
{
System.out.println("Error");
mHang=mHang+1;
hangman();
}
//buchstabe_da("A");
btA.setEnabled(false);
}
Es würde wahrscheinlich mit deinem switch ebenfalls gehen. Aber mir wäre das zuviel doppelter Code -> unübersichtlich und viel Schreibarbeit
Dein Problem ist das du mZaehler nur erhöhst wenn du einen passenden Buchstaben gefunden hast.
Du musst mZaehler bei jedem Durchlauf erhöhen. Das switch sollte in den if-Zweig. Wird dann nur ausgeführt wenn ein übereinstimmender Buchstabe gefunden wurde.