Стало интересно, как работают все эти рулетки на сайтах, а также как это все защищается от подмены.
Банальный пример - это сгенерированный массив значений.
Например, у нас есть уникальные значения:
items = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Из них мы формируем уникальный массив значений для игры:
items_for_game = [3, 4, 4, 7, 1, 9, 10, 1, 4, 7, 6, 2, 9, 8, 2, 2, 10, 3, 6, 4 6, 4, 8, 9, 10, 4, 3, 6, 2, 4]
На сайте из них формируем горизонтальную ленту. Притом цикличную. Лента эта состоит из скрытой от глаза пользователя группы:
<input type="radio" name="items" value="тут номер из массива выше">
По нажатии на кнопку эта лента начинает крутится.
От стартовой скорости каждую секунду отнимается какое-то значение, что приводит к остановке ленты.
И вот на этом этапе назревает три основных вопроса:
1. Как реализовать прокрутку ленты? Ведь простым слайдом тут явно не обойтись? Или это все же банальный слайд?
2. Допустим, с первым пунктом разобрались. Как идентифицировать элемент? Я имею ввиду как идентифицировать выбранный элемент? Например, выбранным считается тот элемент, который оказался по центру блока после остановки ленты.
3. Как избавиться от мошенничества? Я прекрасно понимаю что все, что находится в HTML коде может без труда редактироваться пользователем. Включая те самые ID из input radio. Отсюда отпадает желание использовать input radio - в этом уже нет необходимости. Короче говоря, третий пункт тесно связан со вторым. Как это реализовать?
Могу предположить, что вместо массива items_for_game мы создаем объект items_for_game, с ключами от 0 до N. Далее получаем случайный номер элемента, к которому подгоняем остановку ленты (это уже не: "От стартовой скорости каждую секунду отнимается какое-то значение, что приводит к остановке ленты.").
В общем, знатоки, что скажете? :)