public void Run() { startBackgroundMusic(); Console.BufferHeight = Console.WindowHeight; Console.CursorVisible = false; snake = new Snake(); snake.Show(); obstacles = new Obstacles(); obstacles.Show(); food = new Food(snake, obstacles); food.Create(); food.Show(); level = new Level(); int direction = right; try { while (true) { direction = updateDirection(direction); snake.Advance(direction, food, obstacles); if (food.IsTimeToMove()) { food.Hide(); food.Create(); food.Show(); level.NegativePoints += 5; } level.UpdatePoints(snake); if (level.LevelChanged) { level.ShowLevel(); obstacles.AddMore(snake, food); sleepTime -= 2; } sleepTime -= 0.01; Thread.Sleep((int)sleepTime); } } catch (Exception e) { level.UpdatePoints(snake); level.ShowGameOver(); } }