在刽子手游戏中用丢失的字母填充每一个地方

时间:2017-10-15 14:03:40

标签: java

我正在制作一个Hangman游戏。我差不多完成了它,但是我编写的代码,只要在隐藏的单词中用猜测的字母替换了两个或更多的点,就只适用于第一个。例如,如果要找到的单词是“ball”,并且用户输入“b”和“l”,而不是“b_ll”,则他将作为隐藏单词返回的单词是“b_l_”。这是一种奇怪的练习,因为用户首先键入字母,而不是在每次猜测后得到反馈。这是代码。

for (int c = 0; c < guessedLetters.length(); c++) 
{
    if (wordToBeFound.contains(Character.toString(guessedLetters.charAt(c)))) 
    {
       hiddenWordChars[wordToBeFound.indexOf(guessedLetters.charAt(c))] = 
       guessedLetters.charAt(c);          
    }
}

提前谢谢。

1 个答案:

答案 0 :(得分:2)

问题是indexOf()只提供它找到的第一个索引。意味着上面的代码在第一次命中后停止。解决方案是:

for (int c = 0; c < guessedLetters.toCharArray().length(); c++) 
{ // for each guessed letter
    for(int c1 =0; c1<wordToBeFound.toCharArray().length; c1++){  //look at each letter in the word, searching for a match
       if(guessedLetters[c]==hiddenWordChars[c1]){ 
           hiddenWordChars[c1] = guessedLetters[c];      
       }
    }
}