protected void CreateWrongAnswer(MixNumber mixnumber) { int randAnswer = -1; for (int i = 0; i < mixnumber.Answer.Length; i++) { if (mixnumber.Answer[i] != -1) { randAnswer = mixnumber.Answer[i]; } } for (int i = 0; i < mixnumber.Answer.Length; i++) { if (mixnumber.Answer[i] == -1) { int index = Random.Range(0, 2); switch (index) { case 0: mixnumber.Answer[i] = randAnswer + Random.Range(1, 100); break; case 1: mixnumber.Answer[i] = randAnswer * Random.Range(2, 30); break; case 2: mixnumber.Answer[i] = randAnswer - Random.Range(1, 100); break; } } } }
// next quiz public MixNumber NextQuiz() { // nomore quiz if (queuedata.Count <= 0) { return(null); } currentQuiz = queuedata.Dequeue(); return(currentQuiz); }
/// <summary> /// /// </summary> public QuestionAdd(int quizcount) { queuedata = new Queue <MixNumber>(); for (int i = 0; i < quizcount; i++) { MixNumber numdata = new MixNumber(); int digit = Random.Range(0, 3); switch (digit) { case 0: { numdata.a = Random.Range(0, 9); numdata.b = Random.Range(0, 9); } break; case 1: { numdata.a = Random.Range(0, 10); numdata.b = Random.Range(10, 99); } break; case 2: { numdata.a = Random.Range(10, 99); numdata.b = Random.Range(10, 99); } break; case 3: { numdata.a = Random.Range(100, 999); numdata.b = Random.Range(100, 999); } break; } numdata.rightAnswerIndex = Random.Range(0, 3); numdata.Answer[numdata.rightAnswerIndex] = numdata.a + numdata.b; CreateWrongAnswer(numdata); queuedata.Enqueue(numdata); } }
public async Task <IActionResult> PostRandomNumber(MixNumber mixNumber) { mixNumber.Number = mixNumber.GenerateRandom(1, 20); await _context.MixNumber.AddAsync(mixNumber); var mix = await _context.MixNumber.ToListAsync(); if (mix.Count > 5) { return(NoContent()); } await _context.SaveChangesAsync(); return(Ok(mixNumber)); }
private void GetQuestionNumber(int min, int max, ref MixNumber mixnumber) { while (true) { int rand = Random.Range(min, max); if (prime(rand) == false) { DivdCount(rand); if (gatheringAnswer.Count > 0) { mixnumber.a = rand; break; } } } int randindex = Random.Range(0, gatheringAnswer.Count - 1); mixnumber.b = gatheringAnswer[randindex]; mixnumber.rightAnswerIndex = Random.Range(0, 3); mixnumber.Answer[mixnumber.rightAnswerIndex] = mixnumber.a / mixnumber.b; }
/// <summary> /// /// </summary> public QuestionDiv(int quizcount) { queuedata = new Queue <MixNumber>(); for (int i = 0; i < quizcount; i++) { MixNumber numdata = new MixNumber(); int digit = Random.Range(0, 3); switch (digit) { case 0: { GetQuestionNumber(3, 9, ref numdata); } break; case 1: { GetQuestionNumber(10, 30, ref numdata); } break; case 2: { GetQuestionNumber(10, 99, ref numdata); } break; case 3: { GetQuestionNumber(100, 999, ref numdata); } break; } CreateWrongAnswer(numdata); queuedata.Enqueue(numdata); } }
// next quiz setting public bool SetNextQuestion(UnityEngine.UI.Text quizlabel, UnityEngine.UI.Text[] answerlabels) { MixNumber mixdata = questionary.NextQuiz(); if (mixdata == null) { return(false); } _timeSec = limitTime; switch (quetionType) { case QuestionType.ADD: quizlabel.text = string.Format(" {0} + {1} = ? ", mixdata.a, mixdata.b); break; case QuestionType.ODD: quizlabel.text = string.Format(" {0} - {1} = ? ", mixdata.a, mixdata.b); break; case QuestionType.DIV: quizlabel.text = string.Format(" {0} / {1} = ? ", mixdata.a, mixdata.b); break; case QuestionType.MUL: quizlabel.text = string.Format(" {0} X {1} = ? ", mixdata.a, mixdata.b); break; } for (int i = 0; i < answerlabels.Length; i++) { answerlabels[i].text = mixdata.Answer[i].ToString(); } return(true); }