Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

duda con mi codigo

SE REMPLAZAN LOS NUMEROS REPETIDOS DEL ARREGLO ,PERO, AL MOMENTO DE CAMBIAR LOS NUMEROS POR UNOS QUE NO SE REPITAN NO SE AGREGAN DENTRO DEL ARREGLO

<meta charset="utf-8">

<h1>JUEGO DE NUMEROS</h1>
<br>
<input>
<button>verificar</button>
<script>
function saltarLinea() {
 document.write("<br>");
 document.write("<br>");
 document.write("<br>");
}
function imprimir(frase) {
saltarLinea();
document.write(frase);
}

function aleatorio() {
    return (Math.round(Math.random()*10));
}

function condicion(numero) {
    var array=[];
    for(var i=1;i<=numero;i++){
     var numeroGenerado=aleatorio();
    console.log(numeroGenerado);
    var encontrado=false;
    for(var posicion=0;posicion<array.length;posicion++){

        if(numeroGenerado==array[posicion]){
            encontrado=true;
            break;

        }
    

    }

   if(encontrado==false){

       array.push(numeroGenerado);
   
   }

    
     
     }

   return array;
}

 var array=condicion(4);
 console.log(array);
 var button=document.querySelector("button");
 var input= document.querySelector("input");
alert("bienvenido a mi juego");
input.focus();
function comprovar() {
    var estrella=false;
    for(var b=0;b<array.length;b++){
    if(parseInt(input.value)===array[b]){
    alert("usted acerto");   
    estrella=true
    break;
    }
}if(estrella==false){
alert("usted erro");


}

input.focus();
input.value= "  ";
}
button.onclick=comprovar;

</script>
1 respuesta

¡Hola Brandon!

Gracias por compartir tu código. Parece que estás teniendo problemas para agregar números que no se repitan dentro del arreglo. Después de revisar tu código, noté que estás creando un nuevo arreglo llamado array dentro de la función condicion(). Sin embargo, este arreglo se reinicia en cada iteración del bucle for, por lo que nunca se agregan los números que no se repiten.

Para solucionar esto, te recomendaría que declares el arreglo array fuera del bucle for, de esta manera se mantendrá a lo largo de todas las iteraciones y podrás agregar los números que no se repiten correctamente. Aquí tienes un ejemplo de cómo puedes hacerlo:

function condicion(numero) {
  var array = [];
  for (var i = 1; i <= numero; i++) {
    var numeroGenerado = aleatorio();
    console.log(numeroGenerado);
    var encontrado = false;
    for (var posicion = 0; posicion < array.length; posicion++) {
      if (numeroGenerado == array[posicion]) {
        encontrado = true;
        break;
      }
    }
    if (encontrado == false) {
      array.push(numeroGenerado);
    }
  }
  return array;
}

Con esta modificación, el arreglo array se mantendrá a lo largo de todas las iteraciones y solo se agregarán los números que no se repiten. Espero que esto resuelva tu problema. Si tienes alguna otra pregunta, no dudes en preguntar.

¡Espero haber ayudado y buenos estudios!