Exemplo n.º 1
0
        public static void Day16SolutionB()
        {
            string pathdata = "Adventday16.txt";

            Day16Dancing sut    = new Day16Dancing();
            string       state0 = "abcdefghijklmnop";

            Dictionary <string, string> transforms = new Dictionary <string, string>();

            var rows  = DataTools.ReadAllLines(pathdata);
            var cmds0 = rows[0].Split(new char[] { ',' });

            List <Command> cmds = new List <Command>();

            foreach (var cmd0 in cmds0)
            {
                cmds.Add(Command.CreateCmd(cmd0));
            }

            var    chars = state0.ToCharArray();
            string key;
            string stateEnd;

            for (int i = 0; i < 1000000000; i++)
            {
                key = string.Join(string.Empty, chars);
                if (transforms.ContainsKey(key))
                {
                    chars = transforms[key].ToCharArray();
                }
                else
                {
                    foreach (var cmd in cmds)
                    {
                        chars = sut.ProcessCmd(chars, 16, cmd);
                    }
                    stateEnd = string.Join(string.Empty, chars);
                    transforms.Add(key, stateEnd);
                }
                if (i % 100000 == 0)
                {
                    stateEnd = string.Join(string.Empty, chars);
                    Console.WriteLine($"S: {stateEnd}, iter: {i}");
                }
            }
            string state1 = string.Join(string.Empty, chars);

            Console.WriteLine($"S: {state1}, iter: end");
        }
Exemplo n.º 2
0
 public void TestSetup()
 {
     sut = new Day16Dancing();
 }