0

2 枚のカードを裏返して一致させるメモリー マッチ ゲームを作成しています。

以下に示すように、単純な if ステートメントでそれを行っています。

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.setTimeout(function() { delayMatch() }, 500);        
        console.log("EQUAL");
        score = +25000;
    }
    else
    {
        window.setTimeout(function() { delayNoMatch() }, 500); // if click 1 != click 2 then display card.png 
        console.log("NOT EQUAL");
        score = -1999;
    }
        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 つのカードが一致するかどうかは、display:none に設定されています。私がやろうとしているのは、36 個の div すべてが表示されるように設定されたら、「ゲーム終了」の html ページにリンクすることです: なしまたは関数 delayMatch() が 18 回呼び出されたらと思います。

どうすればこれができるのか、私は完全に途方に暮れています。

私の目標は次のようなものです:

FlippedArray[0] と FlippedArray[1] は、現在プレイ中の 2 枚のカードが一致するかどうかを確認するための単なる一時的な配列です。

私は次のようなことを考えていました:

endGameCounter =0;
    endGameCounter++; //in the matching if-statement

then    if(endGameCounter == 18)
    {
    location.href='link here'
    }
4

2 に答える 2

0

ページ内のカウントには 1 つの変数を使用できます。JSP で実行している場合は、JSTLが役立ちます。

変数を設定し、時々値をチェックするために使用します。

c:set var="COUNT" value="SOMETHING"/>
于 2013-10-16T20:35:25.967 に答える
0

試す

function GameIsOver(){
  for (var i = 0; i < allCards.length; i++) {
    if(allCards[i].style.display === 'none')return false;
  }
  return true;
}
于 2013-10-16T20:31:24.807 に答える