Ejemplo n.º 1
0
            private void BuildEdges()
            {
                /*
                 * ^---->
                 |    |
                 |    |
                 |    |
                 | <----v
                 */
                Edges = new List <string>();

                Edges.Add(new string(TileSchema.First().ToArray()));                                     //Top
                Edges.Add(new string(TileSchema.Select(row => row.Last()).ToArray()));                   //Right
                Edges.Add(new string(TileSchema.Last().Reverse <char>().ToArray()));                     //Bottom
                Edges.Add(new string(TileSchema.Select(row => row.First()).Reverse <char>().ToArray())); //Left

                //Flip
                var flippedEdges = Edges.Select(s => new string(s.Reverse().ToArray())).ToList();

                Edges.Add(flippedEdges[2]); // Former Bottom; now top
                Edges.Add(flippedEdges[1]);
                Edges.Add(flippedEdges[0]); // Former Top, now bottom
                Edges.Add(flippedEdges[3]);
            }