Soy relativamente nuevo en js, así que estoy haciendo un juego de adivinanzas del 1 al 100 usando Math.random para obtener mi número aleatorio. Tengo un botón de jugar de nuevo que borra todas las conjeturas anteriores de una ronda anterior, pero cuando haces clic en él, el número aleatorio no cambia, por lo que el número de las próximas rondas es el mismo.
Intenté volver a indicar aleatorio en la función de reproducción, pero no funcionó y también intenté poner la variable en la función, pero luego cambió con cada suposición que ingresó el usuario.
let random = Math.floor(Math.random() * 101) console.log(random) const guess = document.querySelector('.guess') const button = document.querySelector('.submit') const myForm = document.querySelector('.myForm') let numguesses = 0 myForm.addEventListener('submit', click) function click(e) { e.preventDefault(); const ul = document.querySelector('.guesses') if(guess.value > 100 || guess.value < 0 || isNaN(guess.value)) { alert("please a enter number between 0 to 100") } else { numguesses++; if(random != guess.value) { if(guess.value > random) { const eachguess = document.createElement('li') eachguess.innerText= `${guess.value} was too High` eachguess.classList.add('wrong') ul.append(eachguess) guess.value = ''; } else { const eachguess = document.createElement('li') eachguess.innerText = `${guess.value} was too Low` eachguess.classList.add('low') ul.append(eachguess) guess.value = ''; } } else { const eachguess = document.createElement('li') eachguess.innerText = `Well done you gueesed Correctly the number was ${random} it took ${numguesses} guesses` eachguess.classList.add('correct') ul.append(eachguess) guess.value = '' return } } } const PlayAgain = document.querySelector('#playAgain') PlayAgain.addEventListener('click', Play) function Play() { const ul = document.querySelector('.guesses') while (ul.firstChild) { ul.removeChild(ul.firstChild) numguesses = 0 } }Puede asignar un nuevo valor dentro de la función Reproducir:
let random; // ... function Play() { const ul = document.querySelector('.guesses') while (ul.firstChild) { ul.removeChild(ul.firstChild) } numguesses = 0 random = Math.floor(Math.random() * 101) // <------ console.log(random) } No debe agregar la palabra clave let aquí, ya que eso declararía la variable random localmente dentro de la función Reproducir, pero en su caso desea reasignar la variable existente desde el ámbito externo).