Ayuda con ejercicio de programacion en java

Luisky

Lanero Regular
10 Ago 2009
16
Hola... necesito hacer lo siguiente y la verdad no se ni por donde empezar, si alguien me puede ayudar se lo agradecere...

Necesito elaborar un algoritmo (en java) que imprima un ajedrez en el que las casillas blancas se simbolizarán con una B y las negras con N. Así mismo, el programa deberá marcar con las casillas a las que se puede mover un alfil desde una posición dada. Por ejemplo:
Fila 3 Columna 4
B*BNB*BN
NB*B*BNB
BNB*BNBN //Posición inicial
NB*B*BNB
B*BNB*BN
*BNBNB*B
BNBNBNB*
NBNBNBNB


De nuevo gracias!!!
 
jajajajaja... no era eso lo que pedia... era simplemente que me ayudaran a entender el problema... haber si me podias dar una pista de como hacerlo, nada mas... de todas maneras se te agradece por tu amabilidad...
 
jajajajaja... no era eso lo que pedia... era simplemente que me ayudaran a entender el problema... haber si me podias dar una pista de como hacerlo, nada mas... de todas maneras se te agradece por tu amabilidad...

Podrias intentar hacer el algoritmo en java aun que sea una idea y hacer la pregunta para que poco a poco se vaya puliento por lo menos lo intentado.

Ahora lo que no especificaste es si las casillas estaran en forma grafica o solamente en forma de texto como la pusiste.
 
creo poder ayudarte preo se un poco mas especifico en cuanto a su funcionamoento, si de paso das un ejemplo mejor explicado te ayudare sin ningun prejuicio (de los q te han hecho), me gusta programar y mas aun practicar.

comparto el conocimiento
 
a ok yo pude mirarlo mas detenidamente y creo saber lo q quieres
pero tengo una pregunta
¿ la posicion inicial del alfil sera variada?, es decir ¿el usuario debe poder ingresar una posicion inicial diferente cuando quiera?

si no lo has hecho puedo ayudarte, de lo contrario sigue en pie mi ayuda para el futuro.
 
Ahi va el programa segun yo lo he entendido, pero intenta darle vueltas la próxima vez

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class Ajedrez {



public static void main(String[] args) {
//variable del tablero de ajedrez
String[][] ajedrez=new String[8][8];
//relleno las casillas del tablero
for(int i=0;i<8;i++){
for(int j=0;j<8;j++){
if(i%2==0){
if(j%2==0){
ajedrez[j]="B";
}else{
ajedrez[j]="N";
}
}else{
if(j%2==0){
ajedrez[j]="N";
}else{
ajedrez[j]="B";
}
}


}
}

//Pido al usuario que me de la fila y columna donde va a situar el alfil
Integer fila=-1,columna=-1;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//si la fila es mayor que 8 o menor que 1 me pide vuelve a pedir la fila, mira que a la variable fila el pongo el valor de teclado menos 1
while(fila<0||fila>7){
System.out.print("Fila del alfil(1 a 8): ");
try {
fila=Integer.valueOf(br.readLine())-1;
} catch (IOException e) {
e.printStackTrace();
}
}
//si la columna es mayor que 8 o menor que 1 me pide vuelve a pedir la columna, mira que a la variable columna el pongo el valor de teclado menos 1

while(columna<0 || columna>7){
System.out.print("Columna del alfil(1 a 8): ");
try {
columna=Integer.valueOf(br.readLine())-1;
} catch (IOException e) {
e.printStackTrace();
}
}
ajedrez[fila][columna]="*";
//dibujo * donde se encuentre la trayectoria del alfil primero en la parte superior del tablero y despues en la parte inferior
int contador=0;
for(int i=fila;i>=0;i--){
if(columna-contador>=0)
ajedrez[columna-contador]="*";
if(columna+contador<8)
ajedrez[columna+contador]="*";
contador++;

}
contador=0;
for(int i=fila;i<8;i++){
if(columna-contador>=0)
ajedrez[columna-contador]="*";
if(columna+contador<8)
ajedrez[columna+contador]="*";
contador++;

}
//dibujo el tablero con la situacion del alfil y sus posibles trayectorias
for(int i=0;i<8;i++){
for(int j=0;j<8;j++){
System.out.print(ajedrez[j]);
}
System.out.println();
}

}

}
 
Ahi va el programa segun yo lo he entendido, pero intenta darle vueltas la próxima vez

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class Ajedrez {



public static void main(String[] args) {
//variable del tablero de ajedrez
**********************
}

UISSSHHHH aspero code
 

Los últimos mensajes

Los últimos temas