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
}
Hola! Puedes hacer un array de 91 posiciones e ir comparando.
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
Vale,gracias.Lo probarè y si tengo una dudo le pregunto.
Échale un vistazo a mi mensaje anterior que lo he modificado. Lo que tiene no conocer las reglas del bingo :P
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.
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:
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.