0

私は絞首刑執行人ゲームを作っています。これは私のコードの一部であり、すべての問題があります:

    //play method
    private void play() throws IOException
    {
        guess(alphabet);

        usedLetters(letterUsed);

        do{
            centreln("You have already guessed this " + alphabet + " and the others listed above.");
            guess();
        } while (letterUsed == true);//will keep asking until letter was not used

        if (letterUsed == false)
        {
            life--;
            underWord();
        } //only if the letter was not used, it will be checked for in the current word trying to be solved

        if (life == 0)
        {
            checkWord(currentWord[] , checkLetter[]);
        }
    }//End of play method

//------------------------------------------------ -------------------------------------------------- ----------------------------

//maskWord method to return the word with all characters not in letters replaced by _'s
private void underWord(char currentWord[] , char checkLetter[]) throws IOException //add parameters what it recieves
{

    for (int i = 0; i<currentWord.length; i++) {
       for (int index = 0; index<checkLetter.length; index++){
            if (used.contains(currentWord.charAt(i)))
            {
                checkLetter[index] =  currentWord.charAt(i);
            }

            else
            {
                checkLetter[index] = '_';
            }
       }
    }
    for (int i = 0; i < checkLetter.length; i++)
    {
        System.out.println(checkLetter[i]);
    }
}//End of maskWord method

//------------------------------------------------ -------------------------------------------------- ----------------------------

//guess method to ask for user's guess
private void guess(char used[]) throws IOException//add parameters what it recieves
{
    centreln("Guess a letter in this 5-letter word: ");
    alphabet = kb.readline().charAt[0];
    used[dataSize] = alphabet;
    //adds guess to used letters array

}//End of guess method

//------------------------------------------------ -------------------------------------------------- ----------------------------

//usedLetters method to check if user's guess has already been guessed
private boolean usedLetters(char used[]) throws IOException//add parameters what it recieves
{
    boolean letterUsed = false;
    for(int x=0; x<used.length; x++)
    {
        if(alphabet == used[x])
        {
            letterUsed = true;
        }
        else
        {
            letterUsed = false;
        }
     }
     return letterUsed;
    for (int index = 0; index < used.length; index++)
    System.out.println(used[index]);
    //Or could i just do centreln(usedAlphabet)
}//End of usedLetters method

//------------------------------------------------ -------------------------------------------------- ----------------------------

//checkWord method to see if the user has got the correct word
private void checkWord() throws IOException
{
    for(int x=0; x<currentWord.length; x++)
    {
        if(checkLetter.equals(currentWord))
        {
            centreln("HUZZAH! You have guessed the word!");
            centreln("You have completed this game of hangman.");
            menu();
        }

        {
            centreln("You have run out of guesses!");
            centreln("The word was:");
                for (int index = 0; index < currentWord.length; index++)
                {
                    System.out.print(currentWord[index]);
                }
            menu();
        }
    }
}//End of checkWord method

}

//------------------------------------------------ -------------------------------------------------- ----------------------------

だから私はこのエラーを思いつきます:

C:\Users\HOME\Documents\twoHangman\src\twoHangman.java:272: error: '.class' expected
            checkWord(currentWord[] , checkLetter[]);
                                    ^
C:\Users\HOME\Documents\twoHangman\src\twoHangman.java:272: error: '.class' expected
            checkWord(currentWord[] , checkLetter[]);
                                                   ^

何が悪いのかわかりません...助けてください!

4

3 に答える 3

3

私はあなたのplay()方法に問題があると思います。それ以外の

if (life == 0)
{
    checkWord(currentWord[] , checkLetter[]);
}

あなたは書くべきです

if (life == 0)
{
    checkWord(currentWord, checkLetter);
}

配列をパラメータとして渡します。

ケントが指摘したように、他のエラーはあなたのcheckWordメソッドにあります。それ以外の

private void checkWord() throws IOException

あなたは書くべきです

private void checkWord(char currentWord[], char checkLetter[]) throws IOException

このメソッドが文字配列型の2つの引数を取ることを宣言します。

于 2012-12-20T22:55:26.873 に答える
1

最初のコードブロックであるplayメソッドには、次のメソッド呼び出しがあります。

checkWord(currentWord[] , checkLetter[]);

しかし、checkWord()のメソッドシグネチャを見てください。

private void checkWord() throws IOException

パラメータはどこにありますか?

あなたのコードはコンパイルされていますか?

于 2012-12-20T22:55:19.927 に答える
0

checkWord引数をとらないメソッドが定義されていますが、そのメソッドを呼び出すときに2つのパラメーターを渡す場合は、2つのパラメーターcheckWord(currentWord[] , checkLetter[]);をとるメソッドを定義する必要があります。また、あなたが呼んcheckWord(currentWord[], checkLetter[])でいるとき、それはあるべきですcheckWord(currentWord, checkLetter)

質問に答えるために編集する:問題を解決する1つの方法は、checkWordこの方法の定義を更新することです。

private void checkWord(String[] currentWord, String[] checkLetter) throws IOException
于 2012-12-20T22:56:02.140 に答える