public void Set(PGNChessGame g) { idx = -1; move = null; total_moves = 0; player = g.HasTag ("FEN") ? ChessGamePlayer. CreateFromFEN (g. GetTagValue ("FEN", null)) : ChessGamePlayer.CreatePlayer (); game = g; int n = game.Moves.Count; if (n > 0) { total_moves = (n - 1) * 2; // now see the last move ChessMove lastmove = (ChessMove) game.Moves[n - 1]; if (lastmove.blackmove == null) total_moves += 1; else total_moves += 2; } if (total_moves == 0) hasNext = false; else hasNext = true; }
protected static string GenerateHash(PGNChessGame game) { StringBuilder buffer = new StringBuilder (); int nmoves = game.Moves.Count; buffer.Append (String. Format ("{0}:", nmoves)); ChessGamePlayer player; player = game.HasTag ("FEN") ? ChessGamePlayer. CreateFromFEN (game.GetTagValue ("FEN", null)) : ChessGamePlayer.CreatePlayer (); player = Chess.Game. ChessGamePlayer.CreatePlayer (); foreach (PGNChessMove move in game.Moves) { player.Move (move.Move); } buffer.Append (player.GetPositionAsFEN ()); buffer.Append (((nmoves + 1) / 2)); return buffer.ToString (); }
public PGNGameDetails(PGNChessGame game) : base(game) { nmoves = game.Moves.Count; white = game.GetTagValue ("White", ""); black = game.GetTagValue ("Black", ""); result = game.GetTagValue ("Result", "*"); }