public override string Part1() { recipes.Add(3); recipes.Add(7); Elfs.Add(new Elf(1, 0)); Elfs.Add(new Elf(2, 1)); var recipesGoal = (Test ? 2018 : 286051); var score = (long?)null; while (!score.HasValue) { foreach (var elf in Elfs) { elf.Move(); } if (Test) { Print(); } var sumElfRecipes = Elfs.Sum(c => recipes[c.Index]); foreach (var sumElfs in sumElfRecipes.ToString()) { recipes.Add((byte)Convert.ToInt32(sumElfs.ToString())); } if ((recipesGoal + 10) <= recipes.Count - 1) { score = Convert.ToInt64(string.Join("", recipes.Skip(recipesGoal).Take(10).ToArray())); } } return(score.ToString()); }
private void Print() { var sb = new StringBuilder(); var elfIndex = Elfs.Select(c => c.Index).ToArray(); for (int i = 0; i < recipes.Count; i++) { if (elfIndex.Contains(i)) { var currentElf = Elfs.Where(c => c.Index == i).First(); var char1 = (currentElf.ID == 1) ? "(" : "["; var char2 = (currentElf.ID == 1) ? ")" : "]"; sb.Append($"{char1}{recipes[i]}{char2}"); } else { sb.Append($" {recipes[i]} "); } } Debug.WriteLine(sb.ToString()); }
public string VisitElfs(Elfs elf) { return("Elfs cast their elf magic to fly"); }
public Slime() { majin = 0; beast = 0; draconic = 0; monster = 0; demons = 0; undead = 0; humans = 0; dwarfs = 0; elfs = 0; majinCore = 0; beastCore = 0; demonsCore = 0; demonsCore = 0; undeadCore = 0; humansEssence = 0; dwarfsEssence = 0; elfsEssence = 0; }
public string VisitElfs(Elfs elf) { return(elf.walk()); }