List <Day12Spot> CompareAll(List <Day12Spot> previous) { List <Day12Spot> _ret = new List <Day12Spot>(); Day12Spot s = new Day12Spot(); int baseIndex = previous.First(f => f.C == '#').X - 4; for (int i = baseIndex; i <= previous.Count + this.maxX; i++) { Day12Group g = new Day12Group(previous, i); s = new Day12Spot(i, GroupCompare(g)); _ret.Add(s); } //int last = _ret.Last(l => l.C == '#').X; //int first = _ret.First(f => f.C == '#').X; while (_ret.Last().C == '.') { _ret.Remove(_ret.Last()); } while (_ret.First().C == '.') { _ret.Remove(_ret.First()); } return(_ret); }
char GroupCompare(Day12Group g) { char _ret = '.'; foreach (Day12StepGroup d12sg in this.steps) { if (g.Group.SequenceEqual(d12sg.Group)) { _ret = d12sg.Result; } } return(_ret); }