elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Ayuda!!! comparar que no se repita ningun numero en el array (Java)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda!!! comparar que no se repita ningun numero en el array (Java)  (Leído 6,309 veces)
afrocardo

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Ayuda!!! comparar que no se repita ningun numero en el array (Java)
« en: 2 Abril 2016, 12:00 pm »

Buenas,

Vamos a ver, tengo que hacer el juego del bingo en Java.Ya lo tengo casi hecho.Pero,en el modulo jugar tengo un problema.No se como hacer para que los numeros que vaya sacando no se repitan en el array.Tengo idea de que es con un for.Pero no se hacerlo me podiais ayudar.

Este es mi modulo jugar:

while (!VerSiFin()) {
         //Generar numero aleatorio
         numAleatorio=(int) (Math.random()*90+1);
         //Llamada al modulo resolver
         resolver(numAleatorio);
         //Llamada al modulo mostrar
         mostrar();
         //Ahora debo hacer un for para que comparar que no se repita un numero
      }


En línea

LaiaxanIV

Desconectado Desconectado

Mensajes: 57


Ver Perfil
Re: Ayuda!!! comparar que no se repita ningun numero en el array (Java)
« Respuesta #1 en: 2 Abril 2016, 12:11 pm »

Hola! Puedes hacer un array de 91 posiciones e ir comparando.
Código:
int rnum;
           int rnum;
           int cont = 0;
           int[] repetidos = new int [90];
           for(int i = 0; i < 90; ++i){
               repetidos[i] = 0;
           }
            while(cont<90){
                rnum = (int) (Math.random()*90 +1);
                System.out.println(rnum);
                if(repetidos[rnum-1]== 0){
                    repetidos[rnum-1]=1;
                    ++cont;
                }
                }
            }

Habia puesto 100 porque creía que había 100 posiciones y que el 0 estaba :P. Te modificio el código para que sea correcto


« Última modificación: 2 Abril 2016, 12:21 pm por LaiaxanIV » En línea

afrocardo

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Re: Ayuda!!! comparar que no se repita ningun numero en el array (Java)
« Respuesta #2 en: 2 Abril 2016, 12:14 pm »

Vale,gracias.Lo probarè y si tengo una dudo le pregunto.
En línea

LaiaxanIV

Desconectado Desconectado

Mensajes: 57


Ver Perfil
Re: Ayuda!!! comparar que no se repita ningun numero en el array (Java)
« Respuesta #3 en: 2 Abril 2016, 12:22 pm »

Échale un vistazo a mi mensaje anterior que lo he modificado. Lo que tiene no conocer las reglas del bingo :P
En línea

afrocardo

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Re: Ayuda!!! comparar que no se repita ningun numero en el array (Java)
« Respuesta #4 en: 2 Abril 2016, 13:15 pm »

public void jugar() {
      // Declaro una variable aleatoria

      int[] vectoraleatorios = new int[90];
      int numAleatorio=0 ;
      int contador = 0;
      // For para recorrer el tablero
      while (!VerSiFin()) {
         //Generar numero aleatorio
         numAleatorio=(int) (Math.random()*90+1);
         //Llamada al modulo resolver
         resolver(numAleatorio);
         //Llamada al modulo mostrar
         mostrar();
         //Ahora debo hacer un for para que comparar que no se repita un numero
         
      }

Esto era lo que me faltaba por copiar,la parte de arriba.
         
En línea

esjuleta

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: Ayuda!!! comparar que no se repita ningun numero en el array (Java)
« Respuesta #5 en: 4 Abril 2016, 17:20 pm »

Una forma puede ser crear un array de enteros del 1 al 90 y después cambiar aleatóriamente la posición de cada elemento. Una vez el array esté listo, ya puedes ir mostrando a los jugadores el contenido del array empezando desde la posición 0. Además, el mismo array te servirá luego para comprobar los números de quien cante línea o bingo.

Una posible implementación:

Código:

int[] array = new int[90];
llenarArray();
mezclarArray();

llenarArray(){
 for(int i = 0; i < array.length; i++){
    array[i] = i + 1;
  }
}

mezclarArray(){
  int posicionCambio = 0;
  int elementoCambio = 0;
  for(int i = 0; i < array.length; i++){
    posicionCambio = (int) (Math.random() * 90);
    elementoCambio = array[posicionCambio];
    array[posicionCambio] = array[i];
    array[i] = elementoCambio;
  }
}


Saludos.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Numero Aleatorio en PHP o MYSQL pero que NO se repita nunca
PHP
MakiaResc 9 23,193 Último mensaje 29 Marzo 2008, 07:45 am
por Override
ayuda con un numero que se repita
Programación C/C++
daniel010 2 2,465 Último mensaje 13 Septiembre 2013, 03:02 am
por GenR_18
desglose del un método generar numero aleatorio sin que se repita JAVA
Java
elm0n0 5 3,683 Último mensaje 30 Abril 2015, 01:00 am
por elm0n0
[AYUDA]Convertir un array de enteros a un numero entero en Java
Java
Suncar007 2 8,480 Último mensaje 7 Noviembre 2017, 02:18 am
por PabloPbl
Como puedo utilizar un numero random en un bucle sin que se repita?(cs)
.NET (C#, VB.NET, ASP)
Reent 2 2,769 Último mensaje 27 Julio 2019, 05:19 am
por WHK
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines