Javascript - 需要指导:使用可点击的随机字母猜猜单词(游戏)

时间:2017-05-21 13:33:16

标签: javascript

我是stackoverflow的新手,目前正在学习编码的第2周。我正在寻找一些指导,因为我正在创建一个基本的JavaScript游戏,用户必须使用一组乱码来猜测电影的标题。

正如你在图片中看到的那样,底部的Shuffled(乱码)字母div由电影片名组成,在其他字母中混洗。我希望有13个字母可供选择,例如。 '星球大战'在其他随机字母中乱成一团。我希望这封信可以隐藏在点击上并在上面的电影标题div中显示。当字母顺序正确并拼出正确的标题时,播放器会移动到下一个单词。

我不确定自己是否走在正确的轨道上。

var Movie1 = 'Star Wars' (each letter being in an array maybe?)

~title.letter[] = display.none

if (letter == title.letter[]) {

return title.letter[] == display.true;

} 

//我想我需要创建一个随机字母数组,这些字母将被添加到洗牌电影标题的数组中,以便每个问题总共有13个字母。

//或许可以为每部电影添加fisher-yates shuffle算法?

2 个答案:

答案 0 :(得分:0)

两个阵列:

一个用于洗牌的字母

所选字母的一个

使用Array.splice按索引删除所选项目。

使用Array.push将所选字母添加到选定的字母数组中。

重新渲染洗牌后的字母

重新渲染所选字母

答案 1 :(得分:0)

你的主要问题是识别用户点击时的正确字母,放在前端,其余部分非常基本(将字母随机播放,然后显示用户点击,每个字母点击进入电影标题右侧框)。{{ 3}},不同之处在于,如果你想要像你想要的那样保护你的前端,你需要正确组合每个字母,我推荐一个数组,其中第一个维度是字母本身的维度。所以在底部的那个算法中,我需要首先用正确的字母顺序填充数组,以便在安装前端空盒时在每个框中都有一个数据属性,告诉与他对应的字母或者只是采用分割的数组通过javascript创建框或通过后端创建框来创建框时在forEach中使用它,以便稍后用正确的分割填充每个框:

 Outside Shuffle function:

         //here you'll need to create the multidimensional array before shuffle him
    movietitle = title.split("");
    //in jquery
    i = 0; 
    //certify you will have a right number of boxes
    boxes.each(function(){
         $(this).data('letter', movietitle[i]);
         i++;
    });


String.prototype.shuffle = function () {
    var a = this.split(""),
        n = a.length;     

    for(var i = n - 1; i > 0; i--) {
        var j = Math.floor(Math.random() * (i + 1));
        var tmp = a[i];
        a[i] = a[j];
        a[j] = tmp;
    }
    return a.join("");
}
console.log("the quick brown fox jumps over the lazy dog".shuffle());
//-> "veolrm  hth  ke opynug tusbxq ocrad ofeizwj"

console.log("the quick brown fox jumps over the lazy dog".shuffle());
//-> "o dt hutpe u iqrxj  yaenbwoolhsvmkcger ozf 

  console.log(movietitle.shuffle());
//-> "movietitleshuffled

PS:您不需要隐藏字母,使用数据属性在Movie Title容器中标识它们的正确位置,并将其附加到空框中。与电影标题不对应的字母只是将数据属性设置为空,并且您的算法将过滤将红色边框放入选定的错误字母和内容;