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

movimiento de la reina

Estas en el tema de movimiento de la reina en el foro de Java en Foros del Web. Hola a tod@s estoy intentando hacer un programa que simule los posibles movimientos de la reina en ajedrez. El tablero es 8x8. El usuario introduce ...
  #1 (permalink)  
Antiguo 29/04/2014, 17:11
Avatar de alejandcc  
Fecha de Ingreso: diciembre-2011
Ubicación: Plasencia
Mensajes: 54
Antigüedad: 12 años, 11 meses
Puntos: 1
movimiento de la reina

Hola a tod@s estoy intentando hacer un programa que simule los posibles movimientos de la reina en ajedrez. El tablero es 8x8. El usuario introduce las coordenadas de la reina, y partiendo de ahi hay que pintar en el tablero con un "*" los posibles movimientos de la reina. En las casillas por las cuales no se mueva validos la reina se escriba B o N (blanca o negra). Yo tengo pintado el tablero con los movimientos en horizontal de la reina, pero no consigo hacer que me pinte los movimientos diagonales. Este es mi codigo:

***************************

public void pintarPosicionReina(int fila, int columna, Tablero t){



for(int i=1;i<9;i++){

for(int j=1;j<9;j++){

//para las filas impares ************************************************** *********
if(i%2!=0){
//la fila en la que este la reina estara toda en asterisco
if(i==fila){
System.out.print("*");
}else{
//la columna en la que este la reina toda en asterisco
if(j==columna)
System.out.print("*");

if(j!=columna){


if(j%2!=0)
System.out.print("B");

else
System.out.print("N");



}

}
//para las filas pares ************************************************** ***********
}else{
//la fila en la que este la reina estara toda en asterisco
if(i==fila){
System.out.print("*");


}else{
//la columna donde este la reina toda en asterisco
if(j==columna)
System.out.print("*");

if(j!=columna){


if(j%2!=0){
System.out.print("N");
}else{
System.out.print("B");
}
}

}

}


}
System.out.println();

}

}

************ fin **************

Gracias de antemano.
  #2 (permalink)  
Antiguo 02/05/2014, 05:41
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 16 años, 3 meses
Puntos: 188
Respuesta: movimiento de la reina

Ten en cuenta que en los movimientos diagonales por cada unidad de desplazamiento en una fila se debe modificar también una unidad en el desplazamiento en la columna adyacente.
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}

Etiquetas: movimiento, programa
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 22:21.