Creé un juego alto/bajo que va del 1 al 20. Para ir un paso más allá, intento que el usuario elija el número contra el que jugar: elija entre 1 - x (número ingresado por el usuario). Hay otros parámetros dentro del juego que también deben modificarse con ese cambio. Quiero usar específicamente Prompt () para que el usuario seleccione un número contra el que jugar, pero no estoy seguro de cómo agregarlo, así como otros cambios que deberán realizarse. ¡Cualquier consejo es apreciado!
var answer = Math.floor(Math.random()*20) + 1; var no_of_guesses = 0; var guesses_num = []; function guessing(){ var user_guess = document.getElementById("guess").value; if(user_guess < 1 || user_guess > 20 ){ alert("That number is not in range, try again!"); } else{ guesses_num.push(user_guess); no_of_guesses+= 1; if(user_guess < answer){ outcome1.textContent = "Too low" outcome2.textContent = "Number Of Guesses : " + no_of_guesses; outcome3.textContent = "Guessed Number Are: " + guesses_num; } else if(user_guess > answer){ outcome1.textContent = "Too High" outcome2.textContent = "No. Of Guesses : " + no_of_guesses; outcome3.textContent = "Guessed Number Are: " + guesses_num; } else if(user_guess == answer){ outcome1.textContent = "You're Correct!!" outcome2.textContent = "the Number was " + answer outcome3.textContent = " You guessed it in " + no_of_guesses +"Guesses"; } } } var outcome1 = document.getElementById("outcome1") var outcome2 = document.getElementById("outcome2") var outcome3 = document.getElementById("outcome3") <div class="container"> <h3>Guess between 1-20!</h3> <input type="text" placeholder="Choose a number" id="picknum"><br> <button onclick="guessing()" id="my_btn">GUESS</button> <input type="text" placeholder="Guess a number in range" id="guess"><br> <p id="outcome1">Are you feeling lucky?</p> <p id="outcome2"></p> <p id="outcome3"></p> </div>No estoy muy seguro de por qué quiere usar prompt() para el diálogo del usuario. Mi fragmento usa el elemento <input> ya provisto en su lugar y evita repeticiones innecesarias en el código:
const answer = Math.floor(Math.random()*20) + 1, guesses=[]; const inp=document.getElementById("guess"), out=document.querySelectorAll("[id^=outcome]"); function guessing(){ const n=inp.value; guesses.push(n); [`The number ${n} is ${n==answer? "correct!" : "too "+(n<answer?"low.":"high.")}`, `You had ${guesses.length} guesses.`, `The guessed numbers were: ${guesses.join(", ")}.`].forEach((o,i)=>out[i].textContent=o) } <div class="container"> <h3>Guess between 1-20!</h3> <input type="text" placeholder="Guess a number in range" id="guess"><button onclick="guessing()" id="my_btn">GUESS</button><br> <p id="outcome1">Are you feeling lucky?</p> <p id="outcome2"></p> <p id="outcome3"></p> </div>Si está dispuesto a soportar las limitaciones de la interfaz de usuario, las llamadas para prompt devuelven la entrada del usuario; podría usar su código existente, cambiando solo la primera línea de guessing() para leer
var user_guess = prompt("What is your guess?") (Tenga en cuenta que prompt devuelve una cadena; querrá usar Number(user_guess) cuando haga comparaciones matemáticas).