This is a chess game to be played with your friends.
This game is written in C# using Visual Studio.
- The game is played on a board of 64 squares, arranged in an 8x8 grid.
- Each player controls 16 pieces: 1 king, 1 queen, 2 rooks, 2 bishops, 2 knights, and 8 pawns.
- The objective of the game is to capture the opponent's king.
- Pieces can move in different directions, depending on the type of piece.
- If a piece lands on a square occupied by an opponent's piece, the opponent's piece is captured and removed from the board.
- If a player's king is captured, the player loses the game.
- En passant: A pawn can capture an opponent's pawn that has just moved two squares forward by moving one square diagonally forward and capturing the opponent's pawn.
- Castling: The king and rook on the same file can castle, which means the king moves two squares towards the rook and the rook moves to the square next to the king.
- Promotion: When a pawn reaches the opponent's side of the board, it can be promoted to any other piece (queen, rook, bishop, or knight).
- A piece cannot move through an occupied square.
- A piece cannot capture its own piece.
- A piece cannot move to a square that is under attack by an opponent's piece.
- A player cannot make a move that puts their own king in check.
- A player is in check if their king is under attack by an opponent's piece.
- A player must get their king out of check on their next move.
- If a player cannot get their king out of check, they are checkmated and lose the game.