/// <summary> /// 生成文字描述。 /// </summary> public void GenerateFriendlyText() { var sb = new System.Text.StringBuilder(); sb.Append(Piece.GetFriendlyName()); sb.Append("从"); sb.Append(OriginalPosition.ToString()); sb.Append("到"); sb.Append(NewPosition.ToString()); if (IsCapture && CapturedPiece != null) { sb.Append(", 吃"); sb.Append(CapturedPiece.GetFriendlyName()); } if (Promotion.HasValue) { sb.Append(", 晋升为"); sb.Append(ChessGame.OriginalMapPgnCharToPiece(Promotion.Value, Player).GetFriendlyName()); } if (Castling.Equals(CastlingType.KingSide)) { sb.Append(", 王翼易位"); } if (Castling.Equals(CastlingType.QueenSide)) { sb.Append(", 后翼易位"); } if(IsEnpassant) { sb.Append(", 吃过路兵"); } if (IsCheckmate.HasValue && IsCheckmate.Value) { sb.Append(", 将死"); } else if (IsChecking.HasValue && IsChecking.Value) { sb.Append(", 将军"); } this._storedFriendlyText = sb.ToString(); }