Example #1
0
        public Game Parse(string[] lines, ref int lineIndex)
        {
            var game = _gameInfoBaseParser.Parse(lines, ref lineIndex);

            if (lineIndex >= lines.Length - 1)
            {
                return(null);
            }

            game.PlayerGameSnapshots = _playersBaseParser.Parse(lines, ref lineIndex, game.PlayersCount);
            UpdatePlayersOnParsedEarly(game.PlayerGameSnapshots);

            game.Players = game.PlayerGameSnapshots.Select(ps => ps.Player).ToList();

            var blindPlayers = _playerBlindsBaseParser.Parse(game, lines, ref lineIndex);

            if (blindPlayers.Count != 2)
            {
                return(null);
            }

            game.Rounds = _roundsBaseParser.Parse(game, lines, ref lineIndex);

            var cards = game.Rounds.SelectMany(r => r.Cards).ToList();

            if (cards.Any())
            {
                game.Board = new Board
                {
                    Cards = cards
                };
            }

            return(game);
        }