-
Notifications
You must be signed in to change notification settings - Fork 0
/
script.js
102 lines (86 loc) · 3.12 KB
/
script.js
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
95
96
97
98
99
100
101
102
'use strict';
const player0El = document.querySelector('.player--0');
const player1El = document.querySelector('.player--1');
const score0El = document.querySelector('#score--0');
const score1El = document.getElementById('score--1');
const current0El = document.getElementById('current--0');
const current1El = document.getElementById('current--1');
// These 2 work the exact same. You can quesrySelector to search by class or id or others, or you can use the .getElementByXXXX to get the specific element. With querySelector you have to utilize the . or #, but with getElement, you simply use the name
const diceEl = document.querySelector('.dice');
const btnNew = document.querySelector('.btn--new');
const btnRoll = document.querySelector('.btn--roll');
const btnHold = document.querySelector('.btn--hold');
let scores, currentScore, activePlayer, playing;
// Starting conditions
const init = function () {
scores = [0, 0];
currentScore = 0;
activePlayer = 0;
playing = true;
// 1. set scores to 0
score0El.textContent = 0;
score1El.textContent = 0;
// 2. set current scores to 0
current0El.textContent = 0;
current1El.textContent = 0;
// 3. revert to player 0 starting
player0El.classList.add('player--active');
player1El.classList.remove('player--active');
// 4. no Dice showing
diceEl.classList.add('hidden');
// 5. winning player no longer shown
player0El.classList.remove('player--winner');
player1El.classList.remove('player--winner');
};
init();
const switchPlayer = function () {
document.getElementById(`current--${activePlayer}`).textContent = 0;
currentScore = 0;
activePlayer = activePlayer === 0 ? 1 : 0;
player0El.classList.toggle('player--active');
player1El.classList.toggle('player--active');
};
// Hide the dice until you click "Roll Dice" ; Rolling dice functionality
btnRoll.addEventListener('click', function () {
if (playing) {
// 1. Generate a random dice roll
const dice = Math.trunc(Math.random() * 6) + 1;
console.log(dice);
// 2. Display the dice
diceEl.classList.remove('hidden');
diceEl.src = `dice-${dice}.png`;
// 3. Check for a rolled 1: if true, switch to next player
if (dice !== 1) {
currentScore += dice;
document.getElementById(`current--${activePlayer}`).textContent =
currentScore;
} else {
switchPlayer();
}
}
});
btnHold.addEventListener('click', function () {
if (playing) {
// 1. Add current score to active palyer's score
scores[activePlayer] += currentScore;
console.log(scores[activePlayer]);
document.getElementById(`score--${activePlayer}`).textContent =
scores[activePlayer];
// 2. Check if player's score is >= 100
if (scores[activePlayer] >= 100) {
// Finish the game
playing = false;
diceEl.classList.add('hidden');
document
.querySelector(`.player--${activePlayer}`)
.classList.add('player--winner');
document
.querySelector(`.player--${activePlayer}`)
.classList.remove('player--active');
} else {
// Switch to next player
switchPlayer();
}
}
});
btnNew.addEventListener('click', init);