public void GenerateChain(int rowStart, int rowEnd, int nextStart, GridChain.enumDirectionType direction) { for (int index = 0; index <= rowEnd - rowStart; index++) { int fromSpot = rowStart + index; int toSpot = nextStart + index; Chain.AddGridChain(new GridChain() { Direction = direction, StopNumberFrom = fromSpot, StopNumberTo = toSpot }); } }
private void AddGridChain() { // Straight All GenerateChain(1, 167, 2, GridChain.enumDirectionType.Straight); GenerateChain(169, 333, 170, GridChain.enumDirectionType.Straight); GenerateChain(335, 496, 336, GridChain.enumDirectionType.Straight); // Inward from outside GenerateChain(1, 24, 170, GridChain.enumDirectionType.Inward); GenerateChain(26, 45, 194, GridChain.enumDirectionType.Inward); GenerateChain(52, 56, 222, GridChain.enumDirectionType.Inward); GenerateChain(58, 69, 227, GridChain.enumDirectionType.Inward); GenerateChain(71, 74, 239, GridChain.enumDirectionType.Inward); GenerateChain(77, 79, 247, GridChain.enumDirectionType.Inward); GenerateChain(81, 84, 250, GridChain.enumDirectionType.Inward); GenerateChain(86, 114, 254, GridChain.enumDirectionType.Inward); GenerateChain(117, 117, 286, GridChain.enumDirectionType.Inward); GenerateChain(119, 128, 287, GridChain.enumDirectionType.Inward); GenerateChain(133, 134, 302, GridChain.enumDirectionType.Inward); GenerateChain(136, 136, 306, GridChain.enumDirectionType.Inward); GenerateChain(138, 141, 307, GridChain.enumDirectionType.Inward); GenerateChain(145, 147, 314, GridChain.enumDirectionType.Inward); GenerateChain(149, 150, 319, GridChain.enumDirectionType.Inward); GenerateChain(152, 153, 321, GridChain.enumDirectionType.Inward); GenerateChain(155, 164, 323, GridChain.enumDirectionType.Inward); GenerateChain(166, 167, 333, GridChain.enumDirectionType.Inward); // Inward from middle GenerateChain(169, 189, 336, GridChain.enumDirectionType.Inward); GenerateChain(191, 192, 358, GridChain.enumDirectionType.Inward); GenerateChain(194, 212, 360, GridChain.enumDirectionType.Inward); GenerateChain(222, 222, 289, GridChain.enumDirectionType.Inward); GenerateChain(224, 225, 391, GridChain.enumDirectionType.Inward); GenerateChain(227, 234, 393, GridChain.enumDirectionType.Inward); GenerateChain(236, 236, 402, GridChain.enumDirectionType.Inward); GenerateChain(238, 241, 403, GridChain.enumDirectionType.Inward); GenerateChain(247, 248, 414, GridChain.enumDirectionType.Inward); GenerateChain(250, 252, 416, GridChain.enumDirectionType.Inward); GenerateChain(254, 281, 419, GridChain.enumDirectionType.Inward); GenerateChain(286, 287, 451, GridChain.enumDirectionType.Inward); GenerateChain(289, 295, 454, GridChain.enumDirectionType.Inward); GenerateChain(302, 302, 468, GridChain.enumDirectionType.Inward); GenerateChain(305, 305, 472, GridChain.enumDirectionType.Inward); GenerateChain(307, 309, 473, GridChain.enumDirectionType.Inward); GenerateChain(314, 315, 480, GridChain.enumDirectionType.Inward); GenerateChain(320, 321, 486, GridChain.enumDirectionType.Inward); GenerateChain(323, 329, 488, GridChain.enumDirectionType.Inward); GenerateChain(331, 331, 496, GridChain.enumDirectionType.Inward); GenerateChain(333, 333, 497, GridChain.enumDirectionType.Inward); // Outward from inside GenerateChain(335, 356, 169, GridChain.enumDirectionType.Outward); GenerateChain(361, 382, 196, GridChain.enumDirectionType.Outward); GenerateChain(384, 389, 218, GridChain.enumDirectionType.Outward); GenerateChain(393, 400, 228, GridChain.enumDirectionType.Outward); GenerateChain(404, 408, 240, GridChain.enumDirectionType.Outward); GenerateChain(410, 410, 245, GridChain.enumDirectionType.Outward); GenerateChain(412, 413, 246, GridChain.enumDirectionType.Outward); GenerateChain(419, 448, 255, GridChain.enumDirectionType.Outward); GenerateChain(452, 463, 288, GridChain.enumDirectionType.Outward); GenerateChain(465, 470, 300, GridChain.enumDirectionType.Outward); GenerateChain(475, 475, 311, GridChain.enumDirectionType.Outward); GenerateChain(477, 483, 312, GridChain.enumDirectionType.Outward); GenerateChain(489, 494, 325, GridChain.enumDirectionType.Outward); // Outward from middle GenerateChain(169, 189, 1, GridChain.enumDirectionType.Outward); GenerateChain(196, 212, 29, GridChain.enumDirectionType.Outward); GenerateChain(214, 214, 47, GridChain.enumDirectionType.Outward); GenerateChain(216, 218, 48, GridChain.enumDirectionType.Outward); GenerateChain(220, 222, 51, GridChain.enumDirectionType.Outward); GenerateChain(228, 234, 60, GridChain.enumDirectionType.Outward); GenerateChain(240, 241, 73, GridChain.enumDirectionType.Outward); GenerateChain(243, 243, 76, GridChain.enumDirectionType.Outward); GenerateChain(246, 246, 77, GridChain.enumDirectionType.Outward); GenerateChain(255, 281, 88, GridChain.enumDirectionType.Outward); GenerateChain(283, 283, 116, GridChain.enumDirectionType.Outward); GenerateChain(288, 295, 121, GridChain.enumDirectionType.Outward); GenerateChain(297, 298, 130, GridChain.enumDirectionType.Outward); GenerateChain(300, 302, 132, GridChain.enumDirectionType.Outward); GenerateChain(304, 304, 136, GridChain.enumDirectionType.Outward); GenerateChain(310, 310, 143, GridChain.enumDirectionType.Outward); GenerateChain(312, 315, 144, GridChain.enumDirectionType.Outward); GenerateChain(317, 318, 149, GridChain.enumDirectionType.Outward); GenerateChain(325, 329, 158, GridChain.enumDirectionType.Outward); // Connect last squares to first Chain.AddGridChain(new GridChain() { Direction = GridChain.enumDirectionType.Straight, StopNumberFrom = 168, StopNumberTo = 1 }); Chain.AddGridChain(new GridChain() { Direction = GridChain.enumDirectionType.Inward, StopNumberFrom = 168, StopNumberTo = 169 }); Chain.AddGridChain(new GridChain() { Direction = GridChain.enumDirectionType.Straight, StopNumberFrom = 334, StopNumberTo = 168 }); Chain.AddGridChain(new GridChain() { Direction = GridChain.enumDirectionType.Inward, StopNumberFrom = 334, StopNumberTo = 335 }); Chain.AddGridChain(new GridChain() { Direction = GridChain.enumDirectionType.Straight, StopNumberFrom = 497, StopNumberTo = 335 }); }