在刽子手中显示文字



我有一个名为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;
            }
        }
    }

最新更新