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

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

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

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


(nikitoz@real.xakep.ru)

Создание собственного интернет-казино

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

Что мы будем делать

Большая часть электронных казино предоставляет пользователю на выбор несколько десятков вариантов игр, но мы с тобой сегодня не будем ставить рекорды. Нас ждет увлекательное путешествие в мир рулеток, поскольку именно эту игру я решил реализовать в качестве примера. Но прежде, чем приступать непосредственно к работе, надо четко понять, что нам нужно и как это будет функционировать.

Как это работает?

Прежде всего, что же такое рулетка и как в нее играть. Вообще здесь не так уж все и просто, есть несколько вариантов игры и правила мягко перетекают из одного казино в другое. Но самый примитивный вариант выглядит так. Перед игроком находится стол, который разделен на 36 клеток, цвет которой меняется в специальном порядке между черным и красным. В каждом розыгрыше случайным образом выпадает определенное число (вращается рулетка и специальный шарик в довольно хаотичном движении занимает одно из положений, каждому из которых соответствует цвет и число). До розыгрыша игрок делает ставку, причем тут возможны следующие варианты: можно поставить деньги на выпадение определенного цвета, можно – на четность/нечетность выпавшего числа, на диапазоны чисел и на конкретные значения.

В зависимости от вида ставки и выпавшего числа рассчитывается, сколько денег выиграл клиент: если он угадал цвет, выигрыш – это удвоенная ставка, если диапазон из 12 чисел, то утроенная и так далее. Разумеется, игрок может делать несколько ставок. Например, если поставит по 50 долларов на черное и красное, то никогда в жизни ничего не проиграет, но и не выиграет :). Однако если выигрышными окажутся сразу несколько ставок, то можно поднять кучу денег. Но сейчас не об этом, перед нами стоит совсем другая задача: нужно каким-то образом создать эту рулетку.

Самая первая проблема заключается в визуализации процесса игры. Каким бы придурком не был наш клиент, вряд ли его устроит текстовый режим работы, когда выпавшее число и выигрыш выводятся в качестве текстовых сообщений шрифтом courier на белом фоне :). Разумеется, здесь очень важна атмосфера и куча мелочей. Поэтому все электронные казино сталкиваются с проблемой визуализации: надо как-то нарисовать красивую рулетку и дать возможность пользователю взаимодействовать с этим интерфейсом. То есть просто сделать большую красивую jpg-картинку не получится, она должна чутко реагировать на действия пользователя и меняться в зависимости от некоторой управляющей информации. Несколько лет назад самым популярным решением было использовать мастодонтские html-выкладки и еще большие JS-программы для управления всеми компонентами. Каждый кусочек игрового пространства представлял собой отдельный растровый файл и их взаимодействием управлял специальный клиентский скрипт. Однако технологии не стоят на месте и на смену такому тупому подходу пришло решение поумнее – использовать Flash-приложения. Это стало возможным с развитием этой технологии, поскольку она претерпела значительные изменения и стала действительно удобным и универсальным инструментом.

Содержание  Вперед на стр. 075-118-2
<<< НАЗАД ||| ГЛАВНАЯ