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;
            }
        }
Exemple #2
0
        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;
                }
            }
        }
Exemple #3
0
 public MultiplicationTester()
 {
     _uiHelper          = new UIHelper();
     _taskFactory       = new TaskFactory();
     _status            = RoundStatuses.Initial;
     _userInputAnalyzer = new UserInputAnalyzer();
 }
Exemple #4
0
        public int StartTest()
        {
            Task _currentTask = null;;

            while (true)
            {
                _currentTask = _taskFactory.Create(_currentTask);
                _status      = StartTestRound(_currentTask, _status);
                if (_status == RoundStatuses.Exit)
                {
                    return(1);
                }
            }
        }