public void Run()
        {
            do
            {
                _userInputManager.RequestConfigurationData();
                _simulator.InitRouletteGame(_userInputManager.MinimumBid, _userInputManager.MaximumBid);
                _statisticsManager.Clear();

                do
                {
                    var strategy = StrategyFactory.Create(_userInputManager.Strategy, _userInputManager.Cycles, new Player(_userInputManager.Name, _userInputManager.Budget));
                    var result   = _simulator.ExecuteStrategy(strategy, _userInputManager.StartBet);
                    _statisticsManager.Process(result);
                    _visualizer.ShowStatistics(_statisticsManager.GetStatistics());
                } while (_userInputManager.ShowModal("Run strategy again? (y or n):", "y", "n"));
            } while (_userInputManager.ShowModal("Continue or quit? (Enter or q):", "Enter", "q"));
        }