由javascript解释的单词?

问题描述:

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

我明白这个问题,但我不知道如何生成它,甚至不知道如何启动它! 请帮忙吗?

+0

有一件事要记住,许多单词是anagrams,字母可以重新排列,使多个正确的单词。要么确保你的话没有一个是一个字谜,或者为每个字都保留一组正确的答案。 – kennebec 2010-03-07 20:14:29

看看通过XHR加载字典。
这里有很多可用的在线[http://www.mieliestronk.com/wordlist.html注意:它包含一些发誓的话,如果你打算这样做是出于学术目的,因为它的功课,你应该寻找一个“干净的”名单] ...

进行加扰的一句话:让你的字符串转换成字符数组,然后找到一个数组随机播放功能[他们是简单的写,我写了一个为我实现BOGO排序的] ...

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,所以一定要检查thos é...也许,你可以简单地验证字典中存在的单词。

+0

明白了! ,谢谢你,你的想法有点像问题想法 谢谢我的代码..这是不正确的,但至少我从它开始。如果你有任何想法如何修改它,这将是非常有帮助的 – Alaya 2010-03-08 14:43:09

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

  • word:只是一个字符串,但它是一个你需要的名词,所以列出它。
  • 词典:一组单词供选择(在测试过程中,你不需要很多)
  • 显示:这些成为HTML元素,因为你用JS工作
    • 炒字
    • 文本输入
    • 提交按钮,检查答案
    • 得分
    • “错误的答案” 通知
  • 打乱一个词
  • 比较单词:如何比较两个单词以查看一个单词是否是另一个单词的排列?做正确的,anagrams不是问题。
  • 检查答案
  • 递增得分
  • 通知不正确的答案的用户
  • 提出一个新的炒字

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

以上大部分是top-down的方法,与bottom-up(请注意,自上而下和自下而上不是一个任一或命题)相反。其他可能有助于不知道从哪里开始的方法是test driven development或其分支behavior driven development。通过这些,你可以在代码中定义程序应该做什么,然后填写详细信息以便做到这一点。

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

+0

:D thanx很多..我欣赏它..我跟着你的提示和解释 上帝保佑你 – Alaya 2010-03-08 14:38:29

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

作业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”。用户输入“猫”。答案是正确的,用户的分数是1. 然后显示“niol”一词。用户输入“oinl”。答案是不正确的,用户会收到警报,并且分数保持不变。 游戏然后显示下一个单词等。最后一句话后,最终得分给予玩家。

+0

这是一个好的开始在家庭作业,但如果你有新的问题,它应该出现一个新的问题。 StackOverflow是一个问答网站,而不是论坛。答复帖子应回答问题,澄清和进一步的信息应通过编辑原始问题(或答案)。澄清请求和其他不属于问题或答案的其他说明应作为评论(如本文所述)。当你有50个代表并且始终在你自己的问题中时,你可以在他人的问题中发表评论。 – outis 2010-03-08 20:26:06

+0

如果您尚未阅读,请阅读SO常见问题解答(http://stackoverflow.com/faq),然后稍微介绍一下SO的结构。您还应该阅读http://catb.org/~esr/faqs/smart-questions.html,了解有效询问问题的提示。 – outis 2010-03-08 20:28:35

+0

好的。感谢您的帮助。我会读它们。 – Alaya 2010-03-08 20:56:15