【发布时间】:2019-06-05 01:55:09
【问题描述】:
我正在尝试用 Javascript 为学校制作一个 simon 游戏。我目前已将代码设置为自己创建一个颜色数组序列,并且还成功地将用户答案保存到它自己的数组中,该数组在新序列时被清除。我现在正在尝试查看所述颜色序列是否与用户颜色序列匹配,但我不确定如何在没有任何漏洞的情况下进行检查。我得到的最好的结果是能够测试 userClicks 数组长度到 gamePattern 数组长度并确保最后一次点击确实是正确的,但无法找到一个好的方法来测试整个 userClicks 数组是否等同于游戏模式数组。我还会遇到数组必须在分配的时间内填充的问题,我可能会使用 setTimout() 函数来实现这一点。必须有一种更简单的方法来测试给定数组是否等于另一个数组。
/*************VARIABLES*************/
//store colors
var buttonColors = [
"green", //0
"red", //1
"yellow", //2
"blue" //3
]
//Game Pattern Storage
var gamePattern = [ /*Added From nextSequence*/ ];
var userClicks = [ /* Added from userClickHistory*/ ];
var level = 0;
var gameOn = false;
/******************BASIC FUNCTIONS*********************/
/*AWAIT KEYPRESS TO BEGIN GAME*/
//some document listener to look for keypress changing gameOn to `true`
//display the level to user
//activate nextSequence();
//log user clicks after nextSequence has executed, check the userClicks vs gamePattern
$(`.btn`).click(function () {
var buttonClicked = $(this).attr(`id`);
userClicks.push(buttonClicked);
animate(buttonClicked);
playSound(buttonClicked);
checkAnswer(userClicks);
});
function checkAnswer(userClicksArray) {
//display the current level to user
//NOT SURE WHAT TO DO ANYMORE
}
/************* NEXT SEQUENCE TO PROGRESS GAME *********/
function nextSequence() {
userClickPattern = [];
level++;
console.log(level);
randomNumber = Math.floor(Math.random() * 4)
randomChosenColor = buttonColors[randomNumber];
gamePattern.push(randomChosenColor);
animate(randomChosenColor);
playSound(randomChosenColor);
}
/******************** SOUNDS AND ANIMATIONS*************************************/
//buttons animations
function animate(clickedButton) {
$(`#` + clickedButton).fadeOut(100).fadeIn(100);
};
//Play a sound in corellation to randomChosenColor
function playSound(color) {
var sound = new Audio('sounds/' + color + '.mp3');
sound.play();
};
【问题讨论】:
标签: javascript arrays