【问题标题】:Textbased Hangman - JavaScript基于文本的刽子手 - JavaScript
【发布时间】:2013-03-18 14:27:04
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 你知道什么是字符串,什么是控制结构,什么是函数吗?如果是这样,您应该能够自己解决问题。
  • 你有几种输出方式:readonlyinput,spaninnerHTML,...

标签: javascript text-based


【解决方案1】:

在学校我们也做了同样的事情,但是在 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 添加到您希望您的人看到结果的地方。

【讨论】:

  • 即使这是一个有效的答案,你也必须明白堆栈溢出不是为人们编写代码,他们必须自己做。公平地说,这个问题更多的是一个问题,但是,您应该只将提问者发送到正确的轨道上,并提供少量代码,而不是为提问者做所有事情。
  • 很抱歉,仍然缺少很多东西来使代码正常工作,但我想我会分享我的知识。
【解决方案2】:

我会使用正则表达式。

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

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

【讨论】:

    猜你喜欢
    • 2023-04-02
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 2015-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多