0

我正在制作一个记忆匹配游戏,你可以将两张牌翻过来让它们匹配。

我用简单的 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    
}

如您所见,如果两张卡匹配,它们被设置为 display:none。我想要做的是在所有 36 个 div 都设置为显示后链接到“结束游戏”html 页面:无,或者我猜一旦函数 delayMatch() 被调用了 18 次。

我完全不知道该怎么做。

我的目标是这样的:

flippedArray[0] 和 flippedArray[1] 只是一个临时数组,用于检查当前播放的两张牌是否匹配。

我在想类似的事情:

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

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

2 回答 2

0

您可以在页面内使用一个变量进行计数。如果您在 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 回答