-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
89 lines (71 loc) · 2.9 KB
/
script.js
File metadata and controls
89 lines (71 loc) · 2.9 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
'use strict';
//get elements from DOM
let gameActive = true;
let currentPlayer = 0;
const pointsToWin = 100;
const numberOfPlayers = 2;
let holdButton = document.querySelector('.btn--hold');
let newGameButton = document.querySelector('.btn--new')
let rollButton = document.querySelector('.btn--roll');
let scoreElements = [document.getElementById('score--0'), document.getElementById('score--1')]
let diceElement = document.querySelector('.dice')
let players = [document.querySelector('.player--0'), document.querySelector('.player--1')] // 'handler' to both players to modify their inner text or sth
let currents = [document.getElementById('current--0'), document.getElementById('current--1')] //current pointf for each player to display
let currentScore = 0;
//functions
function saveCurrent() {
scoreElements[currentPlayer].innerText = Number(scoreElements[currentPlayer].innerText) + currentScore;
currentScore = 0;
currents[currentPlayer].innerText = currentScore;
if (Number(scoreElements[currentPlayer].innerText) >= pointsToWin) {//if player wins
players[currentPlayer].classList.add('player--winner');
gameActive = false;
}
return; //if first player happens to be the active one, there's no need to check the other one
}
function isActive(player) {//check if given player is active (has player--active class)
if (player.classList.contains('player--active'))
return true;
return false
}
function rollDice() {
if (!gameActive) return;
let randomNumber = Math.floor(Math.random() * 6) + 1; // generate random number from <1;6>
diceElement.classList.remove('hidden'); // show the dice
diceElement.src = `img/dice-${randomNumber}.png`; // change the image corresponding to the number randomly generated
if (randomNumber < 2) { // if u get 1
currentScore = 0
currents[currentPlayer].innerText=0;
togglePlayers();
}
else // if u get higher than 1
currentScore += randomNumber;
currents[currentPlayer].innerText = currentScore;
}
function togglePlayers() {
for (let a = 0; a < players.length; ++a)
players[a].classList.toggle('player--active');
currentPlayer = 1 - currentPlayer; // switch the current player from 0 to 1 and the other way around
}
function reset() {
currentPlayer = 0;
diceElement.classList.add('hidden'); //hide the dice
for (let a = 0; a < players.length; ++a) {
players[a].classList.remove('player--winner') // after resetting make both players not winners (set to init state)
scoreElements[a].innerText = 0;
currents[a].innerText = 0;
}
currentScore = 0;
gameActive = true;
}
//add eventListeners
holdButton.addEventListener('click', function () {
if (gameActive) {
saveCurrent();
togglePlayers();
}
})
rollButton.addEventListener('click', rollDice);
newGameButton.addEventListener('click', reset);
// initialize:
reset();