-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
90 lines (75 loc) · 3.24 KB
/
script.js
File metadata and controls
90 lines (75 loc) · 3.24 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
document.addEventListener('DOMContentLoaded', () => {
// Game State
let targetNumber = Math.floor(Math.random() * 50) + 1;
let attempts = 0;
let gameOver = false;
// DOM Elements
const guessInput = document.getElementById('guess-input');
const submitBtn = document.getElementById('submit-btn');
const resetBtn = document.getElementById('reset-btn');
const feedbackEl = document.getElementById('feedback');
const attemptsEl = document.getElementById('attempts-count');
const errorEl = document.getElementById('error-message');
// Functions
function checkGuess() {
if (gameOver) return;
const userValue = guessInput.value;
// Validation
if (userValue === '' || isNaN(userValue)) {
errorEl.textContent = 'Please enter a valid number.';
return;
}
const guess = parseInt(userValue);
if (guess < 1 || guess > 50) {
errorEl.textContent = 'Number must be between 1 and 50.';
return;
}
// Clear error if valid
errorEl.textContent = '';
attempts++;
attemptsEl.textContent = attempts;
// Game Logic
feedbackEl.classList.remove('hidden');
feedbackEl.classList.add('show');
if (guess === targetNumber) {
feedbackEl.textContent = `🎉 Correct! The number was ${targetNumber}.`;
endGame();
} else if (guess < targetNumber) {
feedbackEl.textContent = 'Too low! Try again.';
guessInput.value = '';
guessInput.focus();
} else {
feedbackEl.textContent = 'Too high! Try again.';
guessInput.value = '';
guessInput.focus();
}
}
function endGame() {
gameOver = true;
guessInput.disabled = true;
submitBtn.disabled = true;
}
function resetGame() {
targetNumber = Math.floor(Math.random() * 50) + 1;
attempts = 0;
gameOver = false;
attemptsEl.textContent = '0';
feedbackEl.textContent = '';
feedbackEl.classList.remove('show');
feedbackEl.classList.add('hidden');
errorEl.textContent = '';
guessInput.value = '';
guessInput.disabled = false;
submitBtn.disabled = false;
guessInput.focus();
}
// Event Listeners
submitBtn.addEventListener('click', checkGuess);
resetBtn.addEventListener('click', resetGame);
// Allow "Enter" key to submit
guessInput.addEventListener('keypress', (e) => {
if (e.key === 'Enter') {
checkGuess();
}
});
});