예제 #1
0
        public void CheckIfNewProblem(object sender, EventArgs e)
        {
            Boolean generateNewProblem = false;

            //Check if answer is correct
            if (MathProblems.Peek().IsSolutionCorrect(this.ProblemContentPage.Solution))
            {
                quiz.WasPreviousAnswerCorrect = true;
                quiz.NumberOfCorrectAnswers++;
            }
            else
            {
                quiz.WasPreviousAnswerCorrect = false;
            }
            //else
            //{
            //    if(ProblemGenerator.rng.Next(0,2) == 1)
            //    {
            //        generateNewProblem = true;
            //    }
            //}

            //Remove currently answered problem
            MathProblems.Dequeue();

            //if(generateNewProblem)
            //{
            //    var newProblemQueue = quiz.GenerateMathProblems(1);
            //    MathProblems.Enqueue(newProblemQueue.Dequeue());
            //    quiz.NumberOfGeneratedProblems++;
            //}
            UpdateProblemPageWithProblem();
        }
예제 #2
0
        private void EvaluateConfidence(object sender, EmotionEventArgs e)
        {
            /* The quiz instance lives within this class (not ProblemPage.xaml.cs)
             * so increment the number of times emotion values have been analyzed
             * for the quiz class object.  This is not always 1:1 with the number
             * of answered problems because a bad picture may be taken with no results.
             */
            quiz.AddEmotionsForLastSolvedProblem(e.Anger, e.Contempt, e.Disgust,
                                                 e.Fear, e.Happiness, e.Neutral,
                                                 e.Sadness, e.Surprise);

            //If the last math problem has been solved, then the results screen
            //is being shown and we do not need to generate the last problem.
            if (MathProblems.Count != 0)
            {
                //Generate a new problem only if the user got the answer correct
                //but was not confident
                if (quiz.WasPreviousAnswerCorrect && !quiz.IsUserConfident(e))
                {
                    var newProblemQueue = quiz.GenerateMathProblems(1);
                    MathProblems.Enqueue(newProblemQueue.Dequeue());
                    quiz.NumberOfGeneratedProblems++;
                }
            }
            else
            {
                /* This means the results screen is showing, so raise event letting
                 * the results screen know that the average confidence has been
                 * returned and calculated.
                 */
                ResultsScreenDataReady(this, new ConfidenceEventArgs(quiz.ConfidenceAverage));
            }
        }
예제 #3
0
        public void HintRequested(object sender, EventArgs e)
        {
            //Enqueue a new problem when user requests a hint
            var newProblemQueue = quiz.GenerateMathProblems(1);

            MathProblems.Enqueue(newProblemQueue.Dequeue());
            quiz.NumberOfGeneratedProblems++;
        }
예제 #4
0
        public void TestMethod2()
        {
            uint firstDecimalTest2  = 15;
            uint secondDecimalTest2 = 20;
            uint thirdDecimalTest   = 23;
            int  expectedSecond     = 10;
            int  actualSecond       = MathProblems.SumBinaryRepresentations(firstDecimalTest2, secondDecimalTest2, thirdDecimalTest);

            Assert.AreEqual(expectedSecond, actualSecond);
        }
예제 #5
0
        public void TestMethod1()

        {
            uint firstDecimalTest  = 12;
            uint secondDecimalTest = 18;
            int  expected          = 4;
            int  actual            = MathProblems.SumBinaryRepresentations(firstDecimalTest, secondDecimalTest);

            Assert.AreEqual(expected, actual);
        }
        static void Main(string[] args)
        {
            LinkedList list  = new LinkedList();
            Node       node1 = new Node(1);
            Node       node2 = new Node(2);
            Node       node3 = new Node(3);
            Node       node4 = new Node(4);
            Node       node5 = new Node(5);
            Node       node6 = new Node(10);

            list.AddTail(node1);
            list.AddTail(node2);
            list.AddTail(node3);
            list.AddTail(node4);
            list.AddTail(node5);
            list.AddMiddle(node6);
            list.RemoveTail();
            list.RemoveTail();
            list.RemoveTail();
            list.PrintNodes();

            MathProblems.PrintPat(3);
            Console.WriteLine("Please enter a word...");
            string word = Console.ReadLine();

            string reverseStringIgnoringSpecialChars = ReverseStringIgnoringSpecialChars(word);
            string reverseEntireString       = ReverseEntireString(word.ToCharArray());
            string reverseWordOrder          = ReverseWordOrder(word);
            bool   palindromeCheck           = PalindromeCheck(word);
            string reverseWords              = ReverseWords(word);
            string removeDuplicateOccurances = RemoveDuplicateOccurances(word);

            // Void Return-Type Methods
            CharacterOccuranceCounter(word);
            FindAllSubstrings(word);

            // Int Array Methods
            int[] intAry = { 1, 2, 3, 4, 5 };
            ShiftIntToLeft(intAry);

            Console.Write("ReverseStringIgnoringSpecialChars - {0},\n" +
                          "ReverseEntireString - {1},\n" +
                          "ReverseWordOrder - {2},\n" +
                          "PalindromeCheck - {3},\n" +
                          "ReverseWords - {4},\n" +
                          "RemoveDuplicateOccurances - {5}\n",
                          reverseStringIgnoringSpecialChars,
                          reverseEntireString,
                          reverseWordOrder,
                          palindromeCheck,
                          reverseWords,
                          removeDuplicateOccurances);
        }
예제 #7
0
        async private void UpdateProblemPageWithProblem()
        {
            if (MathProblems.Count != 0)
            {
                //Update labels or new problem
                CurrentProblemNumber++;

                //if (Navigation.ModalStack.Count > 0)
                //{
                //    await Navigation.PopModalAsync();
                //}
                this.ProblemContentPage.ProblemNumber = CurrentProblemNumber.ToString();
                this.ProblemContentPage.Problem       = MathProblems.Peek().Problem;
                this.ProblemContentPage.Hints         = MathProblems.Peek().Hints;
                string status = String.Empty;
                if (CurrentProblemNumber == 1)
                {
                    status = @"N/A";
                }
                else
                {
                    status = @"";
                }


                this.ProblemContentPage.UpdateProblemPage(status);

                if (Navigation.ModalStack.Count == 0)
                {
                    await Navigation.PushModalAsync(this.ProblemContentPage);
                }
                //  this.ProblemContentPage.SolutionTextField.Focus();
            }
            else
            {
                //Dismiss problem page and show the results page
                await Navigation.PopModalAsync();

                string pluralizeProblemString = String.Empty;
                if (quiz.NumberOfGeneratedProblems > 1)
                {
                    pluralizeProblemString =
                        Convert.ToString(quiz.NumberOfGeneratedProblems) +
                        " problems were generated during this quiz.";
                }
                else if (quiz.NumberOfGeneratedProblems == 1)
                {
                    pluralizeProblemString = "1 problem was generated for this quiz.";
                }
                else
                {
                    pluralizeProblemString = "No extra problems were generated for this quiz.";
                }
                this.ResultsContentPage.ResultsSummary =
                    $"You answered {quiz.NumberOfCorrectAnswers} out of {quiz.NumberOfProblems} problems correctly!";
                this.ResultsContentPage.NumberOfGeneratedProblems = pluralizeProblemString;

                var recommendation = quiz.GetRecommendation();
                this.ResultsContentPage.Recommendation = recommendation;
                this.ResultsContentPage.UpdatePage();

                //Clear this text so that when the modal view is switching
                //the user does not breifly see previous test score
                this.PreviousSessionLabel.Text = String.Empty;
                this.RecommendationLabel.Text  = String.Empty;

                await Navigation.PushModalAsync(this.ResultsContentPage);

                if (quiz.NumberOfCorrectAnswers == quiz.NumberOfProblems)
                {
                    this.PreviousSessionLabel.TextColor = Color.Blue;
                }
                else
                {
                    this.PreviousSessionLabel.TextColor = Color.Red;
                }
                this.PreviousSessionLabel.Text =
                    $"Last Session Results: {quiz.NumberOfCorrectAnswers} correct out of {quiz.NumberOfProblems}";
                this.RecommendationLabel.Text = recommendation;
            }
        }