Rengga Dev – Math.random()
is an API in JavaScript. It is a function that gives you a random number. The number returned will be between 0 (inclusive, as in, it’s possible for an actual 0 to be returned) and 1 (exclusive, as in, it’s not possible for an actual 1 to be returned).
$(window).load(function() { var movesContainer = $('#moves'), playerCount = $('.Player-count'), computerCount = $('.Computer-count'); $('#moves li').on("click", function() { var yourMove = $(this).data('move'); processMoves(yourMove); var icon = $(this).find('.fa'); icon.addClass('animating'); var s = setTimeout(function(icon) { $('#moves li .fa').removeClass('animating'); clearTimeout(); }, 5000); }); }); function processMoves(yourMove) { var opponentMove = generateRandomOpponentMove(); calculateWinner(yourMove,opponentMove); } function generateRandomOpponentMove() { var availableMoves = ['rock','paper','scissors'], randomNumber = Math.floor(Math.random() * availableMoves.length), opponentMove = availableMoves[randomNumber]; return opponentMove; } function calculateWinner(yourMove, opponentMove) { switch(yourMove) { case 'rock': if(opponentMove === 'rock') { return 'draw'; } else if (opponentMove === 'scissors') { youWin(); } else { youLose(); } break; case 'paper': if(opponentMove === 'paper') { return 'draw'; } else if (opponentMove === 'rock') { youWin(); } else { youLose(); } break; case 'scissors': if(opponentMove === 'scissors') { return 'draw'; } else if (opponentMove === 'paper') { youWin(); } else { youLose(); } break; } } function youWin() { var playerScore = $('.Player-count'); var playerScoreUpdated = parseInt(playerScore.text()) + 1; playerScore.text(playerScoreUpdated); } function youLose() { var computerScore = $('.Computer-count'); var computerScoreUpdated = parseInt(computerScore.text()) + 1; computerScore.text(computerScoreUpdated); }
In this childhood classic game of Rock Paper Scissors, Math.random is used to generate a randomized move for the computer playing as the opponent. It makes a pick from the three available moves.