Никогда не думал что буду разрабатывать рулетку для counter strike, а вот оказывается пришлось связаться со стимом, его апи и стим ботами.

В процессе написания, узнал многое о игровом бизнесе вообще, заметка пойдет о «общепринятом способе», доказательства честности рулетки. Еще до начала игры, рулетка генерирует случайный float от 0 до 1 и открыто публикует его хеш.

Каждый внесший деньги получает билеты, например 0,1$ = 1 билету, если я внесу 10$, то получу 100 билетов, выигрывает всегда один билет. чем больше внесу денег, тем больше шансов победить.

Победителя определяют по формуле Случайное число * размер банка = (int)победивший билет После победы публикуют еще один хешmd5( хеш случайного числа размер банка всякая ненужная инфа)Нам предлагают калькулятор, где можно этот хеш пересчитать и удостовериться в его подлиности.

Как мы видим, это полная фигня, ведь нам так и не сообщили начальное число, следовательно мы его не можем проверить. Допустим, после розыграша число будет открыто, мы сможем генерировать хеш и убедится что это оно и было.

Окmd5( md5(случайное число) размер банка) Это правда позволит нам удостоверится что число было случайным. Да, число действительно случайное, но не забываем о второй переменной — размере банка.

Как бы нам не казалось что размер банка неизвестен, это не совсем так.