Пример #1
0
        // --------------------------------------------------------------------
        public long PuzzleA(IEnumerable <String> data, int multiplier = 1)
        {
            var d = Solver09.ParseData(data);
            int numberOfPlayers = d[0];
            int maxMarbleVal    = d[1] * multiplier;

            _board.Clear();
            _playerScores.Clear();

            int player = 1;

            for (int currentMarble = 1; currentMarble <= maxMarbleVal; currentMarble++, player++)
            {
                if (player > numberOfPlayers)
                {
                    player = 1;
                }

                var score = _board.AddMarble(currentMarble);
                if (score > 0)
                {
                    if (!_playerScores.ContainsKey(player))
                    {
                        _playerScores.Add(player, 0);
                    }

                    _playerScores[player] = _playerScores[player] + score;
                }
            }

            return(_playerScores.Values.Max());
        }
Пример #2
0
        // --------------------------------------------------------------------
        public async override Task <string> PuzzleB()
        {
            var data = await GetInput(DATAFILE);

            var solver = new Solver09();

            return(solver.PuzzleB(data).ToString());
        }