Inicio Apuntes FPApuntes DAW Ejercicio Básico JavaScript: Cómo crear 6 números aleatorios en un rango sin que se repitan

Ejercicio Básico JavaScript: Cómo crear 6 números aleatorios en un rango sin que se repitan

Publicado por entreunosyceros
Publicado el: Última actualización:

AVISO: Esta entrada tiene más de dos años desde su publicación. Es posible que el contenido esté desactualizado.

Otra vez aquí combatiendo el insomnio dándole un poco de marcha a la materia gris. Hoy me he puesto un poco con JavaScript, que hacía tiempo que no publicaba nada sobre ello. El ejercicio que voy a publicar hoy sobre JavaScript viene siendo un programa para generar 6 números aleatorios. Todos comprendidos entre el 1 y el 49. La cosa es que los números generados no se repitan. Para terminar, tendrá que hacerse dentro de una función que será llamada desde un botón HTML.

Vamos a darle una vuelta de tuerca. Cuando se generen los números solicitados tendrá que darse la opción al usuario de volver a generar los números. También tendremos la posibilidad de quedarnos con los números que se acaban de generar.

Crear 6 números aleatorios en un rango sin que se repitan con JavaScript

Bueno, dicho esto … vamos a ver como hacer … (ni que decir tiene que, es más que probable que esta solución no sea la más indicada ni la más optimizada, pero es la que a mi se me ha ocurrido).

<html>
   <head>
      <title>
         Generar n&uacute;meros aleatorios
      </title>
 
          <script language="javascript" type="text/javascript">
 
 
                        function recargar() {
 
                                        document.location.href= 'javascript:history.back()'; //se vuelve a cargar la página
 
                                }
 
// 6 numeros aleatorios entre 1 y 49
// evitando que se repitan usando indexof
            function dados()
            {
                                numeros = new Array(); //array dónde almacenar los seis números
                                minimo = 1; //valor mínimo posible
                                maximo = 49; //valor máximo posible
 
 
                                for (i=0;i<6;i++){
                                                temp = Math.round(Math.random() * maximo); //generanos número aleatorio
                                                temporal = parseInt((Math.floor(temp))+1); //redondeamos, para evitar decimales
                                                if ((temporal >= minimo) && (temporal <= maximo)) {
                                                            // Si el elemento no se encuentra en numeros[] agregamos (push), en caso
                                                            // de que si se encuentre (continue;), saltar al siguente numero, restando
                                                            //uno al contador del for.
                                                           if(numeros.indexOf(temporal)!=-1){
                                                                        i--; //en caso de valor incorrecto se descuenta uno para que salgan 6 valores
                                                                        continue;
                                                           } else {
                                                                        numeros.push(temporal); //agregamos al array el número de temporal
                                                           }
 
                                                }else{
                                                        i--;//en caso de valor incorrecto se descuenta uno para que salgan 6 valores
                                                        continue;
                                                }
 
                                }
                                       
                                        //
                                        for (i=0;i<numeros.length;i++){
                                                alert("Numero "+(i+1)+" = "+numeros[i]); //visualizamos los números por ventana emergente                                             
                                        }
 
                                        //Preguntamos si se vuelven a generar numeros. Si es que si, se llama a la función recargar
                                        if(confirm("Quieres volver a generar los numeros?")) {
                                                recargar();
                                        }else{ //Si no queremos volver a generar imprimos por pantalla los strings y los números ya generados.
                                                document.write("<div align='center'><h1><strong>Fin del programa</strong></h1>");
                                                document.write("<h3>N&uacute;meros ganadores:</h3>");
                                                document.write("<table border='1'><tr>");
                                                for (i=0;i<numeros.length;i++){
                                                        document.write("<td>"+numeros[i]+"</td>");
                                                }
                                                document.write("</tr></table></div>");
                                        }
 
                         }
 
     </script>
 
   </head>
   <body>
           <div align="center"><input type="button" value="LANZAR" onClick="dados();"></div>
   </body>
</html>

 

 

También te puede interesar ...

Deja un comentario

* Al utilizar este formulario, aceptas que este sitio web almacene y maneje tus datos.

Resumen de privacidad
cookies entreunosyceros

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible.

La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudarnos a comprender qué secciones de la web encuentras más interesantes y útiles.

Nunca almacenamos información personal de ningún tipo.

Tienes toda la información sobre privacidad, derechos legales y cookies en nuestra página sobre la política de privacidad o en la página sobre nuestra política de cookies.

Cookies necesarias

Las cookies estrictamente necesarias tiene que activarse siempre para que podamos guardar tus preferencias de ajustes de cookies.

Si desactivas esta cookie no podremos guardar tus preferencias. Esto significa que cada vez que visites esta web tendrás que activar o desactivar las cookies de nuevo.

Cookies de terceros

Esta web utiliza las siguientes cookies adicionales:

- Mailchimp: Recordar si ya estás suscrito al boletín de noticias y sino ofrecértelo al salir.

- Accesibilidad: Para saber tus ajustes de accesibilidad en cada visita.

- Comentarios: Saber si has leído y aceptado nuestra política de privacidad a la hora de dejar un comentario en la web.

- Google Analytics: Localización para recopilar información anónima tal como el número de visitantes del sitio, o las páginas más populares.

- Goggle Adsense: Anuncios personalizados según tu geolocalización y preferencias.

Dejar estas cookies activadas nos permite mejorar nuestra web.

Adblock Detectado!!

Ayúdanos deshabilitando la extensión AdBlocker de tu navegador para visitar esta web.
Si no sabes hacerlo en Chrome, consulta el siguiente enlace. Si utilizas Firefox, puedes consultar este otro enlace.
Esto mejorará tu experiencia en este sitio web.