通过javascript进行单词解码?

时间:2010-03-07 19:53:01

标签: javascript

实施“Word Decoder”游戏。该游戏将向玩家呈现一系列混乱的单词(最多20个单词)并挑战他/她试图解读它们。每次显示新单词,并且为用户提供文本输入以写入未加扰的单词。 一旦玩家认为该单词已被正确解码,他点击“检查答案”按钮。如果玩家的答案是正确的,他的分数会增加1。如果他的回答不正确,他会得到通知,然后他会得到一个不同的词。

我理解了这个问题,但我不知道如何生成它,甚至不知道如何启动它! 有什么帮助吗?

3 个答案:

答案 0 :(得分:1)

首先,尝试将问题分解为您需要的东西;想想名词和动词。这只是用新术语重写问题。你需要:

  • 字:只是一个字符串,但它是你需要的名词,所以请列出来。
  • 字典:可供选择的单词集合(在测试期间,您不需要很多)
  • display:因为你正在使用JS,所以这些成为HTML元素
    • 乱词
    • 文字输入
    • 提交按钮以查看答案
    • 得分
    • “错误答案”通知员
  • 争抢一个字
  • 比较单词:你如何比较两个单词,看看是否是另一个单词的排列?做得对,字谜不是问题。
  • 检查答案
  • 增加分数
  • 通知用户错误答案
  • 提出一个新的混乱词

任何以“to”开头的项目都是动词;其他任何东西都是名词。名词成为对象,动词成为方法/功能。

上述主要采用top-down方法,与bottom-up形成对比(请注意,自上而下与自下而上不是一个或两个命题)。其他可能有助于不知道从哪里开始的方法是test driven development或其分支behavior driven development。有了这些,您首先要在代码中定义程序应该执行的操作,然后填写详细信息以使其执行此操作。

比较单词的提示:问题基本上是定义equivalence class - 如果一个是另一个的排列,则两个字符串是等价的。字符串的排列组合在一起形成该字符串的等价类;如果字符串是等价的,则两个字符串在同一个等价类中。正如链接文档所指出的那样,通过选择类的单个元素作为类代表来很好地表示等价类。最后,您可以转换等价类定义:如果两个字符串属于同一个等价类,则它们是彼此的排列。

答案 1 :(得分:0)

查看通过XHR加载字典 网上有很多可用的[http://www.mieliestronk.com/wordlist.html注意:它包含一些脏话,如果你是为了学术目的而这样做,因为你的作业,你应该寻找一个“干净”的清单]。 ..

为了扰乱这个词:将你的字符串变成一个char数组,然后找到一个数组shuffle函数[它们很容易编写,我为我的Bogosort实现写了一个] ...

function shuffle(b)
{
    var a = b.concat([]); //makes a copy of B, b won't be changed...
    var final = [];
    while(a.length != 0)
    {
        //0 -> a length-1
        var targIndex = Math.round((a.length-1)*(Math.random()));
        var value = a[targIndex]
        a.remove(targIndex);
        final.push(value);
    }
    return final;
}

当用户完成输入时,只需将输入与答案进行比较[不区分大小写,忽略空格]如评论中所述,还有anagrams的可能性,所以一定要检查那些......也许,你可以只需验证字典中存在的单词。

答案 2 :(得分:0)

这是我从你们那里得到的!我生成另一个代码,但它不是写 我试图找出正确的解决方案..

              作业1:任务3

    <script type="text/javascript">

        function check()
        {


            var correctArray = new Array ("cat", "car");
            correctArray[0]= 0;

            var wrong = new Array("tac", "rac");
            var score = 0;

            if( correctArray().index.length == wrong().index.length){
                alert("This is correct:" , correctArray());

            }else{

                alert(" please try again ");
            }
               return correctArray++, score++;
        }

    </script>


</head>
<body>


    <form>
        <h3> Words Decoder  </h3>

        The scrambled word is: <input type="text" name="showlabel" value="" disabled="disabled" onclick='check().getElementById("wrong")' />  <br/><br/>

        Please enter the unscrambeld word: <input type="text" name="userInput" value="" />

        <input type="submit" value="Check" onclick="check()" /><br/><br/>
        The Score is : <input type="text" name="score" value="" disabled="disabled" /><br/><br/>



    </form>


</body>

它应该像例如:

显示“tac”字样。用户输入“cat”。答案是正确的,用户的分数是1。 然后显示“niol”一词。用户输入“oinl”。答案不正确,用户会收到警报,并且分数保持不变。 然后游戏显示下一个单词,依此类推。在最后一个单词之后,最终得分将给予玩家。