-
Notifications
You must be signed in to change notification settings - Fork 0
/
rps.js
89 lines (77 loc) · 3.09 KB
/
rps.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
const rps = ["rock", "paper", "scissors"];
function getRandInt(max) {
return Math.floor(Math.random() * Math.floor(max));
}
function computerPlay() { {}
return rps[getRandInt(3)];
}
function playRound(playerSelection, compSelection) {
if(playerSelection === compSelection) {
return "draw.";
} else if(
playerSelection === "rock" && compSelection === "scissors" ||
playerSelection === "paper" && compSelection === "rock" ||
playerSelection === "scissors" && compSelection === "paper"
) {
return `you win! ${playerSelection} beats ${compSelection}.`;
} else {
return `you lose. ${compSelection} beats ${playerSelection}.`;
}
}
function showResults(draws, wins, loses) {
if(draws > wins && draws > loses) {
console.log("Game over, it was a draw.");
} else if(wins > loses) {
console.log("You win!");
} else {
console.log("You lose.");
}
}
function game() {
let drawCount = 0;
let winCount = 0;
let loseCount = 0;
btns = document.querySelectorAll('.btn');
btns.forEach(btn => btn.addEventListener('click', function(e) {
const compSelection = computerPlay();
const playerSelection = this.id;
const result = playRound(playerSelection, compSelection);
if(result.includes("draw")) {
drawCount++;
} else if(result.includes("win")) {
winCount++;
} else {
loseCount++;
}
scoreBoard = document.querySelector('#scoreboard');
scoreBoard.classList.add('scoreboard');
roundResults = document.querySelector('#result');
roundResults.textContent = result;
score = document.querySelector('#score');
score.textContent = `you: ${winCount} computer: ${loseCount} draw: ${drawCount}`;
if (winCount >= 5 || loseCount >= 5) {
btns.forEach(btn => btn.disabled = true);
//create buttont o reset the game
resetBtn = document.createElement('button');
resetBtn.textContent = 'Reset'
resetBtn.classList.toggle('btn');
resetBtn.classList.toggle('btn-reset');
scoreBoard.appendChild(resetBtn);
// allow the player to restart the game
resetBtn.addEventListener('click', function(e) {
// reset scoreboard
drawCount = 0;
winCount = 0;
loseCount = 0;
roundResults.textContent = '';
score.textContent = '';
// remove self
scoreBoard.removeChild(resetBtn);
scoreBoard.classList.toggle('scoreboard');
// enable rps buttons
btns.forEach(btn => btn.disabled = false);
});
}
}));
}
game();