首页 > 解决方案 > 我完全迷失在这个刽子手游戏中

问题描述

所以我有这个项目,我目前被困在代码的“guessLetter”部分。

public boolean guessLetter( String letter ) {
    /* If the letter has already been guessed, print out a message that
     * it's already been guessed and return true.
     */
    letter = letter.toUpperCase();
    for(int x = 0; x<letter.length(); x++){
        String a = letter.substring(x, x+1);
        if(letter.equals(a)){
            System.out.println("This letter was already found");
        }
    }

    /* Check to see if the letter is in phrase. If it is, put it into
     * solved in the correct place, replacing the underscore. 
     */
    for(int y = 0; y<letter.length(); y++){
        String blank = " ";
        String b = letter.substring(y, y+1);

        return true;
    }



    /* Fix this so it returns the right value, every time */
    return false;

}

正如你所看到的,我一直在尝试一些东西,但我认为我当前的代码根本不起作用,很明显我还没有完成。

如果您能解释我的错误以及原因,我将不胜感激。

标签: javaproject

解决方案


我喜欢做作业:-)

这应该让你开始。

public class HangMan {
    HashSet<String> guessedLetters = new HashSet();
    String phrase = "myWord";

    public boolean guessLetter(String letter) {
        if (guessedLetters.contains(letter)) {
            return true;
        } else {
            guessedLetters.add(letter);
            return false;
        }
    }

    public void inPhrase(String letter) {
        if (phrase.contains(letter)) {
            // Get all index of letter
            int index = phrase.indexOf(letter);
            while (index >= 0) {         
                index = phrase.indexOf(letter, index + 1);
                // Show the letter at this index
            }
        } else {
            // Decrease the number of guesses till zero, then update hangman?
        }
    }

}

推荐阅读