public IRetryCounter RemoveRetryCounter(ISequenceStep sequenceStep) { IRetryCounter retryCounter = sequenceStep.RetryCounter; sequenceStep.RetryCounter = null; ContextSequenceGroupModify(); return(retryCounter); }
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'); }
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)); }
public void ModifyCounter(IRetryCounter counter, int maxCount, bool enabled) { counter.MaxRetryTimes = maxCount; counter.RetryEnabled = enabled; ContextSequenceGroupModify(); }