基本上我有以下内容:
1)游戏将随机预先选择20个随机序列
2)游戏将关闭点击事件监听器
3)游戏将显示每个级别的光序列(起始级别1)
4)游戏将打开click事件监听器,以便用户可以通过.buttons输入
5)游戏将评估用户的输入
我在第5步遇到麻烦......
在游戏仍在运行时如何评估用户的输入?我想过使用while循环,但似乎并没有很好地工作......
Board.prototype.getUserInput = function(){
board.userInput = []; //reset the user input
$(".button").click(function(){
var currentLevel = board.sequence.slice(0,board.index);
var color = $(this).attr('id');
board.userInput.push(color)
board.evaluateInput(currentLevel);
})
}
答案 0 :(得分:1)
这是我对游戏所做的旧实现。 http://codepen.io/antoniskamamis/pen/pJAxq?editors=0010#0
基本上,由于您已预先定义了订单,所以您只需在每次点击颜色时增加一个计数器,并检查点击的颜色是否是预定义颜色的第n个位置
解决方案的伪代码
var predefinedColors = ['red', 'yellow',...]
var turn = 0;
buttons.addEventListener("click", ev => {
if(ev.target.classList.contain(predefinedColors[turn]){
//right guess
turn++
} else {
// wrong guess reset game
}
})