do {
System.out.println("Word: " + secretWord.getWordMask());
//System.out.print("Guesses: " + guesses);
System.out.print("Enter your guess: ");
Scanner keyboard = new Scanner(System.in);
String guess = keyboard.next();
WordHider revealChar = new WordHider();
revealChar.revealLetter(guess);
System.out.println(revealChar.getWordMask());
secretWord.revealLetter(guess);
if (guess != ???) {
System.out.println("Miss");
}
我得到了这么多,它要求用户猜一个字母,但我不知道的是如何使它,所以如果他们猜错了字母,打印一个"miss"消息。
public int revealLetter(String letter) {
int count = 0;
String newFoundWord = "";
if (letter.length() == 1) {
for (int i = 0; i < secretWord.length(); i++) {
if ((secretWord.charAt(i) == letter.charAt(0))
&& (wordMask.charAt(i) == HIDE_CHAR.charAt(0))) {
count++;
newFoundWord += letter;
}
else {
newFoundWord += wordMask.charAt(i);
}
}
}
wordMask = newFoundWord;
return count;
上面的代码是显示字母的代码,如果猜到了。
你有你的secretWord.revealLetter(guess)
,它返回count
的guess
在secretWord
中出现的次数,当它没有出现时是0,所以你可以把它放在if
条件中:
if (secretWord.revealLetter(guess) == 0) {
System.out.println("Miss");
}
您可以在if
之前删除对secretWord.revealLetter(guess)
的调用,因为您只需要调用它一次。