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)
3
respuestas

[DUDA] Generación de numeros aleatorios

¿Saben por qué no puedo generar más de 10 números aleatorios? *(Advertencia) si usan los números a partir del 11 el programa entra en un bucle infinito. *

<!DOCTYPE html>
<html lang="en">
<head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Etiquetas</title>
</head>
<body style="
        background-color: black;
        color: white;
">
        <h1>
                Juego de adivinación usando campos de texto 
        </h1>
        <h3>Ingrese la cantidad de valores a generarse</h3>
        <input id="CantidadValoresAleatorios" type="text">
        <!--<input type="button" value="generarValores" onclick="generadorValoresSecretos()">-->

        <h3>Ingrese el valor a verificar</h3>
        <input id="Valores" type="text">
        <input type="button" value="Verificaión" onclick="capturarValores()">
        <script>
                const contenidoInput = document.getElementById("Valores"); 
                contenidoInput.focus(); 
                function saltarLinea(){
                        document.write("<br>");
                }
                //eneración de valores aletorios 
                function generacionAleatorio() {
                        let naleatorio = Math.round(Math.random()*10); 
                        return naleatorio; 
                }

                function generadorValoresSecretos(){
                        //capttura y conversión
                        const $inputValueCantidadValoresAleatorios = document.getElementById("CantidadValoresAleatorios");
                        let cantidadValores = parseInt($inputValueCantidadValoresAleatorios.value); 
                        //Generación de un array con aleatorios 
                        let valores = []
                        let contador = 1; 
                        while(contador <= cantidadValores){
                                let numeroAleatorio = generacionAleatorio();
                                let encontrado = false; 
                                if (valores.length == 0) {
                                        valores.push(numeroAleatorio); 
                                        contador++; 
                                }
                                else{
                                        for (let index = 0; index < valores.length; index++) {
                                                if (numeroAleatorio == valores[index] || numeroAleatorio == 0) {
                                                        encontrado = true; 
                                                        break
                                                }            
                                                else{
                                                        encontrado = false; 
                                                }                            
                                        }
                                        if (encontrado == false) {
                                                valores.push(numeroAleatorio); 
                                                contador++; 
                                        }
                                }

                        }
                        return valores; 
                        console.log(valores);
                }
                function capturarValores() {
                        const contenidoInput = document.getElementById("Valores");
                        let arrayValoresSecretros = generadorValoresSecretos();  
                        let valorCapturado = parseInt(contenidoInput.value);   

                        for (let index = 0; index < arrayValoresSecretros.length; index++) {
                                if (valorCapturado == arrayValoresSecretros[index]) {
                                        alert(`Usted acerto, su valor ingresado fue ${valorCapturado} y el valor era ${arrayValoresSecretros[index]}`)
                                        break; 
                                }
                                else{
                                        alert(`Usted no acertó, su valor ingresado era ${valorCapturado}, el valor era ${arrayValoresSecretros[index]}`)     
                                }

                        }

                        document.write(arrayValoresSecretros)
                        contenidoInput.focus(); 
                }
        </script>
</body>
</html>
3 respuestas
solución!

Por si alguien lo ve al generar números no repetidos, y al estar limitado mediante

let naleatorio = Math.round(Math.random()*10); 

a 10 valores solo genera un array de 10 valores no repetidos.

Hola Luis, espero que estés bien.

No entendí bien, tu duda y ni como quieres que funcione el programa. Pero puedo decirte que agregaste demasiada complejidad a tu código y esto no es bueno, porque si ni tú y ni otro Dev no entienden fácilmente tu código esto significa que está demasiado complejo y no es necesario y ni bueno que sea así.

Le aconsejo a que vuelva hacerlo desde el cero buscando hacer todo de la forma más simple posible.

Si usted necesita ayuda. Explícame por favor, cuál fue tu objetivo y yo con gusto puedo darte un ejemplo de como hacerlo.

¡Saludos!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios

Gracias por el consejo, si lo solucione ! .