private static void InitializeEngine(GameEngine engine)
        {
            for (int i = 0; i < GAME_FIELD_WIDTH; i++)
            {
                engine.AddObject(new Wall(new Position(i, 0)));
                engine.AddObject(new Wall(new Position(i, GAME_FIELD_HEIGHT)));
            }

            for (int i = 0; i < GAME_FIELD_HEIGHT; i++)
            {
                engine.AddObject(new Wall(new Position(0, i)));
                engine.AddObject(new Wall(new Position(GAME_FIELD_WIDTH, i)));
            }

            for (int i = 0; i < GAME_FIELD_WIDTH - 50; i++)
            {
                engine.AddObject(new Wall(new Position(i, GAME_FIELD_HEIGHT - 10)));
            }

            for (int i = GAME_FIELD_HEIGHT - 10; i < GAME_FIELD_HEIGHT - 2; i++)
            {
                engine.AddObject(new Wall(new Position(GAME_FIELD_WIDTH - 50, i)));
            }

            for (int i = GAME_FIELD_HEIGHT - 20; i < GAME_FIELD_HEIGHT; i++)
            {
                engine.AddObject(new Wall(new Position(GAME_FIELD_WIDTH - 25, i)));
            }

            for (int i = GAME_FIELD_WIDTH - 60; i < GAME_FIELD_WIDTH - 4; i++)
            {
                engine.AddObject(new Wall(new Position(i, GAME_FIELD_HEIGHT - 21)));
            }

            for (int i = 1; i <( GAME_FIELD_WIDTH >> 1); i++)
            {
                engine.AddObject(new Wall(new Position(i, GAME_FIELD_HEIGHT - 26)));
            }

            for (int i = GAME_FIELD_WIDTH - 11; i < GAME_FIELD_WIDTH - 2; i++)
            {
                engine.AddObject(new Wall(new Position(i, 7)));
            }

            for (int i = 0; i < 7; i++)
            {
                engine.AddObject(new Wall(new Position(GAME_FIELD_WIDTH - 11, i)));
            }

            Player player = Player.Instance;
            player.Position.X = 5;
            player.Position.Y = GAME_FIELD_HEIGHT - 5;

            engine.AddObject(new Zombie(new Position(2, GAME_FIELD_HEIGHT - 2), 100));
            engine.AddObject(new Zombie(new Position(23, GAME_FIELD_HEIGHT - 28), 100));
            engine.AddObject(new Zombie(new Position(38, 7), 100));

            engine.AddObject(new Zombie(new Position(58, 11), 100));

            engine.AddObject(new MedicKit(new Position(33, 6)));

            for (int i = 20; i < GAME_FIELD_WIDTH - 20; i++)
            {
                Wall newWall = new Wall(new Position(i, 10));
                engine.AddObject(newWall);
            }
            for (int i = GAME_FIELD_WIDTH; i > GAME_FIELD_WIDTH - 20; i--)
            {
                engine.AddObject(new Wall(new Position(i, GAME_FIELD_HEIGHT - 10)));
            }
            for (int i = GAME_FIELD_HEIGHT - 9; i < GAME_FIELD_HEIGHT - 3; i++)
            {
                engine.AddObject(new Wall(new Position(GAME_FIELD_WIDTH - 20, i)));
            }
            engine.AddObject(new Gate(new Position(GAME_FIELD_WIDTH - 5, 1)));
            engine.AddObject(new Key(new Position(GAME_FIELD_WIDTH - 2, GAME_FIELD_HEIGHT - 7)));
            engine.AddObject(new MedicKit(new Position(GAME_FIELD_WIDTH - 17, GAME_FIELD_HEIGHT - 7)));
            engine.AddObject(player);
        }
        static void Main(string[] args)
        {
            Console.Clear();
            ConsoleRenderer gameRenderer = new ConsoleRenderer();
            KeyboardInterface controls = new KeyboardInterface();
            Console.BackgroundColor = ConsoleColor.Black;
            Console.WindowWidth = Console.BufferWidth = GAME_FIELD_WIDTH + 1;
            Console.WindowHeight = Console.BufferHeight = GAME_FIELD_HEIGHT + 1;
               // DoubleBuffer.buffer bf = new DoubleBuffer.buffer(GAME_FIELD_WIDTH, GAME_FIELD_HEIGHT-1, GAME_FIELD_WIDTH, GAME_FIELD_HEIGHT-1);
            Console.CursorVisible = false;

            GameEngine ZEUS = new GameEngine(gameRenderer, controls, GAME_FIELD_WIDTH + 1 * GAME_FIELD_HEIGHT + 1);

            controls.OnLeftPressed += (sender, eventInfo) =>
            {
                ZEUS.MovePlayerLeft();
            };

            controls.OnRightPressed += (sender, eventInfo) =>
            {
                ZEUS.MovePlayerRight();
            };

            controls.OnUpPressed += (sender, eventInfo) =>
            {
                ZEUS.MovePlayerUp();
            };
            controls.OnDownPressed += (sender, eventInfo) =>
            {
                ZEUS.MovePlayerDown();
            };

            InitializeEngine(ZEUS);
            ZEUS.Run();
        }