2017-03-02 107 views
0

我是JavaScript的新手,想了解更多信息。我正在嘗試創建自己的MineSweeping Game,但我無法將其中一個瓷磚設置爲陷阱,並在玩家按下所有瓷磚並避開陷阱時宣佈獲勝者。我想知道有人能幫助我嗎?我知道如果玩家要點擊陷阱,我會休息一下;功能在結束遊戲並顯示「遊戲結束」,但我不確定如何設置瓷磚功能被調用?如果玩家點擊3/4正確的牌,它會說「你贏了!」我的功能是否包含類似
if (clicked_tile != trap) { document.getElementById("info").innerHTML = "You won!"?
任何幫助,將不勝感激! 謝謝。掃雷遊戲(設置炸彈和聲明優勝者) - JavaScript

<html> 
<head> 
<style> 
.container { 
width:200px; 
height:200px; 
} 
#t1, #t2, #t3, #t4{ 
    width: 45px; 
    height: 45px; 
} 
#t1{background-color: red;} 
#t2{background-color: blue;} 
#t3{background-color: green;} 
#t4{background-color: yellow;} 
</style> 
<script> 

    var trap = Math.floor(Math.random()*4+1); 
    function play_game(id) 
    { 
    var tile_id = "t" + id; 
    var clicked_tile = document.getElementById(tile_id); 
    if (clicked_tile.style.backgroundColor == "grey"){ 
     document.getElementById("info").innerHTML = 
     "This was already clicked"; 
    } 
    else 
    { 
       clicked_tile.style.backgroundColor = "grey"; 
       document.getElementById("info").innerHTML = 
       "The trap is " + trap; 
    } 
    } 
    </script> 
    </head> 

    <body> 
    <div class = "container"> 
     <div id="t1" onclick="play_game('1')"></div> 
     <div id="t2" onclick="play_game('2')"></div> 
     <div id="t3" onclick="play_game('3')"></div> 
     <div id="t4" onclick="play_game('4')"></div> 
    </div> 
    <div id="info"></div> 

</body> 
</html> 
+0

它看起來像很多件丟失。例如,我沒有看到您設置了哪個圖塊的陷阱或檢查陷阱是否被點擊。一般問題的答案是,當您檢查點擊的圖塊是否爲陷阱時,您還要檢查點擊圖塊的數量是否等於安全圖塊的數量。如果屬實,你知道他們贏了。 P.S. 取出嵌入式JavaScript並使用事件處理程序而不是'onclick' – dlsso

+0

輕微格式化 –

回答

0

你在正確的軌道上。對於失敗的情況(點擊陷阱),你可以考慮增加一個if聲明:

else if (id == trap){ ... you lose! ... } 

的中獎條件是一個有點艱難。您可能會考慮使用JavaScript對象的結構:

//create a default minefield 
var mineboard = { 
    'tile1': { 
     'safe': true, 
     'clicked': false 
    }, 
    'tile2': { 
     'safe': true, 
     'clicked': false 
    }, 
    'tile3': { 
     'safe': true, 
     'clicked': false 
    }, 
    'tile4': { 
     'safe': true, 
     'clicked': false 
    } 
}; 

//set the trap 
var trap = Math.floor(Math.random()*4+1); //will be something like 'tile2' 
mineboard['tile' + trap].safe = false; //now a tile is not safe! 

您可以使用這樣的對象來跟蹤應用程序的狀態。當用戶點擊切片時,請將clicked設置爲true。每次用戶點擊時,檢查所有瓷磚 - 如果您計算safetrueclicked的三個地方爲true,則表明您的用戶已獲勝。