From 870b47c042e32e088fd7131dd53d608d3a2920e9 Mon Sep 17 00:00:00 2001 From: Jade Shepherd Date: Sun, 12 Oct 2025 17:16:30 -0400 Subject: [PATCH] fixed bugs in number guessing game and added some comments --- index.js | 69 +++++++++++++++++++++++++++----------------------------- 1 file changed, 33 insertions(+), 36 deletions(-) diff --git a/index.js b/index.js index 4c2a94e..6eb0258 100644 --- a/index.js +++ b/index.js @@ -1,3 +1,4 @@ +// Select page elements const guessInput = document.getElementById('guess'); const submitButton = document.getElementById('submit'); const resetButton = document.getElementById('reset'); @@ -8,83 +9,79 @@ const maxGuessesMessage = document.getElementById('max-guesses'); const numberOfGuessesMessage = document.getElementById('number-of-guesses'); const correctMessage = document.getElementById('correct'); +// Game variables let targetNumber; let attempts = 0; const maxNumberOfAttempts = 5; -// Returns a random number from min (inclusive) to max (exclusive) -// Usage: -// > getRandomNumber(1, 50) -// <- 32 -// > getRandomNumber(1, 50) -// <- 11 +// Function to generate a random number between min and max function getRandomNumber(min, max) { return Math.floor(Math.random() * (max - min)) + min; } +// Function that checks the player's guess function checkGuess() { - // Get value from guess input element const guess = parseInt(guessInput.value, 10); - attempts = attempts + 1; + attempts++; hideAllMessages(); + // When the guess is correct if (guess === targetNumber) { - numberOfGuessesMessage.style.display = ''; + numberOfGuessesMessage.style.display = 'block'; numberOfGuessesMessage.innerHTML = `You made ${attempts} guesses`; - - correctMessage.style.display = ''; - + correctMessage.style.display = 'block'; submitButton.disabled = true; guessInput.disabled = true; - } - - if (guess !== targetNumber) { + } else { + // When the guess is too low or too high if (guess < targetNumber) { - tooLowMessage.style.display = ''; + tooLowMessage.style.display = 'block'; } else { - tooLowMessage.style.display = ''; + tooHighMessage.style.display = 'block'; } + // Show remaining attempts const remainingAttempts = maxNumberOfAttempts - attempts; - - numberOfGuessesMessage.style.display = ''; + numberOfGuessesMessage.style.display = 'block'; numberOfGuessesMessage.innerHTML = `You guessed ${guess}.
${remainingAttempts} guesses remaining`; - } - if (attempts ==== maxNumberOfAttempts) { - submitButton.disabled = true; - guessInput.disabled = true; + // If player runs out of guesses + if (attempts === maxNumberOfAttempts) { + submitButton.disabled = true; + guessInput.disabled = true; + maxGuessesMessage.style.display = 'block'; + } } + // Clear input for next try guessInput.value = ''; - - resetButton.style.display = ''; + resetButton.style.display = 'block'; } +// Function to hide all message elements function hideAllMessages() { - for (let elementIndex = 0; elementIndex <= messages.length; elementIndex++) { - messages[elementIndex].style.display = 'none'; + for (let i = 0; i < messages.length; i++) { + messages[i].style.display = 'none'; } } -funtion setup() { - // Get random number +// Function to start or reset the game +function setup() { targetNumber = getRandomNumber(1, 100); - console.log(`target number: ${targetNumber}`); - - // Reset number of attempts - maxNumberOfAttempts = 0; + console.log(`target number: ${targetNumber}`); // for testing - // Enable the input and submit button - submitButton.disabeld = false; + attempts = 0; + submitButton.disabled = false; guessInput.disabled = false; hideAllMessages(); resetButton.style.display = 'none'; } +// Event listeners for buttons submitButton.addEventListener('click', checkGuess); resetButton.addEventListener('click', setup); -setup(); +// Start the game when the page loads +setup(); \ No newline at end of file