Pretendo mostrar se uma jogada é ou não válida em um tabuleiro de Xadrez alguém me ajuda.
Até agora tenho este código.
//CODED BY ME (NETBEANS)
/*
* O intuito deste exercício é criar uma simulação
* das peças de xadrez usando uma matriz como tab-
* leiro seguindos as regras do jogo.
/
package rrm4;
import java.util.Scanner;
/*
* @version 6
* @author rrenildopereiraa
*/
public class RRM4 {
//------------------------------------------------------------------------//
/* Este subprograma pretende criar uma matriz bidimensional 8x8 de tipo
* String e em seguida insere valores iniciais (Coloca peças pra 1 jogador).
*/
static void cBoard (String board [][]){
int [] [] cBoard = new int [8] [8];
for(int x = 0; x<cBoard.length; x++)
for(int y = 0; y<cBoard.length; y++){
System.out.println(board [x] [y]);
}
board [0][0] = "T";
board [0][1] = "C";
board [0][2] = "B";
board [0][3] = "D";
board [0][4] = "R";
board [0][5] = "B";
board [0][6] = "C";
board [0][7] = "T";
//-----------------//
board [1][0] = "P";
board [1][1] = "P";
board [1][2] = "P";
board [1][3] = "P";
board [1][4] = "P";
board [1][5] = "P";
board [1][6] = "P";
board [1][7] = "P";
//-----------------//
}
//------------------------------------------------------------------------//
/* Este subprograma pretende guadar uma peça de Xadrez e enviar a peça para
* um espaço da matriz verificando se a jogada é ou não válida e possível
* caso seja possível o local vazio passa a estar ocupado.
*/
static String getItem (String Item){
Scanner rd = new Scanner(System.in);
String item = "-";
int checkX;
int checkY;
int yStart = 0;
int yFinal = 0;
int xStart = 0;
int xFinal = 0;
System.out.println("Indique as coordenadas referentes à peça:");
xStart = rd.nextInt();
System.out.println("Indique as coordenadas referentes à peça:");
xStart = rd.nextInt();
System.out.println("Indique aS coordenadas de destino:");
xFinal = rd.nextInt();
System.out.println("Indique as coordenadas de destino:");
yFinal = rd.nextInt();
/*
SE UMA CASA FOR IGUAL A '=' ENTÃO A JOGADA É VÁLIDA
SENÃO É INVÁLIDA.
SE A COORDENADA ESCOLHIDA FOR PEÃO OU O REI PODEM ANDAR
APENAS 1 CASA EM TODAS
AS DIREÇÕES APENAS.
SE FOR CAVALO, PODE ANDAR EM 'L' (EXEMPLO: 1 PARA A DIREITA 2 PARA CIMA
SE FOR A RAINHA, PODE ANDAR QUANTAS CASAS QUISER NA DIGONAL E NA HORIZON
TAL APENAS.
SE FOR O BISPO, PODE ANDAR NA DIAGINAL APENAS.
SE FOR A TORRE, PODE ANDAR NA HORIZINTAL APENAS.
*/
return " ";
}
//------------------------------------------------------------------------//
/* Este subprograma pretende mostrar um menu para um novo jogo, dentro desse
* menu o utilizador precisa informar o programa com um algarismo para dar
* início a uma nova partida escrevendo "1" caso contrário o programa não irá
* avançar se a resposta for diferente do número pretendido.
*/
static int menuBoard (int sMenu, int board){
int choose = 0;
Scanner rd = new Scanner(System.in);
do{
System.out.println("----MENU-----\n1- Novo Jogo\n-------------");
choose = rd.nextInt();
}while (choose !=1);
if(choose == 1){
System.out.println("- - - - - - - -");
System.out.println("- - - - - - - -");
System.out.println("- - - - - - - -");
System.out.println("- - - - - - - -");
System.out.println("- - - - - - - -");
System.out.println("- - - - - - - -");
System.out.println("P P P P P P P P");
System.out.println("T C B D R B C T");
}
return board;
}
//------------------------------------------------------------------------//
public static void main(String[] args) {
Scanner rd = new Scanner(System.in);
//Inicialização das variáveis com valor zero.
int sMenu = 0;
int board = 0;
String Item = "-";
//Chamar subprogramas.
menuBoard(board, sMenu);
getItem(Item);
int yStart = 0;
int yFinal = 0;
int xStart = 0;
int xFinal = 0;
}
}