-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
94 lines (82 loc) · 3.14 KB
/
Copy pathscript.js
File metadata and controls
94 lines (82 loc) · 3.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
'use strict';
//Selecting necessary elements
const player0 = document.querySelector('.player--0');
const player1 = document.querySelector('.player--1');
const score0 = document.querySelector('#score--0');
const score1 = document.querySelector('#score--1');
const currentScore0 = document.querySelector('#current--0');
const currentScore1 = document.querySelector('#current--1');
const dice = document.querySelector('.dice');
const btnNew = document.querySelector('.btn--new');
const btnRoll = document.querySelector('.btn--roll');
const btnHold = document.querySelector('.btn--hold');
//Declare variable
let scores, currentScore, activePlayer, playing;
function init() {
//initialize variables
scores = [0, 0]
currentScore = 0;
activePlayer = 0;
playing = true;
//Reset UI
score0.textContent = 0;
score1.textContent = 0;
currentScore0.textContent = 0;
currentScore1.textContent = 0;
dice.classList.add('hidden');
player0.classList.add('player--active');
player1.classList.remove('player--active');
player0.classList.remove('player--winner');
player1.classList.remove('player--winner');
}
init(); //initialize UI and variable when reloading the page
//Function to change player's turn
function changePlayer() {
currentScore = 0;
document.querySelector(`#current--${activePlayer}`).textContent = currentScore;
activePlayer = activePlayer === 0 ? 1 : 0; //assign to player 1 if player 0 is acttive and vice versa
player0.classList.toggle('player--active');//toggle will remove if there and add if not
player1.classList.toggle('player--active');
}
//Rolling dice functionality
btnRoll.addEventListener('click', () => {
if (playing) {
//1. generate a random number
const diceNumber = Math.trunc(Math.random() * 6) + 1;
//2. use that to display the random dice roll
dice.classList.remove('hidden');
dice.src = `dice-${diceNumber}.png`;
//3. check for if a roll 1 then determine what to do
if (diceNumber !== 1) {
//add dice to current score
currentScore += diceNumber;
document.querySelector(`#current--${activePlayer}`).textContent = currentScore;
} else {
//next player's turn and make current score 0
changePlayer();
}
}
});
//Hold score functionality
btnHold.addEventListener('click', () => {
if (playing) {
// 1. Add score to active player's score
scores[activePlayer] += currentScore;
document.querySelector(`#score--${activePlayer}`).textContent = scores[activePlayer];
// 2. Check if player has reached 100/won
if (scores[activePlayer] >= 100) {
// Finish game
document.querySelector(`.player--${activePlayer}`).classList.add('player--winner');
document.querySelector(`.player--${activePlayer}`).classList.remove('player--active');
dice.classList.add('hidden');
playing = false;
} else {
// Change player's turn if not reached 100
changePlayer();
}
}
});
//New game functionality
btnNew.addEventListener('click', () => {
init();
});