Beispiel #1
0
 private void InitButtonName(Adapted_string adstring)
 {
     Answers[0].Text += adstring.correct_answer;
     Answers[1].Text += adstring.answer2;
     Answers[2].Text += adstring.answer3;
     Answers[3].Text += adstring.answer4;
 }
Beispiel #2
0
        // Методы
        public Adapted_string RandomizeQuestion(int [] Forbidden_index, int count)

        /* Выбирает наугад 1 вопрос из 28, исключая index вопрос.
         * Возвращает Adapted_string, в отличии от RandomizeQuestions() */
        {
            rand = new Random();
            int n, i = 0, result = 0;

            while (true)
            {
                n = rand.Next(1, 29);
                for (int j = 0; j < 10; j++)
                {
                    if (n != Forbidden_index[j])
                    {
                        result++;
                    }
                }
                if (result == 10)
                {
                    break;
                }
                i++;
            }
            Findex        = Forbidden_index;
            Findex[count] = n;
            Adapted_string Return = Array[n - 1];

            return(Return);
        }
Beispiel #3
0
 // Конструктор
 public Adapted_strings()
 {
     Array = new Adapted_string[length];
     for (int i = 0; i < length; i++)
     {
         Array[i] = new Adapted_string();
     }
     InitializeStandartQuestions();
     Findex = new int[5];
 }
Beispiel #4
0
        public void AddQuestions(Adapted_string ToBeAdded)

        /* Добавляет пользовательский вопрос к текущей базе вопросов.
         * (При выходе из программы исчезают вопросы, потом реализую подгрузку из файла с сохранением в файл) */
        {
            Adapted_string[] Temp = new Adapted_string[length + 1];
            for (int i = 0; i < length; i++)
            {
                Temp[i] = Array[i];
            }
            Temp[length] = ToBeAdded;
            length++;
            Array = Temp;
        }
Beispiel #5
0
        public void EditQuestions(Adapted_string ToBeModified)

        /* Редактирует вопрос из текущей базы вопросов
         * (При выходе из программы редактированные вопросы не заменяют изначальные вопросы,
         * потом реализую подгрузку из файла с сохранением в файл)*/
        {
            bool a = true;

            Adapted_string[] Temp = new Adapted_string[length];
            for (int i = 0; i < length; i++)
            {
                if (Array[i].quest == ToBeModified.quest && a)
                {
                    Temp[i] = ToBeModified;
                    a       = false;
                }
                Temp[i] = Array[i];
            }
            Array = Temp;
        }
Beispiel #6
0
        public void DeleteQuestions(Adapted_string ToBeDeleted)

        /* Удаляет вопросы из текущей базы вопросов, сравнивая их по критериям.
         * (При выходе из программы вопросы исчезают, потом реализую подгрузку из файла с сохранением в файл) */
        {
            bool a = true;

            Adapted_string[] Temp = new Adapted_string[length - 1];
            for (int i = 0, j = 0; i < length - 1; i++, j++)
            {
                if (Array[i].quest == ToBeDeleted.quest && a)
                {
                    a = false;
                    j++;
                }
                Temp[i] = Array[j];
            }
            length--;
            Array = Temp;
        }
Beispiel #7
0
        // Методы
        private void SwapAnswers(Adapted_string adstring)

        /*Перетасовывает содержимое кнопок Answer1, Answer2, Answer3 & Answer4 так,
         * чтобы они отличались от первоначального местоположения. */
        {
            Random rand = new Random();

            Button[] Temp = new Button[4];
            Temp = InitTempButtons();
            int correct = rand.Next(1, 5);
            int uncorrect1 = 0, uncorrect2 = 0, uncorrect3 = 0;

            uncorrect1 = RandomizeUncorrectAns(rand, correct);
            uncorrect2 = RandomizeUncorrectAns(rand, correct, uncorrect1);
            uncorrect3 = RandomizeUncorrectAns(rand, correct, uncorrect1, uncorrect2);
            Answers[0] = Temp[correct - 1];
            Answers[1] = Temp[uncorrect1 - 1];
            Answers[2] = Temp[uncorrect2 - 1];
            Answers[3] = Temp[uncorrect3 - 1];
            InitButtonName(adstring);
        }
Beispiel #8
0
        private void Randomizing()

        /* Отдельный обработчик для обработки потока, в котором рандомизируются вопросы и ответы к ним.
         * Выполняется в цикле do { } while(n), переменная n отвечает за разрешение выполнить итерацию.
         * Если пользователь ответил на вопрос, правильно или нет, не имеет значения,
         * то переменная принимает значение true, в остальных случаях - false. */
        {
            try
            {
                Action Act = delegate
                {
                    do
                    {
                        // DisableAllButtons();
                        RandomedQuest = new Adapted_string();
                        RandomedQuest = Array.RandomizeQuestion(Findex, count);
                        Findex        = Array.Forbidden_index;
                        count++;
                        if (count == 5)
                        {
                            count = 0;
                        }
                        // EnableAllButtons();
                        this.Question.Visible = true;
                        this.Question.Text    = RandomedQuest.quest;
                        SwapAnswers(RandomedQuest);
                        obj.RandomizeAllowed = false;
                    }while (obj.RandomizeAllowed); // n
                };
                this.Invoke(Act);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
            }
        }
Beispiel #9
0
 private void AddButton_Click(object sender, EventArgs e)
 {
     toBeAdded = new Adapted_string(this.QuestionBox.Text, this.CorrectAnswerBox.Text, this.Answer2Box.Text, this.Answer3Box.Text, this.Answer4Box.Text);
 }
Beispiel #10
0
 private void RemoveButton_Click(object sender, EventArgs e)
 {
     toBeDeleted = new Adapted_string(this.RemoveText.Text, string.Empty, string.Empty, string.Empty, string.Empty);
 }