public GameResults(string results) { if (results == "1-0") { Results = GameResultsType.WhiteWins; } else if (results == "0-1") { Results = GameResultsType.BlackWins; } else if (results == "1/2-1/2" || results == "1/2") { Results = GameResultsType.Tie; } else if (results == "*") { Results = GameResultsType.Unresolved; } else { throw new Exception("Illegal game result: " + results); } }
public static string EncodeGame(List<Move> moves, GameResultsType? result = null) { var sb = new StringBuilder(); foreach (var move in moves) sb.Append(EncodeMove(move.From, move.To, move.Promotion)); if (result != null) { sb.Append('-'); sb.Append(((int)result).ToString()); } return sb.ToString(); }