Форум программистов, компьютерный форум, киберфорум
Наши страницы
jQuery
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Марина1211
5 / 7 / 8
Регистрация: 06.10.2017
Сообщений: 269
1

Подскажите, как сделать случайный выбор и случайный выбор ответов?

09.04.2018, 14:31. Просмотров 965. Ответов 5
Метки нет (Все метки)

подскажите как сделать случайный выбор вопросов и случайны выбор ответов


PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
var questions = [ 
["1)TYPE Это?", "\"Базовый тип ", "Вещественный тип ", "Символьный тип ", "Строковой тип"],
["2)Можно ли проверить тип переменной с помощью функции type()", "Да", "Нет", "Не всегда", "Не знаю"],
[" 3)Результат программы  print(type(1 / 2))", "    type int", "type float", "type string", "type double"],
["4)PYTHON является", "Машинно - ориентированным языком (низкого уровня)", "Языком высокого уровня", "Объектно - ориентированным языком", "Не знаю"],
["5)Отличаютсяли эти типы?  type() и isinstance()", "isinstance() по сравнению с type() позволяет проверить данное на принадлежность хотя бы одному типу из кортежа", "Нет"," type()  по сравнению с isinstance() позволяет проверить данное на принадлежность хотя бы одному типу из кортежа","Не знаю"],
["6)Область применения PYTHON:?", "Робототехника и искусственный интеллект", "Обучение", "Интернет", "Не знаю"],
["7)Год разработки PYTHON:", "1990", "1991", "1993", "1995"],
[" 8)Чувствителен ли PYTHON к регистру (большая или маленькая буквы):", "\"Да", "Нет", "Не всегда", "Не знаю"],
[" 9)Какие  тип существует", "num", "integer", "int", "input"],
["10)Переменная str:", "символьная строка", "Логическая переменная", "целая переменная", "численная переменная"],
["11 )Переменная float:", "целая", "вещественная", "Логическая", "символьная"],
["12)Каков будет результат выполнения str(88):", " 88 в кавычках ", "88", "88.00", "8.8"],
["13)Что будет в результате следующего действия print(2**20)", "104857600", "1048576", "104", "4"],
["14)Результатом вычисления print(24 // 3) будет число:", "8", "200", "18", "23"],
["15)Как обозначается логический оператор И, ИЛИ, НЕ в питоне:", "AND,OR,NOT", "OR,OR,NOT", "AND,NOT,NOT", "NOT,OR,AND"],
 
 
];
 
var answers = [0,0,0,1, 0,2, 1, 0, 2, 0,1,0,1,0,0];
 
var curquestion = 0;
var correct     = 0;
 
function initTest() {
    correct = 0;
    curquestion = 0;
    show();
}
 
function show() {
    $("#question").html(questions[curquestion][0]);
    $("label[for=answer1]").html(questions[curquestion][1]);
    $("label[for=answer2]").html(questions[curquestion][2]);
    $("label[for=answer3]").html(questions[curquestion][3]);
    $("label[for=answer4]").html(questions[curquestion][4]);
}
 
function checkAnswer() {
    var a = $("input[name=answer]:checked").val();
    if (typeof a == 'undefined') return false;
    if (answers[curquestion] == a) correct ++;
    curquestion ++;
    if (curquestion > answers.length) {
        results();
    }
    else show();
}
 
function results() {
    $("#main").html("<br><br><h5>Поздравляем!</h5><p>Вы ответили верно на " + correct + " из " + answers.length + " вопросов!</p>");
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.04.2018, 14:31
Ответы с готовыми решениями:

Случайный выбор картинки из списка по нажатию на блок
как сделать блок с кнопкой при нажатие которого менялась картинка из списка но случайно(не по...

Как из массива вырезать случайный элемент?
и вставить в див

Случайный элемент (рандом)
Как реализовать рандомной вывод любой информации? Как текст вывести я нашел, но нужен не текст, а...

Выбрать случайный select
есть select &lt;select name=&quot;status&quot;&gt; &lt;option value=&quot;1&quot;&gt;Статус1&lt;/option&gt;...

Случайный вывод скрипта
как мне рандомно выводить скрипты находящийся на другой сайте . Допустим 1 скипт храниться на...

5
Уф
650 / 617 / 385
Регистрация: 13.07.2015
Сообщений: 1,886
Завершенные тесты: 1
10.04.2018, 12:53 2
Лучший ответ Сообщение было отмечено Марина1211 как решение

Решение

гуглим как перемешать массив https://learn.javascript.ru/task/shuffle-array
Javascript
1
2
3
4
function compareRandom(a, b) {
  return Math.random() - 0.5;
}
questions.sort(compareRandom); //перемешиваем вопросы перед выводом
гуглим как перемешать ответы https://modeewine.com/blog/ru-jquery-shuffle
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
(function(jQuery){
    jQuery.fn.shuffle = function(){
        var allElems = this.get();
 
        var getRandom = function(max){
            return Math.floor(Math.random() * max);
        }
 
        var shuffled = jQuery.map(allElems, function(){
            var random = getRandom(allElems.length),
            randEl = jQuery(allElems[random]).clone(true)[0];
            allElems.splice(random, 1);
            return randEl;
        });
 
        this.each(function(i){
            jQuery(this).replaceWith(jQuery(shuffled[i]));
        });
 
        return jQuery(shuffled);
    };
})(jQuery);
 
$('.answers').shuffle();
итог
https://jsfiddle.net/799t29q7/16/

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<div id="main">
 
<div id="question"></div>
 
<div class="answers">
<input type="checkbox" id="answer1" name="answer" value="0" onclick="checkAnswer();$(this).prop('checked',false);">
<label for="answer1"></label>
</div><div class="answers">
<input type="checkbox" id="answer2" name="answer" value="1" onclick="checkAnswer();$(this).prop('checked',false);">
<label for="answer2"></label>
</div><div class="answers">
<input type="checkbox" id="answer3" name="answer" value="2" onclick="checkAnswer();$(this).prop('checked',false);">
<label for="answer3"></label>
</div><div class="answers">
<input type="checkbox" id="answer4" name="answer" value="3" onclick="checkAnswer();$(this).prop('checked',false);">
<label for="answer4"></label>
</div>
 
</div>
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
var questions = [ 
["1)TYPE Это?", "\"Базовый тип ", "Вещественный тип ", "Символьный тип ", "Строковой тип"],
["2)Можно ли проверить тип переменной с помощью функции type()", "Да", "Нет", "Не всегда", "Не знаю"],
[" 3)Результат программы  print(type(1 / 2))", "    type int", "type float", "type string", "type double"],
["4)PYTHON является", "Машинно - ориентированным языком (низкого уровня)", "Языком высокого уровня", "Объектно - ориентированным языком", "Не знаю"],
["5)Отличаютсяли эти типы?  type() и isinstance()", "isinstance() по сравнению с type() позволяет проверить данное на принадлежность хотя бы одному типу из кортежа", "Нет"," type()  по сравнению с isinstance() позволяет проверить данное на принадлежность хотя бы одному типу из кортежа","Не знаю"],
["6)Область применения PYTHON:?", "Робототехника и искусственный интеллект", "Обучение", "Интернет", "Не знаю"],
["7)Год разработки PYTHON:", "1990", "1991", "1993", "1995"],
[" 8)Чувствителен ли PYTHON к регистру (большая или маленькая буквы):", "\"Да", "Нет", "Не всегда", "Не знаю"],
[" 9)Какие  тип существует", "num", "integer", "int", "input"],
["10)Переменная str:", "символьная строка", "Логическая переменная", "целая переменная", "численная переменная"],
["11 )Переменная float:", "целая", "вещественная", "Логическая", "символьная"],
["12)Каков будет результат выполнения str(88):", " 88 в кавычках ", "88", "88.00", "8.8"],
["13)Что будет в результате следующего действия print(2**20)", "104857600", "1048576", "104", "4"],
["14)Результатом вычисления print(24 // 3) будет число:", "8", "200", "18", "23"],
["15)Как обозначается логический оператор И, ИЛИ, НЕ в питоне:", "AND,OR,NOT", "OR,OR,NOT", "AND,NOT,NOT", "NOT,OR,AND"],
 
 
];
 
var answers = [0,0,0,1, 0,2, 1, 0, 2, 0,1,0,1,0,0];
 
var curquestion = 0;
var correct     = 0;
 
function initTest() {
  function compareRandom(a, b) {
    return Math.random() - 0.5;
  }
  questions.sort(compareRandom);
  $('.answers').shuffle();
    correct = 0;
    curquestion = 0;
    show();
}
 
function show() {
    $("#question").html(questions[curquestion][0]);
    $("label[for=answer1]").html(questions[curquestion][1]);
    $("label[for=answer2]").html(questions[curquestion][2]);
    $("label[for=answer3]").html(questions[curquestion][3]);
    $("label[for=answer4]").html(questions[curquestion][4]);
}
 
window.checkAnswer = function() {
    var a = $("input[name=answer]:checked").val();
    if (typeof a == 'undefined') return false;
    if (answers[curquestion] == a) correct ++;
    curquestion ++;
    if (curquestion == answers.length) {
        results();
    }
    else show();
}
 
function results() {
    $("#main").html("<br><br><h5>Поздравляем!</h5><p>Вы ответили верно на " + correct + " из " + answers.length + " вопросов!</p>");
}
 
    jQuery.fn.shuffle = function(){
        var allElems = this.get();
 
        var getRandom = function(max){
            return Math.floor(Math.random() * max);
        }
 
        var shuffled = jQuery.map(allElems, function(){
            var random = getRandom(allElems.length),
            randEl = jQuery(allElems[random]).clone(true)[0];
            allElems.splice(random, 1);
            return randEl;
        });
 
        this.each(function(i){
            jQuery(this).replaceWith(jQuery(shuffled[i]));
        });
 
        return jQuery(shuffled);
    };
 
initTest();
CSS
1
2
3
label:hover {
  background: #7f7;
}
1
Марина1211
5 / 7 / 8
Регистрация: 06.10.2017
Сообщений: 269
11.04.2018, 19:28  [ТС] 3
я стал проходить тест отвечаю правильно на вопросы на выходит не верно.
0
Уф
650 / 617 / 385
Регистрация: 13.07.2015
Сообщений: 1,886
Завершенные тесты: 1
14.04.2018, 09:40 4
Марина, ты стал проходить тесты? лел. ну так че заработало? или еще посмотреть?
0
Марина1211
5 / 7 / 8
Регистрация: 06.10.2017
Сообщений: 269
14.04.2018, 18:11  [ТС] 5
посмотрите запускаю тест,начинаю проходить и больше 7 правильных не получается хотя ответы знаю
0
Уф
650 / 617 / 385
Регистрация: 13.07.2015
Сообщений: 1,886
Завершенные тесты: 1
15.04.2018, 10:10 6
Лучший ответ Сообщение было отмечено Марина1211 как решение

Решение

да ты прав. при перемешивании вопросов массив с ответами не перемешивается.
я исправил, теперь перед мешанкой сохраняются оригинальные индексы вопросов и все работает
правильные ответы отметил единицей для проверки
https://jsfiddle.net/799t29q7/27/
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
var questions = [ 
["1)TYPE Это?",
    "1 Базовый тип ",
  "Вещественный тип ",
  "Символьный тип ",
  "Строковой тип"],
["2)Можно ли проверить тип переменной с помощью функции type()",
    "1 Да",
  "Нет",
  "Не всегда",
  "Не знаю"],
[" 3)Результат программы  print(type(1 / 2))",
    "1 type int",
  "type float",
  "type string",
  "type double"],
["4)PYTHON является",
    "Машинно - ориентированным языком (низкого уровня)",
  "1 Языком высокого уровня",
  "Объектно - ориентированным языком",
  "Не знаю"],
["5)Отличаютсяли эти типы?  type() и isinstance()",
    "1 isinstance() по сравнению с type() позволяет проверить данное на принадлежность хотя бы одному типу из кортежа",
  "Нет",
  " type()  по сравнению с isinstance() позволяет проверить данное на принадлежность хотя бы одному типу из кортежа",
  "Не знаю"],
["6)Область применения PYTHON:?",
    "Робототехника и искусственный интеллект",
  "Обучение",
  "1 Интернет",
  "Не знаю"],
["7)Год разработки PYTHON:",
    "1990",
  "1 1991",
  "1993",
  "1995"],
[" 8)Чувствителен ли PYTHON к регистру (большая или маленькая буквы):",
    "1 Да",
  "Нет",
  "Не всегда",
  "Не знаю"],
[" 9)Какие  тип существует",
    "num",
  "integer",
  "1 int",
  "input"],
["10)Переменная str:",
    "1 символьная строка",
  "Логическая переменная",
  "целая переменная",
  "численная переменная"],
["11 )Переменная float:",
    "целая",
  "1 вещественная",
  "Логическая",
  "символьная"],
["12)Каков будет результат выполнения str(88):",
    "1 88 в кавычках ",
  "88",
  "88.00",
  "8.8"],
["13)Что будет в результате следующего действия print(2**20)",
    "104857600",
  "1 1048576",
  "104",
  "4"],
["14)Результатом вычисления print(24 // 3) будет число:",
    "1 8",
  "200",
  "18",
  "23"],
["15)Как обозначается логический оператор И, ИЛИ, НЕ в питоне:",
    "1 AND,OR,NOT",
  "OR,OR,NOT",
  "AND,NOT,NOT",
  "NOT,OR,AND"],
];
 
var answers = [0,0,0,1, 0,2, 1, 0, 2, 0,1,0,1,0,0];
 
var curquestion = 0;
var correct     = 0;
 
function initTest() {
  function compareRandom(a, b) {
    return Math.random() - 0.5;
  }
  questions.forEach(function(item,i,arr){ questions[i][5] = i; }) //сохраняем оригинальные индексы
  questions.sort(compareRandom);
  $('.answers').shuffle();
    correct = 0;
    curquestion = 0;
    show();
}
 
function show() {
    $("#question").html(questions[curquestion][0]);
    $("label[for=answer1]").html(questions[curquestion][1]);
    $("label[for=answer2]").html(questions[curquestion][2]);
    $("label[for=answer3]").html(questions[curquestion][3]);
    $("label[for=answer4]").html(questions[curquestion][4]);
}
 
window.checkAnswer = function() {
    var a = $("input[name=answer]:checked").val();
    if (typeof a == 'undefined') return false;
    if (answers[questions[curquestion][5]] == a) correct ++;
    curquestion ++;
    if (curquestion == answers.length) {
        results();
    }
    else show();
}
 
function results() {
    $("#main").html("<br><br><h5>Поздравляем!</h5><p>Вы ответили верно на " + correct + " из " + answers.length + " вопросов!</p>");
}
 
    jQuery.fn.shuffle = function(){
        var allElems = this.get();
 
        var getRandom = function(max){
            return Math.floor(Math.random() * max);
        }
 
        var shuffled = jQuery.map(allElems, function(){
            var random = getRandom(allElems.length),
            randEl = jQuery(allElems[random]).clone(true)[0];
            allElems.splice(random, 1);
            return randEl;
        });
 
        this.each(function(i){
            jQuery(this).replaceWith(jQuery(shuffled[i]));
        });
 
        return jQuery(shuffled);
    };
 
initTest();
1
15.04.2018, 10:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2018, 10:10

Выбрать случайный цвет
У меня есть 6 radio-элементов, пользователь может выбрать одно из этих значений. &lt;p&gt;Choose the...

Поворот букв на случайный градус
Здравствуйте. Мне потребовалось создать эффект неровно написанных букв. Немного подумав я понял,...

Генерация целых случайный чисел
Данный скрипт генерирует числа через точку например &quot;3.648734523459&quot;, помогите исправить, чтобы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru