Richlewis
Richlewis

Reputation: 15374

Count the number of times an input has been made javascript

What is the best practice when counting the number of times an action has been carried out in javascript? for example I have a prompt that asks for a number

 var playerGuess = prompt("What is your guess ");

What i would like to do is after 3 attempts end the game with another prompt.

What I am having difficulty with is actually counting the number of inputs

Thanks

I have tried creating a function do count the number of times an input has been made

    var guessCount = playerGuess.count;


   function limit(playerGuess){

  if (guessCount >= 3){
   alert("game over");
  } else{
   alert("carry on");
  }

 }

totally wrong i know but having a go

Upvotes: 0

Views: 4758

Answers (3)

Irongaze.com
Irongaze.com

Reputation: 1646

Like so:

// Global var to hold number of guesses
var guessCount = 0;

// Function to get the guess
function getGuess() {
  // Get a new guess
  var guess = prompt('What is your guess ');

  // Process guess here, eg:
  if (...whatever tests you want to make...) {
    // Good guess
    alert('Good guess: ' + guess);

  } else {
    // Bad guess
    guessCount += 1;

    // Fail out if too many guesses have been tried
    if (guessCount >= 3) {
      alert('Game over');
      return;
    }
  }
};

Cheers!

Upvotes: 1

smitelli
smitelli

Reputation: 7545

You could do this with a while loop and a variable to store the current iteration. Consider the following, which gives you three chances to guess the "secret" number:

var secretNumber = 42,
    youWon = false,
    i = 0;

while (i < 3) {
  var playerGuess = prompt("What is your guess?");

  if (playerGuess == secretNumber){
    youWon = true;
    break;
  }

  i++;
}

if (youWon) {
  alert("You got it!");
} else {
  alert("Sorry, you have no more tries left.");
}

This code loops over and over, incrementing i each time. It asks the question, and checks the answer. If the answer is right, it sets the youWon flag and breaks out of the loop, ending it early. Otherwise, the loop ends naturally after 3 iterations. After the loop is done, the youWon flag is checked to determine if the loop ended because the right answer was given, or if it ended because the number of tries was exhausted.

Upvotes: 1

Ahmet Ozisik
Ahmet Ozisik

Reputation: 443

You should evaluate the answer you get each time. If the answer is valid, take the count in another variable and when the count reaches the desired amount take no inputs.

var attempts    = 0;

function ask_question(){

  if(attempts > 3)
  {
   // you have played enough!
   return;
  }
  else
  {

   var playerGuess = prompt("What is your guess ");

   if(parseInt(playerGuess) != NaN && playerGuess != '')
   {
    attempts++;
    // do whatever you would like to do with playerGuess
   }
  }
}

Upvotes: 1

Related Questions