Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- GAME RULES:
- - The game has 2 players, playing in rounds
- - In each turn, a player rolls a dice as many times as he whishes. Each result get added to his ROUND score
- - BUT, if the player rolls a 1, all his ROUND score gets lost. After that, it's the next player's turn
- - The player can choose to 'Hold', which means that his ROUND score gets added to his GLBAL score. After that, it's the next player's turn
- - The first player to reach 100 points on GLOBAL score wins the game
- */
- var scores, roundScore, activePlayer, gamePlaying;
- init();
- //document.querySelector('#current-' + activePlayer).textContent = dice; // SETTER
- //document.querySelector('#current-' + activePlayer).innerHTML = '<em>' + dice + '</em>';
- //var x = document.querySelector('#score-0').textContent; // GETTER
- //console.log(x);
- // Events: Notifications that are sent to notify the code that something happened
- // on the webpage;
- // Examples: clicking a button, resizing a window, scrolling down, or pressing
- // a key.
- // Event listener: a function that performs an action based on a certain event.
- // It waits for a specific event to happen.
- //var lastDice;
- document.querySelector('.btn-roll').addEventListener('click', function() {
- if(gamePlaying) {
- // 1. Random number
- var dice1 = Math.floor(Math.random() * 6) + 1;
- var dice2 = Math.floor(Math.random() * 6) + 1;
- //Check for double 6
- // 2. Display the result
- document.getElementById('dice-1').style.display = 'block';
- document.getElementById('dice-2').style.display = 'block';
- document.getElementById('dice-1').src = 'dice-' + dice1 + '.png';
- document.getElementById('dice-1').src = 'dice-' + dice2 + '.png';
- // 3. Update the round score IF the rolled number was NOT 1
- if (dice1 !== 1 && dice2 !== 1) {
- //Add score
- roundScore += dice1 + dice2;
- document.querySelector('#current-' + activePlayer).textContent = roundScore;
- } else {
- //Next player
- nextPlayer();
- }
- /*
- if (dice === 6 && lastDice === 6) {
- scores[activePlayer] = 0;
- document.querySelector('#score-' + activePlayer).textContent = '0';
- nextPlayer();
- } else if (dice > 1) {
- //Add score
- roundScore += dice;
- document.querySelector('#current-' + activePlayer).textContent = roundScore;
- } else {
- //Next player
- nextPlayer();
- }
- lastDice = dice;
- */
- }
- });
- // Implementing Our 'Hold' Function and the DRY Principle
- document.querySelector('.btn-hold').addEventListener('click', function() {
- if(gamePlaying) {
- // Add current score to global score
- scores[activePlayer] += roundScore;
- // Update the UI
- document.querySelector('#score-' + activePlayer).textContent =
- scores[activePlayer];
- var input = document.querySelector('.final-score').value;
- var winningScore;
- // Undefined, 0, null, or "" are COERCED to false. Anything else is true.
- if(input) {
- var winningScore = input;
- } else {
- winningScore = 100;
- }
- // Check if player won the game
- if (scores[activePlayer] >= winningScore) {
- gamePlaying = false;
- document.querySelector('#name-' + activePlayer).textContent =
- 'WINNER!';
- document.getElementById('dice-1').style.display = 'none';
- document.getElementById('dice-2').style.display = 'none';
- document.querySelector('.player-' + activePlayer + '-panel').classList.add('winner');
- document.querySelector('.player-' + activePlayer + '-panel').classList.remove('active');
- } else {
- nextPlayer();
- }
- }
- });
- function nextPlayer() {
- activePlayer === 0 ? activePlayer = 1 : activePlayer = 0;
- roundScore = 0;
- document.getElementById('current-0').textContent = '0';
- document.getElementById('current-1').textContent = '0';
- document.querySelector('.player-0-panel').classList.toggle('active');
- document.querySelector('.player-1-panel').classList.toggle('active');
- document.getElementById('dice-1').style.display = 'none';
- document.getElementById('dice-2').style.display = 'none';
- }
- // Creating A Game Initialization Function
- document.querySelector('.btn-new').addEventListener('click', init);
- function init() {
- scores = [0, 0];
- roundScore = 0;
- activePlayer = 0;
- gamePlaying = true;
- document.getElementById('dice-1').style.display = 'none';
- document.getElementById('dice-2').style.display = 'none';
- document.getElementById('score-0').textContent = '0';
- document.getElementById('score-1').textContent = '0';
- document.getElementById('current-0').textContent = '0';
- document.getElementById('current-1').textContent = '0';
- document.getElementById('name-0').textContent = 'Player 1';
- document.getElementById('name-1').textContent = 'Player 2';
- document.querySelector('.player-0-panel').classList.remove('winner');
- document.querySelector('.player-1-panel').classList.remove('winner');
- document.querySelector('.player-0-panel').classList.remove('active');
- document.querySelector('.player-1-panel').classList.remove('active');
- document.querySelector('.player-0-panel').classList.add('active');
- }
- // Finishing Touches
- // Coding Challenge 6
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement