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

Ayuda a mejorar

Estas en el tema de Ayuda a mejorar en el foro de Java en Foros del Web. package ajedrez.movimientos; import ajedrez.Casilla; import ajedrez.Tablero; public class MovimientoTorreBlanca implements MovimientoFigura { private Tablero tablero; public MovimientoTorreBlanca(Tablero tablero){ this.tablero = tablero; } @Override public boolean ...
  #1 (permalink)  
Antiguo 20/04/2010, 11:35
 
Fecha de Ingreso: septiembre-2006
Mensajes: 20
Antigüedad: 17 años, 7 meses
Puntos: 0
Ayuda a mejorar

package ajedrez.movimientos;

import ajedrez.Casilla;
import ajedrez.Tablero;


public class MovimientoTorreBlanca implements MovimientoFigura {
private Tablero tablero;
public MovimientoTorreBlanca(Tablero tablero){
this.tablero = tablero;
}

@Override
public boolean puedeLlegar (Casilla origen, Casilla destino){
if (origen.containsFiguraBlanca()){
if (destino.containsFiguraBlanca()){
return false;
} else{
return (movimientoHorizontal(origen, destino) || (movimientoVertical(origen, destino)));
}
} else {
return false;
}
}



public boolean movimientoVertical (Casilla origen, Casilla destino){
if (origen.getFila () == destino.getFila ()){
int recorrido = 0;
if (origen.getColumna() < destino.getColumna()){
recorrido = origen.getColumna() + 1;
}else{
recorrido = origen.getColumna() - 1;
}
while (recorrido != destino.getColumna()){
if (tablero.getCasilla (origen.getFila(), recorrido).vacía()){
if (origen.getColumna() < destino.getColumna()){
recorrido++;
}else{
recorrido--;
}
}else{
return false;
}
}
return true;
}else{
return false;
}
}

public boolean movimientoHorizontal (Casilla origen, Casilla destino){
if (origen.getColumna () == destino.getColumna ()){
int recorridoFila = 0;
if (origen.getFila() < destino.getFila()){
recorridoFila = origen.getFila() + 1;
}else{
recorridoFila = origen.getFila() - 1;
}
while (recorridoFila != destino.getFila()){
if (tablero.getCasilla (recorridoFila, origen.getColumna()).vacía()){
if (origen.getFila() < destino.getFila()){
recorridoFila++;
}else{
recorridoFila--;
}
}else{
return false;
}
}
return true;
}else{
return false;
}
}
}


Mi pregunta es si alguien me podria aconsejar como mejorar el codigo porque verdaderamente lo veo algo rollo este codigo...
Funciona a la perfeccion pero me interesaría que mirando el código y viendo las posibilidades que tengo saber si alguien lo haria mucho más sencillo o mas pequeño.
No creo que sea necesario decir lo que se puede utilizar ya que en el mismo codigo tengo lo necesario para saber si una casilla esta vacia,etc...
  #2 (permalink)  
Antiguo 20/04/2010, 20:44
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Ubicación: por ahi!!!
Mensajes: 113
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Ayuda a mejorar

Quizas ver realmente cuales son los objetos que tienen que conversar para realizar objetivos, es un punto un poco dudoso. No parece que exista la necesidad de que una torre tenga que hablar con el tablero, cuando en realidad puede resolver sus futuras posiciones con los casilleros. Quizas falten mas objetos. Por otro lado el nombre no me gusta nada. MovimientoTorreBlanca. Para mi deberia ser Torre. Movimiento es mas para un metodo y blanca para un atributo. El comportamiento del movimiento se puede modificar dependiendo del atributo. o tambien podrias darle un comportamiento distinto a TorreBlanca y TorreNegra. Tampoco me parece que el metodo se llame movimientoHorizontal o vertical si esa informacion ya esta en el origen, destino.
  #3 (permalink)  
Antiguo 21/04/2010, 11:38
 
Fecha de Ingreso: septiembre-2006
Mensajes: 20
Antigüedad: 17 años, 7 meses
Puntos: 0
Respuesta: Ayuda a mejorar

Muchas gracias... Me pondré ha mejorarlo

Etiquetas: mejoras
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 05:20.