Скачать QIP

Нечто типа мастер-класса

Темный рыцарьБелая_Ворона

Дата публикации: 01 сентября 2007, 20:38:09

Раздел : Информация

Оценка: 106  

По тестам с переходами. Решила выложить как памятку для себя и справочник для тех, кто тоже этим увлекается. Написать сие меня вдохновили Magelf и Fox_Alice, за что сердечно их благодарю.
Под катом много технических подробностей.



1. Тесты с переходами лучше всего предварительно рисовать на больших листах в виде схемы со стрелочками. Держать весь объем в голове нереально, особенно если «глубина» теста составляет порядка трех-четырех развилок.

2. Как увязывать логику событий внутри теста, дело, конечно, ваше, но я предпочитаю с самого начала разделить тест на несколько не пересекающихся веток, так, чтобы основной выбор делался уже в первом вопросе.

3. Не увлекайтесь количеством возможных вариантов: 8-10, как в обычном тесте, вы все равно не осилите. Держите в голове, что от каждого ответа на следующем уровне пойдет развилка, которую нужно, во-первых, придумать и обосновать, во-вторых, оформить, что занимает прилично времени.

4. Одно из основных отличий теста с переходами от обычного – это метки. Меткой называется любое сочетание латинских букв (лучше, конечно, осмысленное), которым помечаются все вопросы, начиная с первого. Метка вводится после текста вопроса через знак равно. Выглядит так:

$question=Текст вопроса=Метка
$answer=Текст первого ответа=50
$answer=Текст второго ответа=10

5. Второе отличие – собственно команда перехода, которая указывает, к какому вопросу отправится читатель, выбравший тот или иной вариант. Важно! Команда вводится после КАЖДОГО вопроса через пустую строчку, эта команда (назовем ее развилкой) ОБЯЗАТЕЛЬНО должна быть поименована латинскими буквами. После команды указываются числовые значения указанных выше ответов и метки, на которые отправится выбравший конкретный ответ. Пример:

$question=Текст вопроса=Метка
$answer=Текст первого ответа=50
$answer=Текст второго ответа=10

$question=cmd(jump)=Имя
$answer=50:50=Первая метка
$answer=10:10=Вторая метка

6. Итак, в тесте с переходами любой вопрос (кроме последних, но о них мы поговорим позже) состоит из двух частей: собственно вопроса и команды перехода. Чтобы было понятнее, приведу конкретный пример из моего теста:

$question=С того знаменательного дня прошла неделя, и на душе у вас скребут кошки. Будем откровенны: вас мучает совесть. Хуже всего то, что Хельге, похоже, и не догадывается, что за судьба его ждет. Каждый раз, когда он называет ваше имя, вы вздрагиваете. Так не может дольше продолжаться=Trick
$answer=К Хель этот договор! Собравшись с духом, вы расскажете Хельге правду=-60
$answer=Ничего не скажете, но поклянетесь себе, что попробуете избавить его от этой участи=399
$answer=Кто ж в таком признается? Вот и вы промолчите=1

$question=cmd(jump)=Tell
$answer=41:41=Truth
$answer=500:500=Release
$answer=102:102=StaySilent

7. Разумеется, названия развилок и меток в пределах теста должны быть уникальными, т.е. повторы недопустимы.

8. Очень важно в процессе написания теста не запутаться в числовых значениях. Юзайте калькулятор, проверяйте по нескольку раз, проходите свой тест и следите, куда вас выбрасывает.

9. В данном пункте я не уверена, т.к. по-другому делать не пробовала, но то, что будет сказано ниже, сто процентов работает. Промежуток между числовыми значениями, указанными в команде перехода, должен всегда быть равен нулю, то есть НЕ 45:76, а ВСЕГДА 44:44, 123:123 и т.п.

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

11. Помните, что тест с переходами, как и обычный (тестов с буквенными значениями никогда не делала, потому их опустим), функционирует методом набора баллов. Что это значит? В первом вопросе читатель выбирает ответ, весящий, допустим, единицу, и переносится на следующий вопрос, имея ее в запасе, там выбирает ответ, весящий 10 баллов, и попадает на вопрос, суммарно весящий 11, и так до конца.

12. Баллы, кстати, могут и отниматься, тогда перед цифрой просто ставится минус, но имхо это только лишняя возня. Используйте, когда нет другого выхода.

13. ВАЖНО. У меня ушло чертовски много времени на то, чтобы понять, что разные ветки ОБЯЗАТЕЛЬНО должны отделяться друга от друга специальной командой. Выглядит она так:

$question=cmd(jump)
$answer=else=End

14. Теперь о том, где эта команда применяется. Допустим, ваша ветка подходит к концу, вы написали последний вопрос, у которого несколько ответов, каждый из которых отправляет читателя на отдельный результат. Так вот, в последнем опросе команда перехода НЕ указывается. Вместо нее вводится указанная выше команда завершения. Пример:

$question=Вы же не думали, что все будет настолько просто: пришли, забрали меч, ушли? К чему вы тогда, интересно, готовились, к бою с призраком? Хотя призрак – не призрак, а хозяин меча, похоже, до сих пор живее всех живых и меч так просто отдавать не собирается. И дерется он явно куда лучше вас обоих, вместе взятых. Не боитесь после смерти встретиться с тем, кого хотели обмануть?=GoForth
$answer=“Аффтар! Что ты городишь?! Мне некогда думать!”=1
$answer=Да, нехорошо получилось… Ну, и плевать!=1
$answer=Нужно было соглашаться на предложение Одина, пока была возможность…=2

$question=cmd(jump)
$answer=else=End

15. Таким образом оформляется окончание КАЖДОЙ ветки, после этой команды можно вводить вопросы других веток. Нужна она для того, чтобы тест не отправил читателя вместо выстраданной концовки проходить другие ветки.

16. Тест с переходами, в отличие от обычного, имеет еще одну специфическую деталь: завершение теста тоже должно быть оформлено особым образом, точнее, особой командой. Выглядит она так:

$question=Какая-нибудь лабуда=End

17. Два момента: во-первых, данная команда вводится ПОСЛЕ, а не вместо команды завершения ветки, разумеется, через пустую строчку, а во-вторых, ее имеет смысл оформить литературно, чтобы она органично вплеталась в ткань повествования. ;-) Пример:

$question=cmd(jump)
$answer=else=End

$question=Один смотрит на вас со своего престола и загадочно улыбается…=End

18. О блоке результатов. Тут нет почти никаких отличий от обычных тестов, указываете общую команду результата и собственно результаты, их может быть сколько угодно. От завершающей тест команды отделяем пустой строчкой, дальше пишем на каждой строке. Пример:

$results=Итак
$result=Название результата=15:15=Текст результата
$result=Название результата=1520:1520=Текст результата
$result=Название результата=31:31=Текст результата

19. Помните, что проверка синтаксиса не учитывает ошибки в вычислениях, и если вам говорят, что ошибок не обнаружено, а тест все равно глючит, значит, вы где-то неправильно посчитали.

20. Не ленитесь проверять КАЖДУЮ ветку перед публикацией теста, сверяясь с нарисованным его планом. В «Одине» я нарыла порядка двадцати ошибок, и все по невнимательности.

PS: Написанное может быть исправлено и дополнено в соответствии с пожеланиями читателей. Вроде бы изложила все, чем пользуюсь. Удачи! :-)


Лучший опрос

Гороскоп

Полный гороскоп