Один из вариантов защиты на передачу данных серверу Тетриса:
- перед стартом забираем у сервера список фигур выпадающих в игре (альтернатива - забираем зерно _детерменированного_ рандом-генератора, на котором будем получать "детерменированно-случайные" значения)
- как только пользователь положил фигуру - записываем ее конечное положение
- достаем следующую фигуру из списка
- повторяем пока игрок не проиграет
- отправляем нашу запись с ходами на сервер + передаем время
- сервер "проигрывает" у себя тетрис, проверяет что игрок вприципе мог поставить сюда фигуру и возвращает количество очков
Все.
Т.е. зависимость очков от того, сколько линий игрок собрал защищена очень даже хорошо
С зависимостью от времени сложнее - можно подменить время в момент отправки запроса.
Один из вариантов борьбы - подписать это время последовательностью ходов. Если сервер на каждую игру будет отдавать неповторяющуюся последовательность фигур - то последовательность ходов повторяться не будет точно, а значит "злодей" не сможет послать ту же последовательность с другим временем.
Однако, если будут баловаться не подменами запросов, а соберут "свою" версию игры, то смогут подставить любое время.
Если игра доживет до таких хакеров, то можно побаловаться отсылкой не просто конечных положений фигур, а еще и действий пользователя за "квантованные" промежутки времени, которые тоже будут обсчитываться на сервере.
В этом случае хакеру придется писать искусственный интелект, который быстро-быстро соображает куда поставить фигуру. Не сказал бы, что это мегасложная задача, но если игра доживет до времени, когда в сети появятся "боты для тетриса" - это будет успех и можно будет на полученные деньги начинать писать новую

.