Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
7
respuestas

[Duda] los intentos se suman de manera erronea

lo he seguido tal como en el video pero los intentos no se suman de manera correcta luego de reiniciarlo algunas veces

//variables
let numeroSecreto = 6;
let numeroUsuario = 0;
let intentos = 1;
let palabraVeces = 'vez';


//mientas la condicion no se cumpla se repite
while (numeroUsuario !== numeroSecreto) {
        let numeroUsuario = prompt("me indicas un numero entre el 1 y 10 por favor:");

     /*
     este codigo realiza la comparacion
     */

     console.log(numeroUsuario);

    if (numeroUsuario == numeroSecreto) {
        //la condicion se cumple
        alert(`Correcto ${numeroUsuario} es la respuesta, lo hiciste en ${intentos} ${palabraVeces}`);
    }else{
        if(numeroUsuario >= numeroSecreto){
            alert('Lo sentimos el numero es menor');
        }else{
            alert('El numero debe ser mayor')
        }
        //incrementa cuando no acierta
        intentos = intentos + 1;
        palabraVeces = 'veces';
        //la condicion no se cumple
        //alert('Lo siento no acertaste el numero')
       
        

    }
}
7 respuestas

hola todo bien el error es que pusiste el incremento de los intentos fuera del while, deben de ir dentro para que la condicion y la suma de los intentos se cumpla, si al cambiarlo te da un numero grande como me paso a mi, puede poner abajo de alert donde esta el template string un break

Recomendación

  • Es preferible que adjuntes con la duda una foto, sobre cual es el error especificamente.

sobre el codigo

  • En mi caso tu codigo me funciona perfecto solo faltaria un break para detener el bucle cuando se encuentra el numero, debería revisar la variable numeroUsuario y en dado caso volverla un numero entero porque la estas trabajando como un string, no puedo deducir nada mas en tu caso dado que no cuento con información de exactamente que esta pasando en tu codigo, dado que como dije me funciona perfecto. adjunto pruebas.

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

Lo ejecute en consola para que se mostrara todo en una sola imagen pero es exactamente lo mismo.

El problema se debe a que la variable intentos se inicializa en el valor 1. Si el usuario acierta el número secreto en el primer intento, el código incrementa el contador de intentos a 2. Sin embargo, si el usuario reinicia el código, la variable intentos se inicializa nuevamente en el valor 1. Esto significa que el contador de intentos se reinicia a 1, incluso si el usuario ya había realizado un intento.

//Variables
let numeroSecreto = 4;
let numeroUsuario = 0;
let intentos = 1;
let palabraVeces = 'vez';

while (numeroUsuario != numeroSecreto) {
  numeroUsuario = prompt("Me indicas un número entre 1 y 10 por favor:");

  console.log(numeroUsuario);
  
  if (numeroUsuario == numeroSecreto) {
    //Acertamos, fue verdadera la condición
    alert(`Acertaste, el número es: ${numeroUsuario}. Lo hiciste en ${intentos} ${palabraVeces}`);
  } 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;
    palabraVeces = 'veces';
    //La condición no se cumplió
    //alert('Lo siento, no acertaste el número');
  }
}

hola chicos yo tenia un incremento grande en la cantidad de intentos registrados, y cuando reinicie el live server me funciono bien, espero les sirva.

Excelente aporte. Muchas Gracias. Me sucedía lo mismo que al probar salía un número gigantesco de intentos. Pero al recarga la página manualmente ya hace el conteo correctamente. Pequeño bug de live server

oh, gracias por lo del bug de live server, estaba revisando todo una y otra vez y me daba cantidades enormes lo cerre y abri de nuevo y ahora si marca correcto

solución!

volvi a repasar la informacion y los videos y encontre que el error se debe a que la variable numeroDeUsuario estaba tambien dentro de el while y ocasionaba que no se detuviera el bucle una vez corregido se ejecuta de manera normal, y ya el contador al reiniciarse no muestra numeros grandes