// -------------------------------------------------------------------- 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()); }
// -------------------------------------------------------------------- public async override Task <string> PuzzleB() { var data = await GetInput(DATAFILE); var solver = new Solver09(); return(solver.PuzzleB(data).ToString()); }