public Day17(List <string> d) { grid1 = new Grid3D(d[0].Length - 1, d.Count - 1, 0); grid2 = new Grid4D(d[0].Length - 1, d.Count - 1, 0, 0); int y = 0; foreach (string s in d) { int x = 0; foreach (char c in s) { Cord3D cord = new Cord3D(x, y, 0); Cord4D cord2 = new Cord4D(x, y, 0, 0); Node n; Node m; if (c == '#') { n = new Node(true); m = new Node(true); } else { n = new Node(false); m = new Node(false); } grid1.AddNode(cord, n); grid2.AddNode(cord2, m); x++; } y++; } }
public void AddNode(Cord4D c, Node n) { foreach (Cord4D co in c.GetNeighbourCords()) { if (nodes.ContainsKey(co)) { nodes[co].AddNeighbour(n); n.AddNeighbour(nodes[co]); } } nodes.Add(c, n); }
void GenerateW(int w) { for (int i = minX; i <= maxX; i++) { for (int j = minZ; j <= maxZ; j++) { for (int k = minY; k <= maxY; k++) { Cord4D cord = new Cord4D(i, k, j, w); Node n = new Node(false); this.AddNode(cord, n); } } } }
void GenerateX(int x) { for (int i = minZ; i <= maxZ; i++) { for (int j = minY; j <= maxY; j++) { for (int k = minW; k <= maxW; k++) { Cord4D cord = new Cord4D(x, j, i, k); Node n = new Node(false); this.AddNode(cord, n); } } } }
void GenerateY(int y) { for (int i = minX; i <= maxX; i++) { for (int j = minZ; j <= maxZ; j++) { for (int k = minW; k <= maxW; k++) { Cord4D cord = new Cord4D(i, y, j, k); Node n = new Node(false); this.AddNode(cord, n); } } } }
void GenerateZ(int z) { for (int i = minX; i <= maxX; i++) { for (int j = minY; j <= maxY; j++) { for (int k = minW; k <= maxW; k++) { Cord4D cord = new Cord4D(i, j, z, k); Node n = new Node(false); this.AddNode(cord, n); } } } }