0
我想讓JS檢查點擊次序(就像在Simon Game中一樣)。其實我正在做這個遊戲,並被困在這個。它從乞討中凍結。
該代碼生成22個數組中的隨機數,其值爲0至3. 類似於[1,0,0,1,1,3,1,...]
之後,用戶必須點擊div算術級數中的元素:
frist - div [1]然後點擊兩個div [1,0],然後用戶點擊三個div [1,0,2]等等 - 和函數checkClick檢查用戶是否點擊具有正確數字的div。
這裏的代碼,它並不等待用戶點擊據我瞭解。我將不勝感激任何提示:檢查點擊次序不工作
function getRandArray() {
var array = [];
for (var i = 0; i < 22; i++) {
array[i] = Math.floor(Math.random() * 4);
}
return array;
}
var elems = document.querySelectorAll('.bigButton');
function checkClick(array, level) {
var counter = 0;
var result;
for (var i = 0; i < elems.length; i++) {
elems[i].addEventListener("click", function(e) {
if (+this.dataset.sound === array[counter]) {
counter++;
if (level === counter) {
result = true;
console.log(' level passed');
}
result = false;
}
})
}
return result;
}
function playGame() {
var randIndexArr = getRandArray();
document.getElementsByTagName('p')[0].innerHTML = randIndexArr;
console.log(randIndexArr);
for (var i = 0; i < 22; i++) {
for (var j = 0; j <= i; j++) {
if (j === i) {
if (!(checkClick(randIndexArr, i))) {
j = 0; //start over from the current level
}
}
}
}
}
playGame();
.bigButton {
height: 25px;
width: 35px;
border: 2px solid #464646;
margin: 1em;
text-align: center;
padding-top: 5px;
display: inline-block;
}
<div class="bigButton" id="greenButton" data-sound="1">1
</div>
<div class="bigButton" id="redButton" data-sound="2">2
</div>
<div class="bigButton" id="yellowButton" data-sound="3">3
</div>
<div class="bigButton" id="blueButton" data-sound="4">4
</div>
<p></p>
你需要指定什麼是「越野車」這件事 – James
功能checkClick(陣列,水平)不能正常工作 –
給您的工作代碼。我從你開始的地方開始,儘可能做少許改變。 –