2016-05-18 9 views
0

私は現在、簡単なカード比較ゲームを作成しようとしていますが、いくつか問題があります。いつでもvar playerLifeまたはcomputerLife == 0警告メッセージを表示して、新しいゲームのページを更新したいと思います。下にスクロールすると、if文を使ってこれをやろうとしているのがわかりますが、うまく動作していないようです。私はこれで全く新しいので、すべてのヘルプとヒントは大歓迎です。また、私が現時点で持っているこのコードがうまくいくなら、私はそれを聞くのが大好きです。御時間ありがとうございます。あなたはこのようにコードを変更する必要があります考慮var == 0のときに警告を表示するにはどうすればよいですか?

var cards = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 
      1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8,8, 9, 9, 10, 10]; 
var shuffledCards = shuffle(cards); 
var playerDeck = shuffledCards.slice(0,20); 
var computerDeck = shuffledCards.slice(20); 
var playerlife = 25; 
var computerLife = 25; 

function shuffle(array) { 
    var m = array.length, t, i; 

    // While there remain elements to shuffle… 
    while (m) { 

     // Pick a remaining element… 
     i = Math.floor(Math.random() * m--); 

     // And swap it with the current element. 
     t = array[m]; 
     array[m] = array[i]; 
     array[i] = t; 
    } 

    return array; 
} 

function getTopCard(deck) { 
    return deck[0]; 
} 

function dealCards() { 
    var playerTopCard = getTopCard(playerDeck); 
    var computerTopCard = getTopCard(computerDeck); 
    var cardImage = "<img src='http://i1194.photobucket.com/albums/aa365/Sarah_Dunlap/card_back.png'/>"; 

    whoWon(); 
    console.log('--------------------'); 

    document.getElementById("card1").innerHTML = "<div class='cardNumber'>" + playerTopCard + '</div>' + cardImage; 
    document.getElementById("card2").innerHTML = "<div class='cardNumber'>" + computerTopCard + '</div>' + cardImage; 
    document.getElementById("scoreComputer").innerHTML = computerLife; 
    document.getElementById("scorePlayer").innerHTML = playerlife; 
} 

function whoWon() { 
    var playerTopCard = getTopCard(playerDeck); 
    var computerTopCard = getTopCard(computerDeck); 

    if (playerTopCard > computerTopCard) { 
     console.log('Player Won! ' + playerTopCard + '/' + computerTopCard); 
     computerLife = computerLife - (playerTopCard - computerTopCard); 
     playerDeck.shift(); 
     computerDeck.shift(); 
     console.log('Player Life - ' + playerlife); 
     console.log('Computer Life - ' + computerLife); 
    } else if (playerTopCard < computerTopCard) { 
     console.log('Computer Won! ' + playerTopCard + '/' + computerTopCard); 
     playerlife = playerlife - (computerTopCard - playerTopCard); 
     playerDeck.shift(); 
     computerDeck.shift(); 
     console.log('Player Life - ' + playerlife); 
     console.log('Computer Life - ' + computerLife); 
    } else { 
     console.log('Tie! ' + playerTopCard + '/' + computerTopCard); 
     playerDeck.shift(); 
     computerDeck.shift(); 
     console.log('Player Life - ' + playerlife); 
     console.log('Computer Life - ' + computerLife); 
    } 
} 

shuffle(cards); 
console.log('playerDeck - ' + playerDeck); 
console.log('computerDeck - ' + computerDeck); 

document.getElementById("click").addEventListener("click", dealCards); 

(function gameEnd() { 
    if (playerlife <=0 || computerLife <=0) { 
     alert('DONE'); 
    } 
}()); 
+0

あなたは変数が変更された後、これらのチェックを実行する必要があります。 Javascriptでスクリプト全体でこれらの変数を監視することはできません。 'whowon'の中で、' computerLife'の新しい値を設定した後、それが0になっているかどうかをチェックします。新しい値 'playerLife'を設定したら、それが0になっているかどうかを確認します。あなたのアラートが条件に該当する場合。 –

+0

私は見ることができません== 0私はこれを参照してくださいif(playerlife <= 0 || computerLife <= 0){' – JonH

答えて

0

// new function 
function checkIsGameOver() { 
    if (playerlife <=0 || computerLife <=0) { 
     alert('DONE'); 
    } 
} 
function whoWon() { 
    var playerTopCard = getTopCard(playerDeck); 
    var computerTopCard = getTopCard(computerDeck); 

    if (playerTopCard > computerTopCard) { 
     console.log('Player Won! ' + playerTopCard + '/' + computerTopCard); 
     computerLife = computerLife - (playerTopCard - computerTopCard); 
     // added code here... 
     checkIsGameOver(); 
     playerDeck.shift(); 
     computerDeck.shift(); 
     console.log('Player Life - ' + playerlife); 
     console.log('Computer Life - ' + computerLife); 
    } else if (playerTopCard < computerTopCard) { 
     console.log('Computer Won! ' + playerTopCard + '/' + computerTopCard); 
     playerlife = playerlife - (computerTopCard - playerTopCard); 
     // added code here... 
     checkIsGameOver(); 
     playerDeck.shift(); 
     computerDeck.shift(); 
     console.log('Player Life - ' + playerlife); 
     console.log('Computer Life - ' + computerLife); 
    } else { 
     console.log('Tie! ' + playerTopCard + '/' + computerTopCard); 
     playerDeck.shift(); 
     computerDeck.shift(); 
     console.log('Player Life - ' + playerlife); 
     console.log('Computer Life - ' + computerLife); 
    } 
} 
関連する問題