Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #75, МАРТ 2005 г.

Азартные игры на PHP

Никита Кислицин

Хакер, номер #075, стр. 075-118-4


Для чего я решил использовать XML? Ну, хотя бы потому, что современные версии PHP оборудованы великолепным xml-движком, который позволяет довольно быстро обрабатывать такие вот структуры и позволит нам не заморачиваться над созданием своего парсера, исключив кучу ошибок и конфликтов. Так же, использование этого формата делает нашего флэшового клиента довольно универсальным к среде и его можно будет довольно быстро заставить работать с любой другой системой.

Я не буду рассказывать в этой статье, как работать с парсером xml - я уже писал об этом, так что тема должна быть тебе знакома. Если же ты ничего не запомнил, либо просто упустил этот материал их виду, советую тебе обратиться к подшивке “Х”.

После того, как пользовательские ставки приняты, и пользователь нажал кнопку “КРУТИТЬ”, клиентская часть нашей системы отправляет скрипту play.php данные о ставках, вызывая уже знакомую тебе функцию loadVariables. Сценарий вычисляет выигрыш пользователя, записывает об этом информацию в базу данных и возвращает клиенту информацию о выпавшем поле, выплевывая в стандартный поток вывода строку вида pole=13&money=312. Функция loadVariables импортирует новое значение этой переменной и передает управление флэш-приложению, которое показывает пользователю выигрышное поле и обновляет надпись с его балансом, в соответствии с переменной money. Таким образом, флэшовая заставка по сути своей играет роль обычной html-формы, только красивой и визуализированной. Все вычисления и хранение даже промежуточной информации осуществляется на сервере, и вмешаться в этот процесс почти невозможно.

Игровой генератор

Следующая проблема – это генерирование выигрышного поля. В реальной рулетке для этого используется хитрый вращающийся барабан, мы же воспользуемся встроенным генератором “случайных” чисел, реализованным в виде функции rand(). Несложно догадаться, что эта функция генерирует псевдослучайные числа из диапазона, определяемого двумя параметрами функции. Так, для того, чтобы получить случайное целое из диапазона [1,36], нужно вызвать эту функцию вот так: $r=rand(1,36). Особо следует отметить, что в современных версиях PHP нет необходимости отдельной функцией инициализировать работу счетчика, это делается теперь автоматически.

Мы вплотную подошли к задаче расчета выигрыша пользователя. Тут схема такая. Генерируется случайное число в диапазоне от 1 до 36, и определяется набор выигрышных ставок, массив выигрышных кодов, вот так:

Назад на стр. 075-118-3  Содержание  Вперед на стр. 075-118-5