static bool validateGeneral(Chess_Board board, Chess_Square source_square, Chess_Square destination_square) { // you cannot move to a square containing a king, this is only possible for pawns if (board.Board[destination_square.x, destination_square.y] is King) { return(false); } if (source_square == destination_square) { return(false); } return(true); }
/// <summary> /// Check if a given move is valid using the source and destination square /// </summary> /// <param name="board"></param> /// <param name="source_square"></param> /// <param name="destination_square"></param> /// <param name="pawn"></param> /// <returns></returns> public static bool is_Valid_Move(Chess_Board board, Chess_Square source_square, Chess_Square destination_square, Pawn pawn) { if (validateGeneral(board, source_square, destination_square) == false) { return(false); } //Pawn dont move backwards if (pawn.color == Color.WHITE && destination_square.x < source_square.x) { return(false); } else if (pawn.color == Color.BLACK && destination_square.x > source_square.x) { return(false); } // pawns only move one step if (destination_square.x - source_square.x != Math.Abs(1)) { return(false); } return(true); }
public static bool is_Valid_Move(Chess_Board board, Chess_Square source_square, Chess_Square destination_square, Queen queen) { return(false); }