Exemplo n.º 1
0
        public static string Serialize(IChessBoard chessBoard)
        {
            var           chessPieces      = chessBoard.ChessPiecesOnBoard;
            StringBuilder piecesSerialized = new StringBuilder();

            for (int i = 1; i <= 8; i++)
            {
                for (int j = 1; j <= 8; j++)
                {
                    string      currentTileRepresentation = "0";
                    Position    currentPosition           = new Position(j, i);
                    string      currentPositionString     = currentPosition.ToString();
                    IChessPiece currentCp = chessBoard.GetAPieceFromPosition(currentPositionString);
                    if (currentCp == null)
                    {
                        piecesSerialized.Append(currentTileRepresentation);
                        continue;
                    }
                    switch (currentCp.Name)
                    {
                    case "Pawn":
                        currentTileRepresentation = "P";
                        break;

                    case "Rook":
                        currentTileRepresentation = "R";
                        break;

                    case "Knight":
                        currentTileRepresentation = "N";
                        break;

                    case "Bishop":
                        currentTileRepresentation = "B";
                        break;

                    case "Queen":
                        currentTileRepresentation = "Q";
                        break;

                    case "King":
                        currentTileRepresentation = "K";
                        break;
                    }
                    if (currentCp.Color == ColorsEnum.Black)
                    {
                        currentTileRepresentation = currentTileRepresentation.ToLower();
                    }
                    piecesSerialized.Append(currentTileRepresentation);
                }
            }
            return(piecesSerialized.ToString());
        }