Se puede mejorar el juego permitiendo que el jugador elija el rango de números a jugar, es decir 1-100 o 1-1000, etc., el jugador agregaría ese rango mediante un prompt y no manualmente como lo hacen en el ejemplo.
Se puede mejorar el juego permitiendo que el jugador elija el rango de números a jugar, es decir 1-100 o 1-1000, etc., el jugador agregaría ese rango mediante un prompt y no manualmente como lo hacen en el ejemplo.
Efectivamente si se puede yo trate de hacerlo pero no llegue a la solucion, te comparto el codigo no se por que no funciona al 100 pero es un avance ojala alguien nos pueda apoyar //Variables let limiteMaximo = parseInt(prompt("Indicame cual es el limite de numero en el que vas a adivinar, entre 1 y ...(tu numero)")); let numeroSecreto = Math.floor(Math.random()*limiteMaximo) + 1; let numeroUsuario = 0; let intentos = 1; //let palabraVeces = 'vez'; // podemos comentar esta parte y ddentro del template string poner codigo let intentosMaximo = 3; console.log(numeroSecreto);
while (numeroUsuario != numeroSecreto) {
numeroUsuario = parseInt(prompt(`Me indicas un número entre 1 y ${limiteMaximo} por favor:`));
console.log(typeof(numeroUsuario));
if (numeroUsuario == numeroSecreto) {
//Acertamos, fue verdadera la condición
alert(`Acertaste, el número es: ${numeroUsuario}. Lo hiciste en ${intentos} ${intentos == 1 ? "vez" : "veces"}`); // en este apartado Lo hiciste en ${intentos} ${palabraVeces}`
// podemos poner ${intentos ==1 ? "vez" : "veces"} que el ? es el if y : es el else
// se llaman operadores ternarios el ? dice que si es verdadero dar vez y si es falso dar veces
} else {
if (numeroUsuario > numeroSecreto) {
alert('El número secreto es menor');
} else {
alert('El número secreto es mayor');
}
//Incrementamos el contador cuando no acierta
intentos = intentos + 1;
// se puede poner intentos = intentos ++; esta es mas utilizada ahorita para simplificar codigo y hacer contadores
//otra forma es intentos +=1; que nos dice que a lo que tiene le suma 1 sirven para reducir el codigo
//palabraVeces = 'veces'; se pone para despues del primer bucle empieza con veces
if (intentos > intentosMaximo){
alert(`Llegaste al numero maximo de ${intentosMaximo} intentos`);
break;
}
}
}
Hola estuve viendo tu código pero no veo ningún error y funciona perfectamente, de pronto puede ser que haya comentado esta parte de código y por eso no le funciona ya que no esta definiendo el número de intentos máximos.
// podemos comentar esta parte y ddentro del template string poner codigo let intentosMaximo = 3; console.log(numeroSecreto);
yo me base del suto y me qedó de esta manera ``
//Variables
let numeroMaximo = prompt(`Ingresa el número maximo del rango en el que vas a adivinar, entre 1 y ...(tu numero)`);
let numSecret = Math.floor(Math.random() * numeroMaximo) + 1;
let numUser = 0;
let intentos = 1;
let maximoIntentos = 3;
//Proceso
while (numUser != numSecret) {
numUser = parseInt(prompt(`Ingrese un número por favor del 1 al ${numeroMaximo}: `));
if (numUser == numSecret) {
alert(`Acertaste, el numero ${numUser} en ${intentos} ${intentos == 1 ? 'vez' : 'veces'}`);
} else
if (numUser > numSecret) {
alert('El número secreto es menor');
} else {
alert('El número secreto es mayor');
}
//Incrementamos el contador cuando no acierta
intentos++;
//palaVeces = 'Veces';
if (intentos > maximoIntentos) {
alert(`Llegaste al número máximo de ${maximoIntentos} intenos`);
break;
}
}