Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Тестирование. Рандомный выбор вопросов (http://www.flasher.ru/forum/showthread.php?t=156379)

Alina 20.05.2011 15:29

Тестирование. Рандомный выбор вопросов
 
Здраствуйте. У меня есть небольшое тестирование(всего 50 вопросов): на каждом кадре размещен вопрос и три кнопки, после прохождения теста выводится количество правильных, ошибочных и оценку.
подсчет идет вот так:
Код AS1/AS2:

//as2
stop(); // останавливаем воспроизведение
prav = b1+b2+b3+b4+b5+b6+b7+b8+...+b50; // подсчитываем кол-во верных ответов
error = 50-prav;
// считаем неправильные ответы
// Подсчёт оценки
if (prav>=45){
// если правильных ответов 40 и более,
oc = "5";
// оценка 5
} else if (prav>=35){
oc = "4";
} else if (prav>=25){
oc = "3";
} else { // в остальных случаях
oc = "2"; // оценка 2!
}

хотелось бы чтобы можно было рандомизировать вопросы(выводить в случайном порядке), установить время прохождения теста и выводились не все 50 вопросов, т.к. прохождение теста занимает довольно много времени, а 20. Как мне можно это сделать? Буду рада всему чем вы мне сможете помочь...

RandomUser 21.05.2011 14:54

А как происходит переключение на следующий вопрос?
Можно сделать в первом кадре функцию и вызывать ее по нажатию на кнопку, а она уже будет сама считать правильные/неправильные ответы и контролировать количество.

Код AS1/AS2:

var count = 20;
var prav = 0;
var currentAnswer = 0;
 
function answer(correctly: Boolean)
{
    if (correctly) prav++;
    currentAnswer++;
    if (currentAnswer >= count)
    {
          // конец.
          // prav -- количество правильных ответов, ко-во ошибок == count - prav
    }
    else
    {
          // переключится на следующий вопрос
    }
}

Как то так.

Добавлено через 25 минут
А, вот еще функция для выбора номера следующего вопроса:
Код AS1/AS2:

var questions = []
 
// Формируем список всех существующих вопросов
for (var i = 0; i < 50; i++)
{
        questions[i] = i;
}
 
// Рандомно выбираем вопрос и удаляем его из списка
function nextQuestionNumber() : Number //
{
        var index = Math.floor(Math.random() * questions.length);
        return questions.splice(index, 1)[0];
}

Тогда по идее переключение на следующий вопрос будет выглядеть как-то так:
Код AS1/AS2:

gotoAndStop(nextQuestionNumber());


Alina 25.05.2011 22:04

переключение происходит при нажатии на кнопку b1
Код AS1/AS2:

on (release) {
        b1 = 1; // 1 балл за правильный ответ, а не правильный b1=0;
        play();
}


RandomUser 26.05.2011 00:12

Непонятна вся структура флешки, но если у вас на каждый вопрос по одному фрейму и они начинаются с первого, то выше написанный код должен работать, а на кнопках тогда будет приблизительно такой код
Код AS1/AS2:

on (release){
    answer(1); // или 0, если неправильно
}

Если что, выложите исходники.

Alina 26.05.2011 11:00

Вложений: 1
вот исходник
Вложение 26616

iNils 26.05.2011 11:05

Цитата:

Сообщение от Alina (Сообщение 998899)
вот исходник
http://*********/31123675

Выкладывайте файлы на форму, а не на файлопомойки.

RandomUser 27.05.2011 00:17

Вложений: 1
Неплохо было бы проверить работоспособность флешки перед тем как выкладывать, после прохождения теста выдал NaN, NaN :( И вопросы какие-то скучные...
Держите, в комментариях к коду все написано.


Часовой пояс GMT +4, время: 07:38.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.