НОВЫЕ ИГРЫЛУЧШИЕ ИГРЫФОРУМ 597 Всего сообщений: 305037
+  Форум FlashPlayer.ru
|-+  Форум по flash играм
| |-+  Академия flash программирования (Модераторы: Lexei, Vetal1992)
| | |-+  Помогите пожалуйста господа програмисты! =/

Автор Тема: Помогите пожалуйста господа програмисты! =/  (Прочитано 5762 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн MAWERICK Мужской

   Здравствуйте!
   Меня зовут Леонид!
   Обращаюсь к вам с просьбой помочь сделать програаму в Макромедиа флеш.....
Я пишу выпускную квалификационную работу, её основная часть - это создание обучающей программы для младших курсов + программа контроля и проверки знаний. С обучающей программой я в основном проблем не испытываю, а вот вся загвоздка в программе проверки знаний!
   Пожалуйста помогите сделать программу проверки знаний! Суть - всего 100 контрольных вопросов, 4 варианта ответа к каждому вопросу. Для проверки знаний, из 100 вопросов, должны по очереди выводиться 20 вопросов в случайном порядке (чтобы млыдшие курсы не запомнили очередность правильных ответов! =) ). И некоторые вопросы должны быть в виде графического материалла, например картинка и 4 варианта ответа! =) 
   И чуть не забыл.... =) За правильный ответ программа должна начислять по 1 баллу и в конце выводить число баллов и оценку! Например: всего у нас 20 рэндом вопросов, больше 18-ти правильных ответов - это 5, от 15 до 17 - это 4, от 11 до 14 - это 3, а ниже 10 соответственно 2! =))
   В принципе всё! И ещё Я был бы очень вам благодарен если вы откликнитесь как можно скорее! Я учусь в Балтийской Государственной Академии и сейчас я прохожу пред дипломную практику на известном во всем мире учебном парусном судне Крузенштерн и сами понимаете как напряжно в море с интернетом!!! =)) (Его вообще тут нет!) Обучающую прогу я делаю по самоучителю и с программой проверки знаний вышла проблема, вот так вот! =((
   Сейчас мы пришли из Таллина и стоим в Ставангере (Норвегия) и пробудем здесь до 31 числа, затем будет дан старт парусной регате и вновь я буду без возможности выйти в интернет!!!! =((
   Буду благодарен если вы откликнитесь до нашего отхода из Ставангера и скинете мне по возможности ваш логин в скайпе чтобы помогли разобраться немного, если так можно конечно и было бы замечательно если бы вы мне помогли бы сделать "скелет" программы, а вопросы и графичискую информацию надеюсь я вставлю! =))
   Жду ответа с нетерпением! =)

Все равно решил попрактиковаться, так как давно не писал.

Ну можно так, как вариант(у меня макромедии нету, поэтому выкладывают только код). Возможны недочеты или ошибки, так как особо не думал. Тут большинство сделанно, остальное думаю сами доделаете.

Идея такова:
1)Нужно сделать 100 вопросов, для их хранения удобно использовать объекты.
2)Нужно сделать рандомный выбор вопросов
3)Создать визуальную оболочку для данных и возможность выбора ответов

//Создаем вопросы
for(i=1;i<=100;i++){
//Создадим 100 объектов для хранения вопросов, от question1 до question100
this["question"+i] = new Object;
this["question"+i].variant_A = "";     //Вариант ответа А
this["question"+i].variant_B = "";     //Вариант ответа Б
this["question"+i].variant_C = "";     //Вариант ответа С
this["question"+i].variant_D = "";     //Вариант ответа D
this["question"+i].vopros = "";        //Вопрос
this["question"+i].imageBool = true;   //Наличие картинки
this["question"+i].imageNumber = 0;    //Номер картинки
this["question"+i].trueVariant = 0;    //Номер правильного ответа
}

//Теперь надо заполнить объекты вопросами и данными.
question1.variant_A = "Тут пишем вариант А";   
question1.variant_B = "Тут пишем вариант Б";   
question1.variant_C = "Тут пишем вариант С";   
question1.variant_D = "Тут пишем вариант D";   
question1.vopros = "Тут пишем вопрос";       
question1.imageBool = false; 
question1.imageNumber = 0;   
question1.trueVariant = 3;

question2.variant_A = "Тут пишем вариант А";   
question2.variant_B = "Тут пишем вариант Б";   
question2.variant_C = "Тут пишем вариант С";   
question2.variant_D = "Тут пишем вариант D";   
question2.vopros = "Тут пишем вопрос";       
question2.imageBool = true; 
question2.imageNumber = 1;
question2.trueVariant = 3; //И так далее до 100



//Рандомизатор
var questionArray:Array = new Array(); //Массив для рандомных чисел
function randomize(){
for(j=0;;j++){ //Цикл без указания выхода
var variants = Math.ceil(Math.random()*100);//Получаем рандомное число
//Проверим на совпадения
var double = false;
for(i=0;i<questionArray.length;i++){
if(questionArray[i]==variants){
double = true;
}
}
//Если совпадений нет, записываем.
if(double==false){
questionArray.push(variants);
}
//Выход из бесконечного цикла
if(questionArray.length>=20){
//Немного адаптируем под ответы
for(i=0;i<questionArray.length;i++){
questionArray[i] = "question" + questionArray[i];
}
trace(questionArray);
break; //Выход из бесконечного цикла.
}
}
}
randomize();



/*Осталось визуализировать, на главной сцене созданы:

Пять текстовых полей.
vopros - для вопроса
varA, varB, varC, varD - для ответов

Так же имеется мувиклип image, в котором хранятся картинки.

Четыре кнопки, нажатием на которые выбирается ответ.
buttA, buttB, buttC, buttD.
*/


var rezultat = 0;
var nowQuestion = 0;

function startTest(){     
//Подготовка к вопросу
vopros.text = "Вопрос: "+this[questionArray[nowQuestion]].vopros;
varA.text = "A: "+this[questionArray[nowQuestion]].variant_A;
varB.text = "B: "+this[questionArray[nowQuestion]].variant_B;
varC.text = "C: "+this[questionArray[nowQuestion]].variant_C;
varD.text = "D: "+this[questionArray[nowQuestion]].variant_D;
if(this[questionArray[nowQuestion]].imageBool==true){
image._visible = true;
image.gotoAndStop = this[questionArray[nowQuestion]].imageNumber;
}else{
image._visible = false;
}

//Обработчики кнопок для ответов
buttA.onPress = function(){
if(this[questionArray[nowQuestion]].trueVariant == 1){
rezultat++;
}
nowQuestion++;
if(nowQuestion>=20){
endTest();
}else{
startTest();
}
}
buttB.onPress = function(){
if(this[questionArray[nowQuestion]].trueVariant == 2){
rezultat++;
}
nowQuestion++;
if(nowQuestion>=20){
endTest();
}else{
startTest();
}
}
buttC.onPress = function(){
if(this[questionArray[nowQuestion]].trueVariant == 3){
rezultat++;
}
nowQuestion++;
if(nowQuestion>=20){
endTest();
}else{
startTest();
}
}
buttD.onPress = function(){
if(this[questionArray[nowQuestion]].trueVariant == 4){
rezultat++;
}
nowQuestion++;
if(nowQuestion>=20){
endTest();
}else{
startTest();
}
}
}

function endTest(){
//Конец теста, нужно будет написать вывод результата в оценки. Итог хранится в переменной rezultat
trace(rezultat);
}

startTest();

 

Оффлайн LecstorN Мужской

Re: Помогите пожалуйста господа програмисты! =/
« Ответ #2 : 31 Октября 2011, 21:26:58 »
Elentarion Все таки я думаю гораздо проще  :huh: организовать хранение на файлах это и ресурсов меньше кушать будет

Re: Помогите пожалуйста господа програмист
« Ответ #3 : 31 Октября 2011, 22:44:09 »
Я лишь продемонстрировал основные моменты, вопрос хранения и остальной реализации оставляя за автором.

А так согласен, хранения информации во внешних файлах намного предпочтительнее(хотя будет ли проще или меньше кушать ресурсов не уверен, это как сделать еще), хотя бы в плане изменения данных без перекомпиляции.

+  Форум FlashPlayer.ru
|-+  Форум по flash играм
| |-+  Академия flash программирования (Модераторы: Lexei, Vetal1992)
| | |-+  Помогите пожалуйста господа програмисты! =/