Beispiel #1
0
        void ParseInput()
        {
            string resourceName = "Advent2018.Advent12.Input.txt";
            //resourceName = "Advent2018.Advent12.Test.txt";
            var input = typeof(Program).Assembly.GetManifestResourceStream(resourceName);

            powers    = new int[5];
            powers[0] = 1;
            powers[1] = 2;
            powers[2] = 4;
            powers[3] = 8;
            powers[4] = 16;

            using (var txt = new StreamReader(input))
            {
                var initialString = txt.ReadLine().Split(' ')[2];
                var initial       = initialString.Select(c => c == '#').ToArray();
                current = new PlantLine(initial, 0);

                txt.ReadLine();

                rules = new Dictionary <int, bool>();
                for (int n = 0; n < 32; n++)
                {
                    rules.Add(n, false);
                }

                while (!txt.EndOfStream)
                {
                    var line = txt.ReadLine();
                    if (line[9] == '#')
                    {
                        int ruleKey = 0;
                        for (int n = 0; n < 5; n++)
                        {
                            if (line[n] == '#')
                            {
                                ruleKey += powers[n];
                            }
                        }
                        rules[ruleKey] = true;
                    }
                }
            }
        }
Beispiel #2
0
 private void TakeStep()
 {
     current = current.GetNext();
 }