Пример #1
0
        public static string MapAsText(Level level, Array2D<int> map)
        {
            List<string> stringLevel = LevelEncoder.EncodeLevel(level.Data, false);
            List<char[]> charLevel = stringLevel.ConvertAll<char[]>(delegate(string value) { return value.ToCharArray(); });
            Array2D<char> charMap = new Array2D<char>(charLevel.ToArray());
            foreach (Coordinate2D coord in level.InsideCoordinates)
            {
                int count = map[coord];
                if (count != 0)
                {
                    char glyph;
                    if (count > 9)
                    {
                        glyph = '~';
                    }
                    else
                    {
                        glyph = (char)((int)'0' + count);
                    }
                    charMap[coord] = glyph;
                }
            }

            string[] rows = charMap.ConvertAllRows<string>(delegate(char[] value) { return new string(value); });
            return LevelEncoder.Concat(rows, "\r\n");
        }