Если вы полагаетесь на то, что клиент отправит окончательный результат на сервер, то нет способа (afaik) предотвратить гения от обмана. Но я думаю, что вы могли бы предотвратить обман обманутых людей (и честных людей), так что только гении и их друзья будут доминировать в ваших списках лидеров.
Есть два способа, которыми я могу думать о
1.) «Безопасность через неизвестность».
Придумайте алгоритм, который превращает простые оценки во что-то другое (и преобразовывает их обратно). ). Тогда запутайте это. Усложни это. Напишите функцию, которая умножает ее на q и делит на ralph. Примените к нему набор функций, и среди 5-15 функций, которые делают с ним случайные вещи, есть функция, умножающая число на 19 (простое число). На вашем сервере убедитесь, что каждый входящий номер (или буква) делится на 19, и декодируйте
. Вы должны написать набор сложного кода, который превращает простые оценки в нечто сумасшедшее. Вы должны написать ряд функций наименее эффективным, наиболее спагетти-кодовым способом. Используйте одну вещь, которую вы делаете холодным, - это набор запрещенных значений. Т.е., возможно, все начисленные очки равны. Если кто-то пытается ввести нечетное число, он явно обманывает (и очень глуп).
2.) Время
Вы должны знать, когда пользователь запустил игру. Вы должны начать сеанс и записывать, когда они запрашивают страницу. Тогда вы также должны быть в состоянии сказать, когда они представили свой счет. И вы также должны знать, что временной ряд для максимальных баллов. То есть Можете ли вы получить 5 баллов в минуту, 100 в минуту, минуту ^ 3 и т. д. ... Если пользователь отправляет больше очков, чем это возможно за это время, они обманывают.
Вы также можете найти баланс между обработкой сервера и клиента и сделать так, чтобы клиент отправлял обновление прогресса каждые x минут с помощью ajax. И если он не сообщает, вы предполагаете, что он был скомпрометирован (как в фильмах о Бонде, когда он проникает в логово врага и щелкает шею какого-то охранника. Когда охранник не отвечает на его следующую 10-минутную регистрацию, тревоги сработают).
Если вы когда-либо играли в Zynga Poker, вы наверняка видели, что происходит, когда кто-то за столом имеет медленное интернет-соединение.
Создайте пустые DIV обертки (с указанными размерами) для элементов, которые вы затухаете. Исчезнет то, что внутри. Кроме того, вы можете уменьшить его до 1%, чтобы он все равно занимал место, но был едва заметен.
Похоже на $ (это) .fadeTo ("медленно", 0); должен это сделать, в документации ничего не говорится о настройке отображения. Только fadeOut () имеет display: none; установлен в документации, но дайте мне минутку, и я протестирую его.
Создайте собственное постепенное исчезновение, например:
$(this).animate({opacity: "0.0"});