Skip to content
Open
Show file tree
Hide file tree
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
2 changes: 1 addition & 1 deletion index.html
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ <h1>Guessing Game</h1>
less?
</p>
<div>
<input type="number" id="guess" min="1" max="99" />
<input type="number" id="guess" min="1" max="99" step="1" required />
<button id="submit">Submit Guess</button>
</div>
<div>
Expand Down
45 changes: 32 additions & 13 deletions index.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
const guessInput = document.getElementById('guess');
const submitButton = document.getElementById('submit');

//event listener to validate input data
guessInput.addEventListener("input", () => {
const value = guessInput.valueAsNumber;

submitButton.disabled =
isNaN(value) || value < 1 || value > 99;
});


const resetButton = document.getElementById('reset');
const messages = document.getElementsByClassName('message');
const tooHighMessage = document.getElementById('too-high');
Expand All @@ -25,6 +35,7 @@ function getRandomNumber(min, max) {
function checkGuess() {
// Get value from guess input element
const guess = parseInt(guessInput.value, 10);

attempts = attempts + 1;

hideAllMessages();
Expand All @@ -37,22 +48,28 @@ function checkGuess() {

submitButton.disabled = true;
guessInput.disabled = true;
}

if (guess !== targetNumber) {
} else {
//was 2 if instead if/else
if (guess < targetNumber) {
tooLowMessage.style.display = '';
} else {
tooLowMessage.style.display = '';
//wrong message was displayed - tooLowMessage
tooHighMessage.style.display = '';
}

const remainingAttempts = maxNumberOfAttempts - attempts;

//additing of output with quontity of remain guesses
numberOfGuessesMessage.style.display = '';

numberOfGuessesMessage.style.display = '';
if (remainingAttempts === 1) {
numberOfGuessesMessage.innerHTML = `You guessed ${guess}. <br> 1 guess left`;
} else {
numberOfGuessesMessage.innerHTML = `You guessed ${guess}. <br> ${remainingAttempts} guesses remaining`;
}

if (attempts ==== maxNumberOfAttempts) {
}
// was additional '=' in row below
if (attempts === maxNumberOfAttempts) {
submitButton.disabled = true;
guessInput.disabled = true;
}
Expand All @@ -61,23 +78,25 @@ function checkGuess() {

resetButton.style.display = '';
}

//<= massages.length can give result undefined
function hideAllMessages() {
for (let elementIndex = 0; elementIndex <= messages.length; elementIndex++) {
for (let elementIndex = 0; elementIndex < messages.length; elementIndex++) {
messages[elementIndex].style.display = 'none';
}
}

funtion setup() {
//misspelling in "function"
function setup() {
// Get random number
targetNumber = getRandomNumber(1, 100);
console.log(`target number: ${targetNumber}`);

// Reset number of attempts
maxNumberOfAttempts = 0;
// Does not valid out of this function on global level: const maxNumberOfAttempts = 0; we need attempts
attempts = 0;

// Enable the input and submit button
submitButton.disabeld = false;
// we need to turn off submitButton before input check
submitButton.disabled = true;
guessInput.disabled = false;

hideAllMessages();
Expand Down