所以我应该做的是,用户输入一个字母,程序检查是否该字母是单词的一部分,从那里我无法弄清楚我需要用什么代码来制作一个这些信件显示了我到目前为止所拥有的内容
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();
System.out.println(revealChar.revealLetter(guess));
//if (secretWord.revealLetter(guess));
} while (secretWord.isHiddenWordFound());
这是我给出的一个类的另一部分,我必须弄清楚如何将其称为方法并实现它
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;
我的主要问题是在WordHider revealChar = new WordHider();
System.out.println(revealChar.revealLetter(guess));
的第一部分
应该做的是揭示我的信,但它绝对不对,任何想法?
答案 0 :(得分:1)
看起来你正在显示计数而不是wordMask。您可以将revealLetter的返回类型更改为String并返回wordMask,或者如果这不是一个选项,请将您的do-while中的代码更改为以下内容:
revealChar.revealLetter(guess);
System.out.println(revealChar.getWordMask())
答案 1 :(得分:0)
您的整个程序可以替换为几行:
String guessedLetters ="";
然后在猜测循环中:
guessedLetters += guess;
String display = secretWord.replaceAll("[^" + guessedLetters + "]", "_");