我是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算法?
答案 0 :(得分:0)
答案 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容器中标识它们的正确位置,并将其附加到空框中。与电影标题不对应的字母只是将数据属性设置为空,并且您的算法将过滤将红色边框放入选定的错误字母和内容;