-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrockpaperscissors.js
96 lines (87 loc) · 3.05 KB
/
rockpaperscissors.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
const scoreline = document.querySelector('.score');
const resultText = document.querySelector('.progresstext');
const buttons = document.querySelectorAll('.actions button');
const actionBox = document.querySelector('.actions');
let playerScore = 0;
let computerScore = 0;
function computerPlay() {
let chooseComputerMove = Math.floor(Math.random() * 3);
let computerMove;
switch(chooseComputerMove) {
case 0:
computerMove = 'Rock';
break;
case 1:
computerMove = 'Paper';
break;
case 2:
computerMove = "Scissors";
break;
}
return computerMove;
}
function playRound(playerSelection, computerSelection) {
let gameResult;
if (playerSelection === computerSelection) {
gameResult = "D";
}
else if ((playerSelection === "Paper" && computerSelection === "Rock") ||
(playerSelection === "Scissors" && computerSelection === "Paper") ||
(playerSelection === "Rock" && computerSelection === "Scissors")) {
gameResult = "W";
}
else {
gameResult = "L";
}
updateScore(playerSelection, computerSelection, gameResult);
}
function updateScore(playerSelection, computerSelection, result) {
if (result === "W") {
scoreline.textContent = ++playerScore + " - " + computerScore;
resultText.textContent = "W - " + playerSelection + " beats " + computerSelection + ".";
}
else if (result === "L") {
scoreline.textContent = playerScore + " - " + ++computerScore;
resultText.textContent = "L - " + computerSelection + " beats " + playerSelection + ".";
}
else {
resultText.textContent = "D - You both chose " + playerSelection + ".";
}
if (playerScore === 5 || computerScore === 5) {
if (playerScore === 5) {
resultText.textContent = "You won! Try again?";
}
else {
resultText.textContent = "You lost! Try again?";
}
endGame();
}
}
function capitalise(word) {
const splitStrArray = word.split("");
return splitStrArray[0].toUpperCase() + word.slice(1,);
}
function toggleButtonDisplay(mode) {
const moveButtons = document.getElementsByTagName('button');
for (let i = 0; i < moveButtons.length; i++) {
moveButtons[i].style.display = mode;
}
}
function endGame() {
toggleButtonDisplay('none');
const restart = document.createElement('button');
restart.textContent = "Play again!";
restart.style.cssText = 'border-radius: 12px; border-color: #ffffff; font-size: 30px; padding: 10px 30px;';
restart.addEventListener('click', function() {
playerScore = 0;
computerScore = 0;
scoreline.textContent = "0 - 0";
resultText.textContent = "Pick a move! First to five wins!";
actionBox.removeChild(restart);
toggleButtonDisplay('block');
})
actionBox.appendChild(restart);
}
buttons.forEach((button) => {
button.addEventListener('click', (e) => playRound(capitalise(e.target.id), computerPlay()));
})