我有一个名为Letter的类,它有两个参数:
Letter(char chr, boolean Guessed)
当我运行我的主要方法 Hangman 问题时,如果猜到的单词是正确的,我希望能够将布尔值 Guessed 更改为 true。我有一个getter和一个setter。
在我的刽子手游戏中,我希望能够在适当的位置打印猜到的单词。
示例:如果单词是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() 是子类字母中的非静态方法,我觉得这样做应该没有任何问题。
提前感谢!
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;
}
}
}