示例#1
0
        public void Part1(string[] lines)
        {
            var numCards   = (lines.Length - 1) / 6;
            var bingoCards = new List <BingoCard>();

            for (int i = 0; i < numCards; i++)
            {
                var cardLines = new ArraySegment <string>(lines, 2 + (6 * i), 5);
                var card      = new BingoCard(cardLines.ToArray());
                bingoCards.Add(card);
            }


            var numbers = lines[0].Split(",").Select(x => long.Parse(x)).ToList();

            foreach (var number in numbers)
            {
                foreach (var card in bingoCards)
                {
                    if (card.CallNumber(number))
                    {
                        var uncalledValue = card.GetUncalledCardValue();
                        Console.WriteLine($"Card has bingo. Uncalled value is {uncalledValue}. Last number called is: {number}. Score is: {uncalledValue * number}.");
                        return;
                    }
                }
            }
        }