Esempio n. 1
0
 /** Проверяет вопрос согласно типу и на выходе дает баллы за него */
 private function check($array)
 {
     $question = $this->question;
     $id = $array[0];
     $query = $question->whereId_question($id)->select('answer', 'points')->first();
     $points = $query->points;
     $type = $this->getCode($id)['type'];
     if (count($array) == 1) {
         //если не был отмечен ни один вариант
         $choice = [];
         $score = 0;
         $data = array('mark' => 'Неверно', 'score' => $score, 'id' => $id, 'points' => $points, 'choice' => $choice);
         return $data;
     }
     for ($i = 0; $i < count($array) - 1; $i++) {
         //передвигаем массив, чтобы первый элемент оказался последним
         $array[$i] = $array[$i + 1];
     }
     array_pop($array);
     //убираем из входного массива id вопроса, чтобы остались лишь выбранные варианты ответа
     switch ($type) {
         case 'Выбор одного из списка':
             //Стас
             $one_choice = new OneChoice($id);
             $data = $one_choice->check($array);
             return $data;
             break;
         case 'Выбор нескольких из списка':
             $multi_choice = new MultiChoice($id);
             $data = $multi_choice->check($array);
             return $data;
             break;
         case 'Текстовый вопрос':
             //Стас
             $fill_gaps = new FillGaps($id);
             $data = $fill_gaps->check($array);
             return $data;
             break;
         case 'Таблица соответствий':
             //Миша
             $accordance_table = new AccordanceTable($id);
             $data = $accordance_table->check($array);
             return $data;
             break;
         case 'Да/Нет':
             //Миша
             $yes_no = new YesNo($id);
             $data = $yes_no->check($array);
             return $data;
             break;
         case 'Вопрос на вычисление':
             echo 'Вопрос на вычисление';
             break;
         case 'Вопрос на соответствие':
             echo 'Вопрос на соответствие';
             break;
         case 'Вид функции':
             echo 'Вопрос на определение аналитического вида функции';
             break;
     }
 }