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(); }
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)); } }
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++; }
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); }
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); }
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; } }