如何结束我的JQuery / Javascript游戏?

时间:2016-05-13 12:59:33

标签: javascript jquery

这是我程序中的脚本。这是一个更高/更低的游戏。我的数组中有更多的元素,然后是那些3,但我不希望代码太长了,所以我的问题是:aantalPogingen从5开始,每次他回答错误,这个将下降1,当他达到0时,我希望我的游戏停止,并给他一个通知,它是游戏结束。

var randomNummer = Math.floor((Math.random() * kaartenHart.length));
var punten = 0;
var aantalPogingen = 5;
var kaartenHart = ["img/heart1.png", "img/heart2.png", "img/heart3.jpg"];

function drawKaart() {
  $('#afbeeldingKaart').attr('src', kaartenHart[randomNummer]);
}

function hogereKaart() {
  var hoger = Math.floor((Math.random() * kaartenHart.length));
  $('#afbeeldingKaart').attr('src', kaartenHart[hoger]);
  if (hoger >= randomNummer) {
    punten++;
    $("#score").html("SCORE : " + punten);
  } else {
    aantalPogingen--;
    $("#pogingen").html("Number of wrong guesses left : " + aantalPogingen);
  }

  randomNummer = hoger;
  $('#afbeeldingKaart').attr('src', kaartenHart[hoger]);
}

function lagereKaart() {
  var lager = Math.floor((Math.random() * kaartenHart.length));
  $('#afbeeldingKaart').attr('src', kaartenHart[lager]);
  if (lager <= randomNummer) {
    punten++;
    $("#score").html("SCORE : " + punten);
  } else {
    aantalPogingen--;
    $("#pogingen").html("Number of wrong guesses left : " + aantalPogingen);
  }
  randomNummer = lager;
  $('#afbeeldingKaart').attr('src', kaartenHart[lager]);
}


$(document).ready(drawKaart);

3 个答案:

答案 0 :(得分:2)

这是我的两分钱......它没有经过测试,但你可以想到引入一些新功能来帮助你优化和管理代码;)

var randomNummer = Math.floor((Math.random() * kaartenHart.length));
var punten = 0;
var aantalPogingen = 5;
var kaartenHart = ["img/heart1.png","img/heart2.png", "img/heart3.jpg"];

function drawKaart() {
    $('#afbeeldingKaart').attr('src', kaartenHart[randomNummer]);
}

function hogereKaart() {
   if(isGameOver()){
        alerGameOver();
    } else {
        var hoger = Math.floor((Math.random() * kaartenHart.length)); 
        $('#afbeeldingKaart').attr('src', kaartenHart[hoger]); 
        if (hoger >= randomNummer){
             punten++; 
             $("#score").html("SCORE : " + punten);
         }
         else{
             setRemainingTries(aantalPogingen--); 
         }

         randomNummer = hoger;
         $('#afbeeldingKaart').attr('src', kaartenHart[hoger]);
     }
}

function lagereKaart() {
    if(isGameOver()){
        alerGameOver();
    } else {
        var lager = Math.floor((Math.random() * kaartenHart.length)); 
        $('#afbeeldingKaart').attr('src', kaartenHart[lager]); 
        if (lager <= randomNummer){
            punten++; 
            $("#score").html("SCORE : " + punten);
        }
        else{
            setRemainingTries(aantalPogingen--);
        }
        randomNummer = lager;
        $('#afbeeldingKaart').attr('src', kaartenHart[lager]);
    }
}


function alerGameOver(){
    alert('Game Over');
}

function isGameOver(){
    if(aantalPogingen == 0)
        return true;
    else
        return false;
}

function setRemainingTries(newPoints){
    if(isGameOver())
        alertGameOver();
    else {
        aantalPogingen = newPoints;
        $("#pogingen").html("Number of wrong guesses left : " + aantalPogingen);
    }     
}

$(document).ready(drawKaart);

答案 1 :(得分:1)

请你试试这个:

function hogereKaart() {
        if(aantalPogingen > 0){ //if aantalPogingen is greater than 0 then only allow user to perform the operation
           var hoger = Math.floor((Math.random() * kaartenHart.length)); 
           $('#afbeeldingKaart').attr('src', kaartenHart[hoger]); 
           if (hoger >= randomNummer){
                punten++; 
                $("#score").html("SCORE : " + punten);
            }
            else{
                aantalPogingen--; 
                if(aantalPogingen == 0) //checking it to 0
                {
                    alert("Your game is over");
                }
                else{
                    $("#pogingen").html("Number of wrong guesses left : " + aantalPogingen);
                }   
            }

             randomNummer = hoger;
             $('#afbeeldingKaart').attr('src', kaartenHart[hoger]);
        }
   }

    function lagereKaart() {
        if(aantalPogingen > 0){ //if aantalPogingen is greater than 0 then only allow user to perform the operation
            var lager = Math.floor((Math.random() * kaartenHart.length)); 
            $('#afbeeldingKaart').attr('src', kaartenHart[lager]); 
            if (lager <= randomNummer){
                punten++; 
                $("#score").html("SCORE : " + punten);
            }
            else{
                aantalPogingen--;
                if(aantalPogingen == 0) //checking it to 0
                {
                    alert("Your game is over");
                }
                else{
                    $("#pogingen").html("Number of wrong guesses left : " + aantalPogingen);
                }
            }
            randomNummer = lager;
            $('#afbeeldingKaart').attr('src', kaartenHart[lager]);
        }
    }

我已添加if条件以检查aantalPogingen的值为零。如果它大于0,则只在按钮click上进行计算。否则按钮click将不会改变任何内容。此外,如果aantalPogingen == 0,我们会向最终用户显示alert说他们的游戏结束了。希望这会帮助你。

答案 2 :(得分:1)

hogereKaart()lagereKaart()

的开头添加此内容
if(aantalPogingen ==0){
aler("game over");
return;
}

您可能还希望在aantalPogingen--之前或之后在else块中执行相同的检查,具体取决于您希望何时停止。考虑将其变成一个函数以避免重复代码。