![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jun 2010
Адрес: Сосковская область, Кашира
Сообщений: 5
|
Здравствуйте, у меня такой вопрос: я сейчас пишу викторину в флэш и встала такая задача, это начисление баллов за ответы. Пока совершенно не представляю как реализовать такую функцию. Может кто подскажет?
|
|
|||||
|
Множество вопросов, у каждого вопроса подмножество ответов и вес ответа в баллах (0/1 или как там у вас будет). Как реализовать - только ваше предпочтение - самое простое массивы.
|
|
|||||
|
Регистрация: Jun 2010
Адрес: Сосковская область, Кашира
Сообщений: 5
|
Ну у меня был самый просотой вариант -это назначать за правельный ответ 1 балл и минусовать на 1 балл за не правельный. Но мои познания в коди совершенно нулевые...поэтому даже "массив" мне не о чем не говорит. Если не сложно подскажте как это сделать подробнее.
П.с. У меня на каждый ответ стаит баттон видимо на который нужно вешать или + или - балла. |
|
|||||
|
Регистрация: Oct 2009
Сообщений: 101
|
вообще-то тестов с отрицательными результатами я не видел, так что неправильный ответ=0, правильный =+1
теперь к задаче - нужно текстовое поле с вопросом и 4 кнопки ответов (с динамическим текстом внутри массив вопросов и массив ответов var question:Array=["Вопрос 1","Вопрос 2",...,"Вопрос последний"]; var answers:Array=["ответ 1.1","ответ 1.2","ответ 1.3",...,"Вопрос последний"]; //ответов в 4 раза больше чем вопросов шаг второй по нажатию на кнопку проверить правильный ответ или нет и перейти к следующему вопросу (шаг первый) |
|
|||||
|
Регистрация: Jan 2006
Адрес: Novosibirsk
Сообщений: 353
|
Вот мое виденье викторины:
|
|
|||||
|
fessor, непонятно каким образом хранится массив ответов - все ответы на все вопросы в одномерном массиве?
первое что приходит на ум - сделал бы вот так: var tests:Array = [ ["Question1", [{answer:"Answer1_1", flag:0}, {answer:"Answer1_2", flag:0}, {answer:"Answer1_3", flag:1}]], ["Question2", [{answer:"Answer2_1", flag:0}, {answer:"Answer2_2", flag:1}]], ["Question3", [{answer:"Answer3_1", flag:1}, {answer:"Answer3_2", flag:0}, {answer:"Answer3_3", flag:0}, {answer:"Answer3_4", flag:0}]] ]; for (var i:Number=0;i<tests.length;i++){ var question:String = tests[i][0]; var asnwersArray:Array = tests[i][1]; trace("Вопрос: " + question); for (var j:Number=0; j<asnwersArray.length;j++){ trace(" Вариант ответа: "+asnwersArray[j].answer+" (правильный "+(asnwersArray[j].flag==1 ? "ДА" : "НЕТ" )+")"); } } Вопрос: Question1
Вариант ответа: Answer1_1 (правильный НЕТ)
Вариант ответа: Answer1_2 (правильный НЕТ)
Вариант ответа: Answer1_3 (правильный ДА)
Вопрос: Question2
Вариант ответа: Answer2_1 (правильный НЕТ)
Вариант ответа: Answer2_2 (правильный ДА)
Вопрос: Question3
Вариант ответа: Answer3_1 (правильный ДА)
Вариант ответа: Answer3_2 (правильный НЕТ)
Вариант ответа: Answer3_3 (правильный НЕТ)
Вариант ответа: Answer3_4 (правильный НЕТ)
|
|
|||||
|
Регистрация: Jun 2010
Адрес: Сосковская область, Кашира
Сообщений: 5
|
У меня два вопроса к Вам, дорогие профи
![]() 1. Это все же как реализовать всю туже функцию начисления баллов в данной среде 2. Есть ли возможность оптимизации данного проекта в более компакный и упрощенный вид Вот ссылка на сам файл http://narod.ru/disk/22090403000/Viktorina.fla.html Заранее спасибо за любые ответы и предложения. Если что вот мой скайп : "magic_mag_" Последний раз редактировалось FreeLion; 21.06.2010 в 16:58. |
|
|||||
|
Регистрация: Oct 2009
Сообщений: 101
|
Juice_Green огромное спасибо за код, теперь я знаю как без многострочного объявления добавлять вложенные переменные в массив!
FreeLion посмотрел исходник... вам будет сложно понять что от вас тут хотят. Судя по коду в кнопках (в каждой из нескольких десятков) и отдельным кадрам - вопросам с вариантами ответов о программировании есть только отдаленное представление. //в самом первом кадре объявите переменную var win:Number=0; //потом, ТОЛЬКО в кнопках правильных ответов (одна на слайд) напишите win++ //в конце теста сделайте проверку на прохождение теста if(win>10){ //переходим к экрану для победителей gotoAndPlay(150) }else{ //переходим к экрану для проигравших gotoAndPlay(170) } Последний раз редактировалось fessor; 23.06.2010 в 00:57. |
![]() |
![]() |
Часовой пояс GMT +4, время: 15:12. |
|
|
« Предыдущая тема | Следующая тема » |
|
|