java - 我完全迷失在这个刽子手游戏中
问题描述
所以我有这个项目,我目前被困在代码的“guessLetter”部分。
public boolean guessLetter( String letter ) {
/* If the letter has already been guessed, print out a message that
* it's already been guessed and return true.
*/
letter = letter.toUpperCase();
for(int x = 0; x<letter.length(); x++){
String a = letter.substring(x, x+1);
if(letter.equals(a)){
System.out.println("This letter was already found");
}
}
/* Check to see if the letter is in phrase. If it is, put it into
* solved in the correct place, replacing the underscore.
*/
for(int y = 0; y<letter.length(); y++){
String blank = " ";
String b = letter.substring(y, y+1);
return true;
}
/* Fix this so it returns the right value, every time */
return false;
}
正如你所看到的,我一直在尝试一些东西,但我认为我当前的代码根本不起作用,很明显我还没有完成。
如果您能解释我的错误以及原因,我将不胜感激。
解决方案
我喜欢做作业:-)
这应该让你开始。
public class HangMan {
HashSet<String> guessedLetters = new HashSet();
String phrase = "myWord";
public boolean guessLetter(String letter) {
if (guessedLetters.contains(letter)) {
return true;
} else {
guessedLetters.add(letter);
return false;
}
}
public void inPhrase(String letter) {
if (phrase.contains(letter)) {
// Get all index of letter
int index = phrase.indexOf(letter);
while (index >= 0) {
index = phrase.indexOf(letter, index + 1);
// Show the letter at this index
}
} else {
// Decrease the number of guesses till zero, then update hangman?
}
}
}