Foro de elhacker.net

Programación => Java => Mensaje iniciado por: afrocardo en 2 Abril 2016, 12:00 pm



Título: Ayuda!!! comparar que no se repita ningun numero en el array (Java)
Publicado por: afrocardo 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
      }


Título: Re: Ayuda!!! comparar que no se repita ningun numero en el array (Java)
Publicado por: LaiaxanIV 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


Título: Re: Ayuda!!! comparar que no se repita ningun numero en el array (Java)
Publicado por: afrocardo en 2 Abril 2016, 12:14 pm
Vale,gracias.Lo probarè y si tengo una dudo le pregunto.


Título: Re: Ayuda!!! comparar que no se repita ningun numero en el array (Java)
Publicado por: LaiaxanIV 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


Título: Re: Ayuda!!! comparar que no se repita ningun numero en el array (Java)
Publicado por: afrocardo 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.
         


Título: Re: Ayuda!!! comparar que no se repita ningun numero en el array (Java)
Publicado por: esjuleta 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.