Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 33 additions & 36 deletions index.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// Select page elements
const guessInput = document.getElementById('guess');
const submitButton = document.getElementById('submit');
const resetButton = document.getElementById('reset');
Expand All @@ -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}. <br> ${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();