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

mover objetos por una matriz recursivamente

Estas en el tema de mover objetos por una matriz recursivamente en el foro de Java en Foros del Web. Buenos dias a todos, mi problema es el siguiente, tengo una matriz con objetos Bloque dentro, las posiciones vacias estan a null, y el objetivo ...
  #1 (permalink)  
Antiguo 11/11/2011, 09:01
 
Fecha de Ingreso: noviembre-2011
Mensajes: 1
Antigüedad: 12 años, 5 meses
Puntos: 0
mover objetos por una matriz recursivamente

Buenos dias a todos,

mi problema es el siguiente, tengo una matriz con objetos Bloque dentro, las posiciones vacias estan a null, y el objetivo consiste en mover 1 o + bloques por la matriz una posicion de manera recursiva.

Mi problema es que yo voy avanzando desde donde "empujo" por la matriz mirando si hay bloques hasta encontrar una posicion vacia y ahi es entonces cuando tengo que volver moviendo los bloques uno a uno.
Me pasan una energia con la que tengo ir moviendo los objetos, si me quedo sin energia pues no hago nada
Posicion es un objeto que te indica unas coordenadas (x,y)

public int empujarBloque(Posicion pos, Direccion dir, int energia)
//compruebo si la posicion siguiente en la direccion indicada (derecha, arriba..)
//esta dentro de la matriz
if(posicionDentroMatriz(pos.adyacente(dir))
return 0;
//compruebo si la posicion siguiente en la direccion indicada no es un objeto
if(posicionVacia(pos.adyacente(dir))
return 0;
//ahora se que es un objeto, compruebo si tengo energia para desplazarlo
//y entonces vuelvo a llamar con la energia consumida y la siguiente posicion
//de la matriz
if(getBloque(pos.adyacente(dir)).puedoDesplazarlo( energia)
return
empujarBloque(pos.ady(dir),dir,energia - getBloque(pos.ady).getEnergia())


Pero claro cuando llego al final solo devuelvo la energia que me queda, y no he movido ningun objeto al terminar


Mi duda es, ¿en que momento yo debo de empezar a mover los bloques?

Etiquetas: jar, matriz, objetos
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 03:53.