-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmole.js
More file actions
140 lines (130 loc) · 4.2 KB
/
mole.js
File metadata and controls
140 lines (130 loc) · 4.2 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
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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
let currMoleTile;
let currPlantTile;
let score = 0;
let gameOver = false;
let gameStarted = false;
let startGameButton;
let quitButton;
let timerId;
let restartButton;
window.onload = function () {
setGame();
startGameButton = document.getElementById('startGameButton');
startGameButton.addEventListener('click', startGame);
quitButton = document.getElementById('quitButton');
quitButton.addEventListener('click', () => {
const confirmQuit = confirm('Are you sure you want to quit?');
if (confirmQuit) {
window.location.href = 'Front.html';
}
});
restartButton = document.getElementById('restartButton');
restartButton.addEventListener('click', restartGame);
displayHighestScore(); // Display the highest score when the game starts
};
function startGame() {
resetGame();
startGameButton.disabled = true; // Disable start button to prevent accidental restarts
document.getElementById("message").innerText = "Get ready...";
startGameCountdown(); // Start the countdown before setting up the game
}
function resetGame() {
score = 0;
gameOver = false;
gameStarted = false;
document.getElementById("score").innerText = "0";
currMoleTile = null; // Reset currPlantTile to null
currPlantTile = null; // Explicitly reset currPlantTile for restart
}
function startGameCountdown() {
let countdown = 3;
document.getElementById("message").innerText = `Get ready... ${countdown}`;
timerId = setInterval(function () {
countdown--;
document.getElementById("message").innerText = `Get ready... ${countdown}`;
if (countdown === 0) {
clearInterval(timerId);
setGame();
gameStarted = true;
document.getElementById("message").innerText = ""; // Clear countdown message
}
}, 1000); // Update countdown every second
}
function setGame() {
// Clear the board before setting it up again
document.getElementById("board").innerHTML = "";
//set up the grid for the game board in html
for (let i = 0; i < 9; i++) {
let tile = document.createElement("div");
tile.id = i.toString();
tile.addEventListener("click", selectTile);
document.getElementById("board").appendChild(tile);
}
setInterval(setMole, 2000); // 2000 milliseconds = 2 seconds
setInterval(setPlant, 2000); // 2000 milliseconds = 2 second
}
function getRandomeTile() {
let num = Math.floor(Math.random() * 9);
return num.toString();
}
function setMole() {
if (gameOver) {
return;
}
if (currMoleTile) {
currMoleTile.innerHTML = "";
}
let mole = document.createElement("img");
mole.src = "monty-mole.png";
let num = getRandomeTile();
if (currPlantTile && currPlantTile.id == num) {
return;
}
currMoleTile = document.getElementById(num);
currMoleTile.appendChild(mole);
}
function setPlant() {
if (gameOver) {
return;
}
if (currPlantTile) {
currPlantTile.innerHTML = ""; // Clear existing plant image
}
let plant = document.createElement("img");
plant.src = "piranha-plant.png";
let num = getRandomeTile();
while (currMoleTile && currMoleTile.id == num || document.getElementById(num).querySelector('img')) { // Check for mole and existing plant
num = getRandomeTile();
}
currPlantTile = document.getElementById(num);
currPlantTile.appendChild(plant);
}
function selectTile() {
if (gameOver || !gameStarted) {
return;
}
if (this == currMoleTile) {
score += 10;
document.getElementById("score").innerText = score.toString(); // Update score
} else if (this == currPlantTile) {
document.getElementById("score").innerText = "Game Over: " + score.toString();
gameOver = true;
}
}
function restartGame() {
let highestScore = localStorage.getItem("highestScore") || 0;
if (score > highestScore) {
highestScore = score;
localStorage.setItem("highestScore", highestScore);
}
resetGame();
displayHighestScore(); // Update the displayed highest score
const startAgain = confirm("Game restarted. Do you want to start the game?");
if (startAgain) {
startGameCountdown();
}
}
function displayHighestScore() {
let highestScore = localStorage.getItem("highestScore") || 0;
document.getElementById("highestScore").innerText = highestScore;
}