我有一个名为Letter的类,它有两个参数:
Letter(char chr, boolean Guessed)
当我运行我的main方法Hangman问题时,如果猜测的单词是正确的,我希望能够将布尔值Guessed的值更改为true。 我有一个吸气剂和一个二传手。
在我的刽子手游戏中,我希望能够打印出在适当位置猜到的单词。
示例:如果word是java,那么如果有人猜到'a',我想要打印程序 _ a _ a。
我不确定如何这样做。我知道如何切换变量的布尔值,但我不确定如何更新打印部分。
我是否会创建一个新字符串,以便保存以前已更新的值?
private boolean isGuessRight(char chr){
for (int i = 0 ; i < word.length() ; i++){
if (word.charAt(i) == chr && Letter.getRevealed() == false){
Letter.reveal();
return true;
}
else if (word.charAt(i) == chr && Letter.getRevealed()){
return false;
}
}
}
我也很难弄清楚为什么java告诉我我不能调用方法Letter.reveal()。 reveal()是一个来自子类字母的非静态方法,我觉得这样做不应该有任何问题。
提前致谢!
答案 0 :(得分:0)
class Letter {
char c;
boolean isRevealed;
//... getters and setters
}
Letter[] word = new Letter[MAX_WORD_LENGTH];
private boolean isGuessRight(char chr){
for (int i = 0 ; i < word.length ; i++){
if (word[i].getChar() == chr && word[i].getRevealed() == false){
word[i].reveal();
return true;
}
else if (word[i] == chr && word[i].getRevealed()){
return false;
}
}
}