public void ShowMessage(Task task, RoundStatuses status, string userAnswer) { switch (status) { case RoundStatuses.Initial: ShowGreetingMessage(); ShowCurrentTask(task); break; case RoundStatuses.CorrectAnswer: ShowNewCorrectAnswer(task); ShowCurrentTask(task); break; case RoundStatuses.IncorrectAnswer: ShowGreetingMessage(); ShowWrongAnswer(task, double.Parse(userAnswer)); ShowCurrentTask(task); break; case RoundStatuses.Next: ShowGreetingMessage(); ShowCurrentTask(task); break; case RoundStatuses.InvalidInput: ShowGreetingMessage(); ShowErrorMessage(); ShowCurrentTask(task); break; } }
private RoundStatuses StartTestRound(Task task, RoundStatuses status) { string _userInput = null; while (true) { _uiHelper.ShowMessage(task, status, _userInput); _userInput = _uiHelper.GetUserAnswer(); //запрос ответа if (_userInputAnalyzer.IsExit(_userInput)) //проверка на команду выход { return(RoundStatuses.Exit); } if (_userInputAnalyzer.IsNext(_userInput))//проверка на команду следующего варианта { return(RoundStatuses.Next); } if (!_userInputAnalyzer.IsNumber(_userInput))//проверка введено ли число { status = RoundStatuses.InvalidInput; continue; } if (_userInputAnalyzer.IsCorrectAnswer(task, _userInput))//если да, то правильный ли ответ { return(RoundStatuses.CorrectAnswer); } else { status = RoundStatuses.IncorrectAnswer; continue; } } }
public MultiplicationTester() { _uiHelper = new UIHelper(); _taskFactory = new TaskFactory(); _status = RoundStatuses.Initial; _userInputAnalyzer = new UserInputAnalyzer(); }
public int StartTest() { Task _currentTask = null;; while (true) { _currentTask = _taskFactory.Create(_currentTask); _status = StartTestRound(_currentTask, _status); if (_status == RoundStatuses.Exit) { return(1); } } }