Valida movimento de Strings em JAVA

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;




}

}

Você joga xadrez?