Beispiel #1
0
        private ChessData.ChessMove ParseMove(string json)
        {
            var parsed            = JSON.Parse(json);
            var pieceType         = (ChessData.ChessPieceType) int.Parse(parsed["chess_piece_type"]);
            var isCapture         = bool.Parse(parsed["is_capture"]);
            var isPromotioToQueen = bool.Parse(parsed["is_promotion_to_queen"]);
            var drawOfferExtended = bool.Parse(parsed["draw_offer_extended"]);
            var isCheck           = bool.Parse(parsed["is_check"]);
            var isCheckMate       = bool.Parse(parsed["is_check_mate"]);
            var kingsideCastle    = bool.Parse(parsed["kingsideCastle"]);
            var queensideCastle   = bool.Parse(parsed["queenside_castle"]);
            var fromRow           = int.Parse(parsed["from"]["row"]);
            var fromColumn        = int.Parse(parsed["from"]["column"]);
            var fromCoord         = new ChessData.Coordinate(fromRow, fromColumn);
            var toRow             = int.Parse(parsed["to"]["row"]);
            var toColumn          = int.Parse(parsed["to"]["column"]);
            var toCoord           = new ChessData.Coordinate(toRow, toColumn);
            var move = new ChessData.ChessMove(fromCoord, toCoord, pieceType, isCapture,
                                               isPromotioToQueen, drawOfferExtended, isCheck, isCheckMate,
                                               kingsideCastle, queensideCastle);

            return(move);
        }
Beispiel #2
0
        public bool TryApplyMove(ChessData.ChessMove newMove)
        {
            var request = new Dictionary <string, string>();

            request.Add("from_row", newMove.From.Row.ToString());
            request.Add("to_row", newMove.To.Row.ToString());
            request.Add("from_column", newMove.From.Column.ToString());
            request.Add("to_column", newMove.To.Column.ToString());
            request.Add("chess_piece_type", ((int)newMove.PieceType).ToString());
            request.Add("is_capture", newMove.IsCapture.ToString());
            request.Add("is_promotion_to_queen", newMove.IsPromotionToQueen.ToString());
            request.Add("draw_offer_extended", newMove.DrawOfferExtended.ToString());
            request.Add("is_check", newMove.IsCheck.ToString());
            request.Add("is_check_mate", newMove.IsCheckMate.ToString());
            request.Add("kingside_castle", newMove.KingsideCastle.ToString());
            request.Add("queenside_castle", newMove.QueensideCastle.ToString());
            var status = bool.Parse(GetResponse("try_apply_move", request));

            if (status)
            {
                PreviousMove = newMove;
            }
            return(status);
        }