Esempio n. 1
0
    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;
                }
            }
        }
    }
Esempio n. 2
0
    // next quiz
    public MixNumber NextQuiz()
    {
        // nomore quiz
        if (queuedata.Count <= 0)
        {
            return(null);
        }

        currentQuiz = queuedata.Dequeue();
        return(currentQuiz);
    }
Esempio n. 3
0
    /// <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);
        }
    }
Esempio n. 4
0
        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));
        }
Esempio n. 5
0
    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;
    }
Esempio n. 6
0
    /// <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);
        }
    }
Esempio n. 7
0
    // 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);
    }