public void Draw(MapInfo map, GameInfo info)
 {
     //DrawHUD(info);
     DrawMap(map, info);
     //DrawMessages();
     WritePanels();
 }
        public void DrawMap(MapInfo map, GameInfo info)
        {
            int viewWidth = 30;
            int viewHeight = 10;
            int viewX = info.ExtendedPlayerInfo.X - viewWidth / 2;
            int viewY = info.ExtendedPlayerInfo.Y - viewHeight / 2;
            if (viewX < 0) viewX = 0;
            if (viewY < 0) viewY = 0;
            if (viewX + viewWidth > map.MapWidth) viewX = map.MapWidth - viewWidth;
            if (viewY + viewHeight > map.MapLength) viewY = map.MapLength - viewHeight;

            for (int j = 0; j < viewHeight; j++)
            {
                char[] line = new char[viewWidth];
                for (int i = 0; i < line.Length; i++)
                {
                    TileInfo tile = map.Tiles[viewY + j][viewX + i];
                    if (tile.Player != null)
                    {
                        if (tile.Player.IsKilled)
                        {
                            char symbol = 'X';
                            ConsoleColor colour = ConsoleColor.Red;  //tile.Player.Colour;
                            MainPanel.Write(symbol, colour);
                        }
                        else
                        {
                            char symbol = tile.Player.Symbol;
                            ConsoleColor colour = tile.Player.Colour;  //tile.Player.Colour;
                            MainPanel.Write(symbol, colour);
                        }
                    }
                    else if (tile.Bullet != null)
                    {
                        char symbol = '.';
                        ConsoleColor colour = ConsoleColor.Yellow;
                        MainPanel.Write(symbol, colour);
                    }
                    else
                    {
                        char symbol = tile.Symbol;
                        ConsoleColor colour = tile.Colour;
                        MainPanel.Write(symbol, colour);
                    }
                }
                MainPanel.Write('\n', ConsoleColor.Gray);
            }
            int p = 1;
        }
        public static MapInfo LoadFromArray(char[][] mapArray)
        {
            MapInfo map = new MapInfo();
            map.Tiles = new List<List<TileInfo>>();
            for (int i = 0; i < mapArray.Length; i++)
            {
                List<TileInfo> list = new List<TileInfo>();
                for (int j = 0; j < mapArray[i].Length; j++)
                {
                    list.Add(new TileInfo() { X = j, Y = i, Colour = ConsoleColor.Gray, Symbol = mapArray[i][j] });
                }
                map.Tiles.Add(list);
            }

            map.MapLength = mapArray.Length;
            map.MapWidth = mapArray[0].Length;
            return map;
        }