JavaScript
/* Форма 0 - выбрать правильный ответ из списка,
* форма 1 - выбрать правильные ответы из списка,
* форма 2 - ввести правильный ответ.
*/
// Форма, вопрос, ответ, оценка, [ответ, оценка].
var baseTest=[
[1,'Какие языки погромирования лучшие?',
'js', 1,
'python', 1,
'c++', 94,
'c#', -94,
'java', -1,
],
[0, 'Сколько бит в байте', 0, -1, 1, 0, 3, 0, 8, 1, 16, -1],
[2, '2+2*2=?', 6, 1],
[0, 'Каковы размеры вселенной?',
'Шар хаббловского диаметра', -1,
'Бесконечна', 0,
'Куб, стороной надцать гигапарсек', 1,
],
[0, 'Тут могла быть ваша реклама?',
'Могла', -1,
'Не могла', 1,
],
];
// Если >= , то текст.
var resultTest=[
100, 'Бог',
5, 'Хороший человек',
3, 'Есть к чему стремиться',
1, 'Еще не всё потеряно',
0, 'Ленивое быдло',
-100, 'Даун',
];
var summ=0;
for (var cv in baseTest) {
switch (baseTest[cv][0]) {
case 0:
f0(baseTest[cv]);
break;
case 1:
f1(baseTest[cv]);
break;
case 2:
f2(baseTest[cv]);
break;
}
}
for (var i=0; i<resultTest.length; i+=2) {
if (summ>=resultTest[i]) {
document.getElementById('res').innerHTML=resultTest[i+1];
break;
}
}
function f0(a) {
var str='Вопрос '+(+cv+1)+'/'+baseTest.length+'\n\n'+a[1]+'\n\n';
for (var i=1; i<a.length/2; i++) {
str+=i+') '+a[i*2]+'\n';
}
while (true) {
var ans=prompt(str+'\nВведите правильный вариант.');
if (ans=='') alert('Вы ничего не ввели.');
else if (ans==null) break;
else if (ans>0 && ans<a.length/2) {
summ+=a[ans*2+1];
break;
}
else alert('Некорректный ответ.');
}
}
function f1(a) {
var str='Вопрос '+(+cv+1)+'/'+baseTest.length+'\n\n'+a[1]+'\n\n';
for (var i=1; i<a.length/2; i++) {
str+=i+') '+a[i*2]+'\n';
}
while (true) {
var ans=prompt(str+'\nВведите правильные варианты через запятую.');
if (ans=='') alert('Вы ничего не ввели.');
else if (ans==null) break;
else {
var j=true;
var tex=ans.split(',');
for (var i in tex) {
if (tex[i]>0 && tex[i]<a.length/2);
else...