Beispiel #1
0
        public IRetryCounter RemoveRetryCounter(ISequenceStep sequenceStep)
        {
            IRetryCounter retryCounter = sequenceStep.RetryCounter;

            sequenceStep.RetryCounter = null;
            ContextSequenceGroupModify();
            return(retryCounter);
        }
Beispiel #2
0
        public IRetryCounter AddRetryCounter(ISequenceStep sequenceStep, int maxCount)
        {
            IRetryCounter retryCounter = _sequenceManager.CreateRetryCounter();

            retryCounter.MaxRetryTimes = maxCount;
            sequenceStep.RetryCounter  = retryCounter;
            ContextSequenceGroupModify();
            return(retryCounter);
        }
        public void Run()
        {
            char exitCh;

            do
            {
                Console.Clear();
                _Guess.Initialize();
                var isBreak    = false;
                var interactor = _Guess[InteractorKey.RespondentManualConfigure];

                // Конфигурация
                ConsoleHelper.GetResponse(interactor, "");
                do
                {
                    var req = Console.ReadLine();
                    isBreak = ConsoleHelper.GetResponse(interactor, req);
                } while (!isBreak);
                Console.Clear();


                // Процесс игры
                interactor = _Guess[InteractorKey.Guess];
                IRetryCounter retryCounter = _Guess.GetRetryCounter();
                ConsoleHelper.GetResponse(interactor, "");
                do
                {
                    Console.WriteLine(
                        $"Израсходованное число попыток {retryCounter.Attempts}/{retryCounter.NumberOfAttempts}");
                    Console.WriteLine("Введите число:");
                    var req = Console.ReadLine();
                    isBreak = ConsoleHelper.GetResponse(interactor, req);
                    if (!isBreak && !retryCounter.IsAttemptsRemained)
                    {
                        isBreak = true;
                        Console.WriteLine("Вы проиграли.");
                    }
                } while (!isBreak);
                isBreak = false;

                //Продолжить или нет
                do
                {
                    Console.WriteLine();
                    Console.WriteLine("Хотите продолжить? y/n");
                    exitCh = Console.ReadKey().KeyChar;

                    if (exitCh == 'n' || exitCh == 'y')
                    {
                        isBreak = true;
                    }
                } while (!isBreak);
            } while (exitCh == 'y');
        }
Beispiel #4
0
        public void Initialize()
        {
            var respondent = new Respondent();

            _retryCounter = respondent;
            var toIntConverter   = new ToIntConverter();
            var playerRepository = new PlayerRepository();

            _interactors.Clear();
            _interactors.Add(InteractorKey.Guess, new GuessInteractor(respondent, toIntConverter));
            _interactors.Add(InteractorKey.RespondentAutoConfigure, new RespondentAutoConfigureInteractor(respondent, new ToLevelConverter(), () => _player));
            _interactors.Add(InteractorKey.RespondentManualConfigure, new RespondentManualConfigureInteractor(respondent, toIntConverter));
            _interactors.Add(InteractorKey.Login, new LoginInteractor(playerRepository, el => _player = el));
            _interactors.Add(InteractorKey.SaveCurentPlayer, new SaveCurentPlayerInteractor(playerRepository, respondent, () => _player));
        }
Beispiel #5
0
 public void ModifyCounter(IRetryCounter counter, int maxCount, bool enabled)
 {
     counter.MaxRetryTimes = maxCount;
     counter.RetryEnabled  = enabled;
     ContextSequenceGroupModify();
 }