Пример #1
0
        private ITeacherState CheckResult(AfterFrameHandleEventArgs afterFrameHandleEventArgs)
        {
            if (State.Score > 10)
            {
                return(new Passed(State));
            }

            var outputClass  = afterFrameHandleEventArgs.OutputClass.ToString();
            var stateDetails = new Model.AppModel.TeacherState()
            {
                CurrentLetter = State.CurrentLetter,
                LettersToKnow = State.LettersToKnow,
                Message       = State.Message,
                Score         = State.Score
            };

            if (stateDetails.CurrentLetter.Equals(outputClass))
            {
                stateDetails.Score++;
                stateDetails.Message = "Cool! It's correct sign";
            }
            else
            {
                stateDetails.Score   = 0;
                stateDetails.Message = "Wrong. Try again!";
            }

            return(new Active(stateDetails));
        }
Пример #2
0
        private void OnAfterFrameHandleEvent(AfterFrameHandleEventArgs afterFrameHandleEventArgs)
        {
            TeacherState = TeacherState.HandleDecision(afterFrameHandleEventArgs);

            _eventAggregator
            .GetEvent <TeacherStateChangedEvent>()
            .Publish(
                new TeacherStateChangedArgs()
            {
                Message       = TeacherState.State.Message,
                CurrentLetter = TeacherState.State.CurrentLetter,
                Score         = TeacherState.State.Score
            });
        }
Пример #3
0
        public ITeacherState HandleDecision(AfterFrameHandleEventArgs afterFrameHandleEventArgs)
        {
            if (afterFrameHandleEventArgs.ErrorMessage != null)
            {
                return(new Active(new Model.AppModel.TeacherState()
                {
                    CurrentLetter = State.CurrentLetter,
                    LettersToKnow = State.LettersToKnow,
                    Message = afterFrameHandleEventArgs.ErrorMessage,
                    Score = State.Score
                }));
            }

            return(CheckResult(afterFrameHandleEventArgs));
        }
Пример #4
0
        public ITeacherState HandleDecision(AfterFrameHandleEventArgs afterFrameHandleEventArgs)
        {
            var outputClasses = Enum.GetValues(typeof(OutputClass));
            var currentLetter = GetCurrentLetter(outputClasses);
            var lettersToKnow = GetLettersToKnow(outputClasses);

            var stateDetails = new Model.AppModel.TeacherState()
            {
                CurrentLetter = currentLetter,
                LettersToKnow = lettersToKnow,
                Score         = 0
            };

            return(new Active(stateDetails));
        }
Пример #5
0
        public ITeacherState HandleDecision(AfterFrameHandleEventArgs afterFrameHandleEventArgs)
        {
            State.LettersToKnow.Remove(State.CurrentLetter);

            if (!State.LettersToKnow.Any())
            {
                return(new Uninitialized(State));
            }

            var currentLetter = State.LettersToKnow[Random.Next(State.LettersToKnow.Count)];

            return(new Active(new Model.AppModel.TeacherState()
            {
                CurrentLetter = currentLetter,
                LettersToKnow = State.LettersToKnow,
                Message = "You passed!",
                Score = 0
            }));
        }