HTML/Javascript で単純なフリップカード/メモリ マッチ (スーパー マリオ ブラザーズ 3 のような) ゲームを作成しようとしていますが、setInterval コマンドにわずかな問題があります。
完全なコードへのリンクは次のとおりです。http://jsfiddle.net/msfZj/ 主な問題/主なロジックは次のとおりです。
if(click == 2) //denotes two cards being clicked
{
if(flippedArray[1].src === flippedArray[0].src) // if click 1 == click 2 then refer to function 'delayMatch' which sets click 1 and 2 cards to not be displayed
{
window.setInterval(function() { delayMatch() }, 500);
console.log("EQUAL");
}
else
{
window.setInterval(function() { delayNoMatch() }, 500); // if click 1 != click 2 then display card.png
console.log("NOT EQUAL");
}
function delayMatch() //function for matching pairs
{
flippedArray[0].style = "display:none;";
flippedArray[1].style = "display:none;";
}
function delayNoMatch() //function for non-matching pairs
{
flippedArray[0].src = "card.png";
flippedArray[1].src = "card.png";
}
click = 0; // when clicked two cards set click back to zero
}
クリックした最初の 2 つのカードは常に機能しますが、その時点から setInterval は 500 ミリ秒ごとに無限ループで関数を何度も実行し続けます。
誰かがこれを適切に行う方法について正しい方向に向けることができれば、非常に感謝しています.
どうぞよろしくお願いいたします。