C# Doppelt buchstaben im Ratewort werden nicht erkannt?


28.06.2022, 15:04

Ich habe es geschafft danke für die Tipps. Ich musste ein Wort mit zwei gleichen Buchstaben natürlich auch erraten

2 Antworten

In der Schleife schreibst du

if (word[i] == guess && !letter.contains(guess))
{
   //  einige Anweisungen stehen hier
   letter.Add(guess);
   //  ....
}

Du fügtst den geratenen Buchstaben beim erstmaligen Durchlaufen der Bedingung in die Menge letter ein und danach kann die Bedingung des if-Statements bei weiteren Durchläufen nicht mehr wahr sein.

Das ist ein subtiler Fehler.

Du darfst den geratenen Buchstaben erst in die Menge einfügen, nachdem du die Schleife verlassen hast, mit der du die Striche veränderst. Das ist eine sehr kleine Änderung im Programm - aber mit großer Wirkung.

Woher ich das weiß:Berufserfahrung – Berufstätigkeit als Software-Entwickler

Verschiebe den Test auf "letter" aus der Schleife. So, wie du es jetzt hast, stezt du beim ersten gefundenen das Char in die Liste der gefundenen und verhinderst dadurch, dass die if-Bedingung bei weiteren Durchläufen true wird.