-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path12-rock-paper-scissors.js
120 lines (103 loc) · 3.11 KB
/
12-rock-paper-scissors.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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
let score = JSON.parse(localStorage.getItem('score')) || {
wins: 0,
losses: 0,
ties: 0
}; // Default Operator
updateScoreElement();
/*
if (!score){
score = {
wins: 0,
losses:0,
ties:0
}
}
*/
let isAutoPlaying = false;
let intervalId = 0;
//const autoPlay = () => {
// }
function autoPlay() { // This function is Hoisting ony function.
if (!isAutoPlaying) {
intervalId = setInterval(() => {
const playerMove = pickComputerMove();
playGame(playerMove);
}, 500)
isAutoPlaying = true;
document.querySelector('.js-auto-play-button').innerHTML = 'Stop Play';
}
else {
clearInterval(intervalId);
isAutoPlaying = false;
document.querySelector('.js-auto-play-button').innerHTML = 'Auto Play';
}
}
document.querySelector('.js-rock-button').addEventListener('click', () => {
playGame('rock');
});
document.querySelector('.js-paper-button').addEventListener('click', () => {
playGame('paper');
});
document.querySelector('.js-scissors-button').addEventListener('click', () => {
playGame('scissors');
});
document.body.addEventListener('keydown', (event) => {
if (event.key === 'r')
playGame('rock');
else if (event.key === 'p')
playGame('paper');
else if (event.key === 's')
playGame('scissors');
})
function playGame(playerMove){
const computerMove = pickComputerMove();
let result = '';
if (playerMove === 'scissors') {
if (computerMove === 'rock')
result = 'You Lose.';
else if (computerMove === 'paper')
result = 'You Win.';
else if (computerMove === 'scissors')
result = 'Tie.';
}
else if (playerMove === 'paper') {
if (computerMove === 'rock')
result = 'You Win.';
else if (computerMove === 'paper')
result = 'Tie.';
else if (computerMove === 'scissors')
result = 'You Lose.';
}
else if (playerMove === 'rock') {
if (computerMove === 'rock')
result = 'Tie.';
else if (computerMove === 'paper')
result = 'You Lose.';
else if (computerMove === 'scissors')
result = 'You Win.';
}
if (result === 'You Win.') score.wins++;
else if (result === 'Tie.') score.ties++;
else if (result === 'You Lose.') score.losses++;
localStorage.setItem('score', JSON.stringify(score));
updateScoreElement();
document.querySelector('.js-result').innerHTML = result;
document.querySelector('.js-moves').innerHTML = `You
<img src="${playerMove}-emoji.png" class="move-icon">
<img src="${computerMove}-emoji.png " class="move-icon">
Computer`
}
function updateScoreElement() {
document.querySelector('.js-score').innerHTML = `Wins: ${score.wins}, Losses: ${score.losses}, Ties: ${score.ties}`;
}
function pickComputerMove() {
const randomNumber = Math.random();
let computerMove = '';
if (randomNumber >= 0 && randomNumber < 1 / 3)
computerMove = 'rock';
else if (randomNumber >= 1 / 3 && randomNumber < 2/3)
computerMove = 'paper';
else if (randomNumber >= 2/3 && randomNumber < 1)
computerMove = 'scissors';
return computerMove;
}