/// <summary>
        ///
        /// Метод который реализует игровое поведение змеи
        ///
        /// </summary>
        /// <param name="culture"> Регион пользователя </param>
        /// <param name="resourceMenager"> Ресурсы для отображения сообщений пользователю </param>
        private static void GameProcess(WallController wallController,
                                        SnakeControllers snakeControllers,
                                        FoodController foodController,
                                        ResourceManager resourceMenager,
                                        CultureInfo culture)
        {
            while (!IsGameOver(wallController, snakeControllers))
            {
                if (IsEatingSnake(snakeControllers, foodController))
                {
                    Point food = (Point)((ICreated)foodController).CreatedGameObject();
                    DrawGameObject(food);
                }
                else
                {
                    MoveGameObject(snakeControllers);
                }

                Thread.Sleep(100);
                if (Console.KeyAvailable)
                {
                    ConsoleKeyInfo key = Console.ReadKey(true);
                    snakeControllers.HandleKey(key.Key);
                }
            }

            WriteGameOver(resourceMenager, culture);
        }
        static void Main(string[] args)
        {
            #region ---===   Language   ===---

            CultureInfo     culture         = CultureInfo.CurrentCulture;
            ResourceManager resourceMenager = new ResourceManager("_13_05_2020_GameSnake_.Languages.Messages", typeof(Program).Assembly);

            #endregion

            #region ---===   Constant   ===---

            #endregion

            ConsoleKey exit;

            do
            {
                #region ---===   Controllers   ===---

                WallController   wallController   = new WallController(Console.WindowWidth - 20, Console.WindowHeight - 10);
                SnakeControllers snakeControllers = new SnakeControllers();
                FoodController   foodController   = new FoodController(wallController);

                #endregion

                CratedGameObject(snakeControllers, foodController);
                DrawGameObject(wallController, snakeControllers, foodController);

                GameProcess(wallController, snakeControllers, foodController, resourceMenager, culture);

                exit = ProcessingPressKey(resourceMenager, culture);

                Console.Clear();
            } while (!(exit == ConsoleKey.Escape ||
                       exit == ConsoleKey.N) &&
                     (exit == ConsoleKey.Y));
        }
 /// <summary>
 ///
 /// Игра продолжается до тех пор пока змейка
 /// не столкнется с сенкой или своим хвостом
 ///
 /// </summary>
 /// <param name="wall"> Сены на игровом поле </param>
 /// <param name="snake"> Змея на игровом поле </param>
 /// <returns></returns>
 private static bool IsGameOver(IHits wall, SnakeControllers snake)
 {
     return((wall).IsHit(snake.Snake) ||
            (snake.IsHitTail()));
 }