protected static Piece[][] CloneBoard(Piece[][] originalBoard)
{
ChessUtilities.ThrowIfNull(originalBoard, "originalBoard");
Piece[][] newBoard = new Piece[originalBoard.Length][];
for (int i = 0; i < originalBoard.Length; i++)
{
newBoard[i] = new Piece[originalBoard[i].Length];
Array.Copy(originalBoard[i], newBoard[i], originalBoard[i].Length);
}
return newBoard;
}