-3

我有一个非标记的头脑风暴练习要做,这与进一步标记的课程有关,这将是相似但更复杂的。基于非标记文本的 Hangman 的任务基本上是创建一个使用以下四个随机单词中的任何一个的 JavaScript Hangman 游戏:

var words =["programming", "practical", "software", "development"];

程序应该首先告诉用户"Guess the word: _______ ;现在下划线代表要猜测的单词,它必须是上述四个单词之一。程序然后要求用户输入一个字母,如果正确,用户将被告知他在游戏中还有“十个围棋”并填写一个下划线。如果不是,用户会被告知他剩下 9 个 go 并且下划线保持原样。

'Guess the word: _____-'我知道如何向用户询问输入-例如,对于如何创建更改为的程序部分,我真的非常困惑"Guess the word: __I___"

我必须在这里使用什么方法?任何建议或通用示例都会非常有帮助!万分感谢!

4

2 回答 2

0

在学校我们做了同样的事情,但是在 C# 中,如果我没记错的话,我们做了这样的事情:

        //this part creates the number of stripes depending on your word.
        //this part also breaks up the complete word into an array.
        var word = "programming";
        var letters = word.length;
        var loose_letters = new Array();
        var stripes = new Array();

        for(i = 0; i <= letters; i++)
        {
           stripes[i] = "_";
           loose_letters[i] = word.substring(i, i+1);
        }

现在制作一个文本框之类的东西,用户可以在其中用按钮填写字母

<input type = "text" id = "letter" name = "letter" />
<input type = "button" onClick="checkLetter();" value = "OK" id= "btn_OK" />

checkLetter 函数:

function checkLetter()
{
   letter = document.getElementById("letter").value;

   for(i = 0; i < letters; i++)
   {
     if(letter == loose_letters[i])
     {
        stripes[i] = letter;
     }
     var complete_string += stripes[i]
   }     
}

我希望这会有所帮助,不要忘记添加complete_string到您希望您的人们看到结果的地方。

于 2013-03-18T14:53:08.940 回答
0

我会使用正则表达式。

var answer = "programmer";
var guessed = "aeiou";
var pattern = new RegExp("[^" + guessed + "]*", "gi");
var display = answer.replace(pattern, "_");

当他们猜出一个字母时,将其添加到guessed. 您可以使用长度guessed来查看他们是否向左转,并display.indexOf("_")查看他们是否得到正确的答案。

于 2013-03-18T15:47:06.410 回答