Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用刽子手说话_Java_Oop - Fatal编程技术网

Java 用刽子手说话

Java 用刽子手说话,java,oop,Java,Oop,我有一个名为Letter的类,它有两个参数: Letter(char chr, boolean Guessed) 当我运行我的主要方法Hangman问题时,如果猜测的单词是正确的,我希望能够将猜测的布尔值更改为true。 我有一个能手和一个二传手 在我的刽子手游戏中,我希望能够打印出在适当位置猜到的单词 示例:如果word是java,那么如果有人猜到“a”,我希望程序打印出来 _a uA 我不知道该怎么做。我知道如何切换变量的布尔值,但我不确定如何更新打印部分 我是否需要创建一个新字符串,以便

我有一个名为Letter的类,它有两个参数:

Letter(char chr, boolean Guessed)
当我运行我的主要方法Hangman问题时,如果猜测的单词是正确的,我希望能够将猜测的布尔值更改为true。 我有一个能手和一个二传手

在我的刽子手游戏中,我希望能够打印出在适当位置猜到的单词

示例:如果word是java,那么如果有人猜到“a”,我希望程序打印出来 _a uA

我不知道该怎么做。我知道如何切换变量的布尔值,但我不确定如何更新打印部分

我是否需要创建一个新字符串,以便保存以前更新过的值

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;
            }
        }
    }
private boolean-isGuessRight(char-chr){
for(int i=0;i
我也很难弄明白为什么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;
            }
        }
    }
字符c; 布尔值被删除; //…能手和二传手 } 字母[]单词=新字母[最大单词长度]; 私有布尔值isGuessRight(char-chr){ for(int i=0;i
虽然它是一个非静态方法,但您正在静态地调用它。您应该从word中获取letter实例,然后在同一个类上调用该方法。在您的示例中,这些方法属于一个类,并且是使用
letter.reveal()
调用的。如果您正在引用其中一个字母,并且您的方法
isGuessRight
Letter
类中,则应使用
this.get启示()
this.启示()
@dinomario10我的方法isGuessRight不在Letter类中。。那么,我是否应该用isGuessRight方法初始化类字母?@rahulroc Letter l=新字母('a',false)是否需要这样做?完全正确。字母A=新字母('A',假)。创造了一个答案来举例说明。