2017-03-02 12 views
0

私はJavaScript初心者で、それ以上に知りたいです。私自身のMineSweeping Gameを作成しようとしていますが、私は自分のタイルの1つをトラップとして設定し、プレーヤーがすべてのタイルを押してトラップを避けるときに勝者を宣言することに問題があります。誰かが私を助けることができるかどうか疑問に思っていた?私はプレーヤーがトラップをクリックした場合、私は休憩を使用することを知っている;ゲームを終了して "Game Over"を表示する最後の機能ですが、呼び出されるタイル関数を設定する方法は正確にはわかりません。そして、プレーヤーが3/4の正しいタイルをクリックすると、「You won!」と表示されます。私の機能には次のようなものが含まれていますか
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

多くの部分が欠落しているようです。私はどのタイルがトラップであるかを設定したり、トラップがクリックされたかどうかを確認したりしません。あなたの一般的な質問に対する答えは、クリックされたタイルがトラップであるかどうかをチェックするとき、クリックされたタイルの数===安全なタイルの数もチェックすることです。本当なら、あなたは彼らが勝ったことを知っています。 S. インラインJavaScriptを取り出し、 'onclick'の代わりにイベントハンドラを使用します – dlsso

+0

マイナーフォーメーション –

答えて

0

あなたは正しい軌道に乗っています。 (トラップをクリック)失う条件について、あなたは別のifのステートメントを追加することを検討できます。

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

勝利条件は少し厳しいです。

//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! 

このようなオブジェクトを使用すると、アプリケーションの状態を追跡できます。ユーザーがタイルをクリックすると、clickedtrueに設定されます。ユーザーがクリックするたびに、すべてのタイルを確認します。safetrueで、clickedが3つの場所にある場合は、trueです。

関連する問題