Вопрос Как сделать радномный выбор объекта? html, js

Регистрация
20 Дек 2013
Сообщения
101
Репутация
6
Спасибо
0
Монет
0
Нужно сделать, чтобы программа рандомно выбирала один из 4 объектов (в моем случае это прямоугольники), и дальше пользователь должен угадать какой объект выбрала программа, то есть кликнуть на него. Я создал в html 4 объекта, но не понимаю, как сделать, чтобы программа рандомно выбирала один из них. Помогите, желательно с объяснением, буду благодарен.
 
Лучше всего такими приколами заниматься на канвасе и идти от обратного. Пользователь кликает по какой-нибудь фигуре, программа создает новую фигуру и проверяет соответствие. На словах сложно, на практике при знании базы JS легко.
 
Ну, в JS вроде бы math.random()
Можно воспользоваться в тех случаях, когда в программах нужен элемент случайности.
 
function randomInteger(min, max) {
// случайное число от min до (max+1)
let rand = min + Math.random() * (max + 1 - min);
return Math.floor(rand);
}
Math.random()>0.5 // равномерное распределение без заморочек если нужно выбрать одно из двух
 
>>>
29033696_a2843208656421239e60522a6dbd2b14_800.png

 
Вы можете использовать JavaScript для этой задачи.

Сначала, создайте массив, содержащий все ваши прямоугольники.

var rectangles = [rectangle1, rectangle2, rectangle3, rectangle4];

Затем, используйте метод Math.floor(Math.random() * n), чтобы выбрать случайный элемент из массива.

var randomRectangle = rectangles[Math.floor(Math.random() * rectangles.length)];

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

rectangle1.onclick = function() {
if (randomRectangle === rectangle1) {
alert("собщение1");
} else {
alert("Неверно");
}
};

rectangle2.onclick = function() {
if (randomRectangle === rectangle2) {
alert("собщение2");
} else {
alert("Неверно");
}
};

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

Похожие темы

Назад
Сверху