-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgame.js
110 lines (93 loc) · 3.32 KB
/
game.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
const MOVES = {
rock: '✊',
paper: '✋',
scissor: '✌️'
};
let playerMove = '';
let computerMove = '';
const result = document.querySelector('#result');
const showPlayerMove = document.querySelector('.player-choice');
const showComputerMove = document.querySelector('.computer-choice');
const playerScore = document.querySelector('#player-score');
const computerScore = document.querySelector('#computer-score');
const tieScore = document.querySelector('#tie-score');
const choices = document.querySelectorAll('.choice');
const resetBtn = document.querySelector('#reset-btn');
// Add event listeners for choices
choices.forEach(choice => {
choice.addEventListener('click', () => {
randomChoice(choice.dataset.choice);
});
});
// Add event listener for reset button
resetBtn.addEventListener('click', resetGame);
function loadScores() {
const savedPlayerScore = localStorage.getItem('playerScore') || '0';
const savedComputerScore = localStorage.getItem('computerScore') || '0';
const savedTieScore = localStorage.getItem('tieScore') || '0';
playerScore.textContent = savedPlayerScore;
tieScore.textContent = savedTieScore;
computerScore.textContent = savedComputerScore;
}
function getComputerMove() {
const moves = ['rock', 'paper', 'scissor'];
const randomIndex = Math.floor(Math.random() * 3);
return moves[randomIndex];
}
function determineWinner(player, computer) {
if (player === computer) return 'Tie';
const winningCombos = {
rock: 'scissor',
paper: 'rock',
scissor: 'paper'
};
return winningCombos[player] === computer ? 'You Win' : 'You Lose';
}
function updateScore(gameResult) {
if (gameResult === 'You Win') {
playerScore.textContent = parseInt(playerScore.textContent) + 1;
} else if (gameResult === 'You Lose') {
computerScore.textContent = parseInt(computerScore.textContent) + 1;
} else {
tieScore.textContent = parseInt(tieScore.textContent) + 1;
}
saveScores();
}
function saveScores() {
localStorage.setItem('playerScore', playerScore.textContent);
localStorage.setItem('computerScore', computerScore.textContent);
localStorage.setItem('tieScore', tieScore.textContent);
}
function showMoves(playerMove, computerMove) {
showPlayerMove.textContent = MOVES[playerMove];
showComputerMove.textContent = MOVES[computerMove];
}
function randomChoice(yourMove) {
playerMove = yourMove;
computerMove = getComputerMove();
const gameResult = determineWinner(playerMove, computerMove);
result.textContent = gameResult;
if(gameResult === "You Win") {
result.style.color = "greenyellow";
} else if(gameResult === "You Lose") {
result.style.color = "red";
} else {
result.style.color = "yellow";
}
updateScore(gameResult);
showMoves(playerMove, computerMove);
}
function resetGame() {
playerScore.textContent = '0';
computerScore.textContent = '0';
tieScore.textContent = '0';
showPlayerMove.textContent = '';
showComputerMove.textContent = '';
result.textContent = 'Choose your move!';
result.style.color = 'white';
localStorage.removeItem('playerScore');
localStorage.removeItem('computerScore');
localStorage.removeItem('tieScore');
}
// Initialize when the page loads
window.addEventListener('load', loadScores);