在Hangman中显示单词

时间:2016-03-13 15:10:40

标签: java oop

我有一个名为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()是一个来自子类字母的非静态方法,我觉得这样做不应该有任何问题。

提前致谢!

1 个答案:

答案 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;
            }
        }
    }