0
   do {            
            System.out.println("Word: " + secretWord.getWordMask());
            //System.out.print("Guesses: " + guesses);
            System.out.print("Enter your guess: ");
            Scanner keyboard = new Scanner(System.in);
            String guess = keyboard.next();              
            WordHider revealChar = new WordHider();                
            revealChar.revealLetter(guess);
            System.out.println(revealChar.getWordMask());
            secretWord.revealLetter(guess);
            if (guess != ???)  {
                System.out.println("Miss");
            } 

私はそれほど多くのことを知り、ユーザーに文字を推測するように求めますが、私が理解できないのは、推測した文字が正しくない場合に「ミス」メッセージを出力する方法です。

public int revealLetter(String letter) {
    int count = 0;
    String newFoundWord = "";
    if (letter.length() == 1) {
        for (int i = 0; i < secretWord.length(); i++) {
            if ((secretWord.charAt(i) == letter.charAt(0))
                    && (wordMask.charAt(i) == HIDE_CHAR.charAt(0))) {
                count++;
                newFoundWord += letter;
            }
            else {
                newFoundWord += wordMask.charAt(i);
            }
        }
    }
    wordMask = newFoundWord;
    return count;

上記のコードは、推測された場合に文字を明らかにするコードです。

4

1 に答える 1

2

whichはにある回数secretWord.revealLetter(guess)を返します。ミスの場合は 0 です。したがって、それを条件に入れることができます:countguesssecretWordif

if (secretWord.revealLetter(guess) == 0)  {
    System.out.println("Miss");
}

への呼び出しは、一度だけ呼び出す必要があるため、secretWord.revealLetter(guess)の前に削除できます。if

于 2013-03-29T22:54:27.500 に答える