Foros del Web » Programación para mayores de 30 ;) » Java »

Como generar pares de numeros aleatorios

Estas en el tema de Como generar pares de numeros aleatorios en el foro de Java en Foros del Web. Hola como estan estoy desarrollando un juego en java para escritorio de memoria el problema es que no se como generar numeros aleatorios con pareja ...
  #1 (permalink)  
Antiguo 12/02/2009, 10:27
Avatar de Drknow  
Fecha de Ingreso: febrero-2008
Mensajes: 121
Antigüedad: 16 años, 9 meses
Puntos: 1
Como generar pares de numeros aleatorios

Hola como estan estoy desarrollando un juego en java para escritorio de memoria
el problema es que no se como generar numeros aleatorios con pareja cada uno
tengo todo se como hacer la matrices de botones y todo eso, la cuestion es que
de que manera se puede generar dichos numeros un ejemplo corto de lo que quiero hacer.

JButton btnM[][] = new JButton[4][4] // se supone que es un array bidimensional
en total seria 8 pares de numeros.
se supone que tengo que crear otro array bidimensional
int num[][] = new JButton[4][4] esto es para que me muestre los numeros al momento que voy haciendo click en los botones.

Puedo generar los numeros aleatorios con Math.random pero me devolveria sin pares o mas mmm.

otra forma que se me ocurrio seria
tener mi array listo de numeros

algo asi

int n[] = {1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8};
como ven ya tendria mi array listo solo vastaria meterlo al array bidimensional
que eso lo haria con un for

pero osea al momento de meterlos al array no cambiarian de lugar
y siempre el juego tendria las mismas posiciones mmm

como hago para meter esos valores aleatoriamente dentro de otro array ?
con un Math.random.

solo tengo esa duda muchas gracias cualquier comentario es bienvenido.
  #2 (permalink)  
Antiguo 12/02/2009, 10:59
Avatar de drac94  
Fecha de Ingreso: mayo-2008
Ubicación: México
Mensajes: 383
Antigüedad: 16 años, 6 meses
Puntos: 5
Respuesta: Como generar pares de numeros aleatorios

mira segun lo que entendi, tu lo que quieres hacer es hacerle un random pero a las posiciones del arreglo, lo que se me ocurre es que por ejemplo si tienes un arreglo de 4x4 hagas un random hasta 3 para la posicion "x" y otro para la posicion "y" y si quieres otro random para el numero.

Lo que debes hacer es una vez que generaste la pocision checar si esta vacia y si si esta meter alli el numero si no volver a generar otra posicion hasta que se pueda meter en algun lado.

Obvio esta que si quieres que sean parejas este proceso lo debes hacer 2 veces por cada numero.

creo que no esta dificil, a ver si me explique y a ver si era lo que buscabas, bye
  #3 (permalink)  
Antiguo 13/02/2009, 09:09
Avatar de Drknow  
Fecha de Ingreso: febrero-2008
Mensajes: 121
Antigüedad: 16 años, 9 meses
Puntos: 1
Respuesta: Como generar pares de numeros aleatorios

mmm no capto bien tu idea podrias dar un ejemplo basico ¨?
  #4 (permalink)  
Antiguo 13/02/2009, 10:06
Avatar de drac94  
Fecha de Ingreso: mayo-2008
Ubicación: México
Mensajes: 383
Antigüedad: 16 años, 6 meses
Puntos: 5
Respuesta: Como generar pares de numeros aleatorios

Código PHP:
int numeros [][]=new int [4][4], ocupados=0numero=1x1=0y1=0x2=0y2=0;
while (
ocupados !=16)
{
        
x1 = (int) (Math.random() * 4)-1;  //posicion aleatroria "x" del primer numero
        
y1 = (int) (Math.random() * 4)-1;  //posicion aleatroria "y" del primer numero
        
x2 = (int) (Math.random() * 4)-1;  //posicion aleatroria "x" del segundo numero
        
y2 = (int) (Math.random() * 4)-1;  //posicion aleatroria "y" del segundo numero
        
if(numeros[x1][y1]!=null && numeros[x2][y2]!=null)  //si las 2 posiciones estan vacias metes el numero en las 2
        
{
               
numeros[x1][y1]=numero;
               
numeros[x2][y2]=numero;
               
ocupados+=2//aumentas el numero de casillas ocupadas en 2
               
numero++;  //aumentas el numero siguiente
        
}

Ese es un metodo simple pero no esta optimizado, espero que te sirva
  #5 (permalink)  
Antiguo 01/03/2009, 18:20
Avatar de Drknow  
Fecha de Ingreso: febrero-2008
Mensajes: 121
Antigüedad: 16 años, 9 meses
Puntos: 1
Respuesta: Como generar pares de numeros aleatorios

mmm por ejemplo tengo un array unidimensional de enteros

int array[] = new int[4]; // tengo 4 espacios
ahora el problema es para llenarlos como podran ver
si son 4 necesito obtener 2 pares de numeros

por ejempo 1,2,2,1
pero siempre que ejecutaria el programa los lugares tienen que variar por ejemplo
1,1,2,2
2,2,1,1
1,2,1,2
y asi


y luego mostrarlo con un for claro esta.

esa es una idea la otra es ya tener mi array lleno de valores por ejemplo :

int array[]={1,2,1,2};
pero al tener un array con lugares ya establecidos no puede ser =( a
  #6 (permalink)  
Antiguo 02/03/2009, 08:41
Avatar de drac94  
Fecha de Ingreso: mayo-2008
Ubicación: México
Mensajes: 383
Antigüedad: 16 años, 6 meses
Puntos: 5
Respuesta: Como generar pares de numeros aleatorios

Prueba esto, es lo mismo q el anterior pero mas optimizado

Código PHP:
int numeros [][]=new int [4][4], ocupados=0ocupados2=0numero=1x=0y=0;
while (
ocupados !=16)
{
    
numero = (int) (Math.random() * 8)-1//numero aleatorio
    
while (ocupados2 !=2)
    {
        
= (int) (Math.random() * 4)-1;  //posicion aleatroria "x"
        
= (int) (Math.random() * 4)-1;  //posicion aleatroria "y"
        
if(numeros[x][y]!=null )  //si esta vacia esa casilla la llenas
        
{
               
numeros[x][y]=numero;
               
ocupados2++; //aumentas el numero de casillas ocupadas, esto es para hacer las parejas
        
}
    }
    
ocupados+=2//aumentas el numero de casillas ocupadas global
    
ocupados2=0;

Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:01.