使用数组用Java中的猜测字母替换问号

时间:2015-11-27 23:58:22

标签: java regex

我的项目的前提是创建一个Hangman类型的游戏,用户输入一个只包含字母和空格的短语,它打印出短语但用问号代替字母,然后第二个用户猜测可能在短语中的字母。我正在努力的唯一部分就是让猜到的字母再次替换问号。现在,如果您猜出任何正确的字母,则会显示整个短语。这是我的更新方法。任何反馈表示赞赏!

  public static int updateTemplateArray(char [] tmpArr, String sPhrase, char guess)
  {
    int vowel = 0;

    for (int i = 0; i < sPhrase.length(); i++)
    {
        if(guess == sPhrase.charAt(i))
        {
            guess = tmpArr[i];
            if (isVowel(guess))
            {
                vowel++;
            }
        }
    }
    return vowel;
} //end updateTemplateArray
编辑:我认为主要问题可能存在于不同的方法中,这就是

 public static void printTemplateArray(char [] tmpArr)
 {
    char [] qMark = new char[tmpArr.length];
    for (int i = 0; i < tmpArr.length; i++)
    {
        if(tmpArr[i] == ' ')
        {
            qMark[i] = ' ';
        }

        else
        {
            qMark[i] = '?';
        }
    }

    System.out.print(qMark);
}

1 个答案:

答案 0 :(得分:0)

好像是你的

<video width="320" height="240" controls>
  <source src="movie.ogg" type="video/ogg">
  <source src="movie.mp4" type="video/mp4">
   Your browser does not support the video tag.
</video>

应该是

guess = tmpArr[i];

您可能还想从更新方法中删除tmpArr[i] = guess; 语句,因为它可能不应该是它的一部分(特别是作为循环的一部分)。在该方法之后调用它,以查看数组上由System.out.println(tmpArr);表示的结果。

简化演示:

tmpArr

输出:

public static void updateTemplateArray(char[] tmpArr, String sPhrase, char guess) {

    for (int i = 0; i < sPhrase.length(); i++) {
        if (guess == sPhrase.charAt(i)) {
            tmpArr[i] = guess;
        }
    }
}

...

String phrase = "foo bar";
char[] arr = new char[phrase.length()];
Arrays.fill(arr, '?');

//guessing time
updateTemplateArray(arr, phrase, 'f');
System.out.println(arr);
updateTemplateArray(arr, phrase, 'b');
System.out.println(arr);
updateTemplateArray(arr, phrase, 'x');
System.out.println(arr);

RE编辑:

f?????? f???b?? f???b?? 方法中,您只需创建一个填充了空格或printTemplateArray(char [] tmpArr)的新数组。所以没有办法打印出这两个人的其​​他角色 如果你希望这个方法只隐藏?字符而不是空格而且没有被第二个玩家猜到,那么你应该存储在某处并传递给你的方法猜测该玩家(?似乎是对的收集的)。因此,您更正后的代码可能如下所示:

Set<Character>