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();
}
}
}