简体   繁体   中英

How can I show one alert when ever a var == 0?

I am currently trying to make one easy card comparison game but I am having some problems. When ever the var playerLife or computerLife == 0 I want to show a alert message and refresh the page for a new game. If you scroll down you can see that I am trying to do this using the if statment but it does not seem to work. I am quite new at this so all the help and tips are welcome. Also if this code that I have at the moment can be better I should love to hear it. Thanks for your time.

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');
    }
}());

You should considering changing your code like this:

// 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);
    }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM