Ich versuche, ein klassisches Hangman-Programm (die GUI ist in Ordnung, kein Problem damit), wo der Benutzer einen Buchstaben nach dem anderen raten. Das Problem ist, wenn der Benutzer einen Buchstaben errät, ersetzt er die Stelle von "_" mit dem erratenen Buchstaben (wenn der Buchstabe in dem Wort ist), aber wenn der nächste Buchstabe erraten wird, vergisst er die letzte Schätzung und die Ort geht zurück auf "_". Sorry, wenn das unklar ist, hier ist ein BeispielWie ändere ich den Wert eines Teilstrings?
Word is tiger,
user guesses "g",
outputs _ _ g _ _,
user guesses "r",
outputs _ _ _ _ r.
Wie ich den Code arbeiten wollen:
Word is tiger,
user guesses "g",
outputs _ _ g _ _,
user guesses "r",
outputs _ _ g _ r.
Wie kann ich das erreichen? Denken Sie daran, dass Tiger nur ein Beispielwort ist, Wörter werden zufällig aus einem Array gezogen. Ich denke, der einzige Weg, dies zu tun, ist, den Wert des Teilstrings in Leerzeichen zu ändern, aber ich weiß nicht, wie ich das machen soll. Ab jetzt rät der Benutzer den Buchstaben aus dem GUI-Fenster (wo der Mann selbst ist) und übermittelt die Antwort per Knopfdruck. Die Ausgabe wird nur auf der Konsole für jetzt gedruckt.
Hier ist das lästige Teil des Programms:
// guess is the name of JTextPane next to button
// randWord is the word pulled randomly from an array
private void guessLetter() {
guessedLetter = guess.getText();
if (randWord.contains(guessedLetter)){
reveal(); // method below
} else {
wrongGuesses++; // when wrongGuesses adds,
update(); // another body part is added, method not below
}
}
private void reveal() {
int start = randWord.indexOf(guessedLetter); //gets the index of the letter guessed
String print = blanks.substring(0, start) + guessedLetter + blanks.substring(start+1); //reveals the letter
System.out.println(print);//prints the revealed letter in correct spot
}
Speichern Sie bereits 'geratenLetter's Innenrohlinge? – d9ngle
Sie sollten versuchen, Ihre Frage einzugrenzen. Ich denke, eine vollständige Lösung würde mindestens 50-100 Zeilen Java-Code erfordern, was für eine einzelne Antwort ein bisschen zu weit ist. –
@ d9ngle ziemlich viel. Ich möchte, dass der Teilstring von 'Leerzeichen' den Wert von' guessedLetter' enthält, wenn er korrekt ist. schau dir mein Beispiel im Beitrag an :) – CodingNinja