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

raro raro

Estas en el tema de raro raro en el foro de Java en Foros del Web. necesito vuestra ayuda. tengo un método que te devuelve un objeto aleatorio entre vario. este es mi código: public Casilla getCasillaAleatoria(){ Random r = new ...
  #1 (permalink)  
Antiguo 07/11/2009, 13:26
 
Fecha de Ingreso: noviembre-2008
Mensajes: 10
Antigüedad: 15 años, 5 meses
Puntos: 2
raro raro

necesito vuestra ayuda. tengo un método que te devuelve un objeto aleatorio entre vario. este es mi código:

public Casilla getCasillaAleatoria(){
Random r = new Random();
int xAleatorio=r.nextInt(this.x);
int yAleatorio=r.nextInt(this.y);

return planta[xAleatorio][yAleatorio];
}

El caso es que si yo hago una llamada sola a getcasillaAleatoria() siempre me devuelve el mismo objeto de tipo casilla. este es el caso:

System.out.println(planta.getCasillaAleatoria());

Sin embargo si antes llamo a otro método que tengo definido, que te devuelve todos los objetos casilla, entonces si me devuelve una casilla distinta cada vez. este es el caso:

System.out.println(planta.getCasillas());
System.out.println(planta.getCasillaAleatoria());
  #2 (permalink)  
Antiguo 08/11/2009, 08:17
 
Fecha de Ingreso: noviembre-2008
Mensajes: 10
Antigüedad: 15 años, 5 meses
Puntos: 2
Respuesta: raro raro

alguien sabe a que se debe?
  #3 (permalink)  
Antiguo 08/11/2009, 12:05
Avatar de elangelcaido  
Fecha de Ingreso: septiembre-2003
Ubicación: Oviedo
Mensajes: 1.068
Antigüedad: 20 años, 7 meses
Puntos: 4
Respuesta: raro raro

Se me ocurre que, tal vez, sea porque antes de llamar a la funcion que te devuelve el objeto aleatorio, la matriz "planta" aún no tiene todos los objetos cargados. Sin embargo el método planta.getCasillas() debe de cargar todos los objetos en la matriz y por lo tanto luego si que te aparecen más de uno.
__________________
Ta Luego! Al final sólo puede quedar uno...
________
lukos.org
  #4 (permalink)  
Antiguo 08/11/2009, 14:03
 
Fecha de Ingreso: noviembre-2008
Mensajes: 10
Antigüedad: 15 años, 5 meses
Puntos: 2
Respuesta: raro raro

Cita:
Iniciado por elangelcaido Ver Mensaje
Se me ocurre que, tal vez, sea porque antes de llamar a la funcion que te devuelve el objeto aleatorio, la matriz "planta" aún no tiene todos los objetos cargados. Sin embargo el método planta.getCasillas() debe de cargar todos los objetos en la matriz y por lo tanto luego si que te aparecen más de uno.
los objetos los creo todos cuando llamo a constructor
Planta planta = new Planta (4,4);
se crea una matriz de 4x4 de objetos casilla
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 09:06.