Большой фрагмент программы в основной временной шкале определяет, сколько денег выиграл пользователь, если выиграл вообще. Программа начинается с того, что случайным образом выбирает кадр для трех символов и предоставляет игроку $100, на которые он может играть в этой виртуальной игре.
initGame();
stop();
function initGame() {
// Случайным образом выбираем кадры для трех символов.
for (i=1;i<4;i++) {
_root["symbol"+i].gotoAndStop(randomSymbol());
}
// Начинаем со $100.
cash = 100;
showCash();
}Вместо того чтобы отображать сумму, имеющуюся у игрока, просто цифрами, следующая функция помещает перед ней знак доллара и добавляет переменную cash в displayCash. Эта переменная связана с текстовым полем на рабочем поле.
// Отображаем сумму в долларах.
function showCash() {
cashDisplay = "$"+cash;
}Когда игрок щелкает по рычагу, происходит несколько событий. Сначала из суммы наличных денег игрока вычитается $1. Затем клип «arm» переходит ко второму кадру, то есть показывается, что рычаг переходит в нижнее положение. Затем все три клипа «spin» начинают проигрываться. Каждому клипу сообщаются различные значения переменной numTimes – 8, 6 и 4 – то есть первая анимация будет проигрываться восемь раз, вторая – шесть и третья – четыре. Также здесь определяется результат каждого вращения, устанавливаются клипы symbol, хотя они скрыты за непрозрачными анимациями spin до тех пор, пока эти анимации не будут проиграны.
// Рычаг переходит в нижнее положение.
function pull(); {
// Когда рычаг приводится в действие,
// каждый раз вычитаем один доллар.
cash–;
showCash();
// Воспроизводим анимацию рычага.
_root["arm"].gotoAndPlay(2);
// Воспроизводим анимацию вращения.
for (i=1; i<4; i++) {
// Сообщаем, сколько раз нужно вращать барабан.
_root["spin"+i].numTimes = 8-i*2;
_root["spin"+i].gotoAndPlay(2);
}
// Выбираем результат для каждого символа случайным образом.
for (i=1; i<4; i++) {
_root["symbol"+i].gotoAndStop(randomSymbol());
}
}Запрограммировать случайный выбор символа непросто. Если вероятность выбора каждого из семи символов одинакова, тогда вероятность вывода трех совпадений одинакова для любого символа. Другими словами, три изображения желудя появляются так же часто, как и три изображения лисы. То есть не имеет смысла выплачивать различные суммы за совпадения различных картинок.
Примечание
У реальных игровых автоматов необычайно сложный метод выбора символов, которые появятся в окошках. В таком методе используются сложные математические формулы, так что казино может точно рассчитать вероятность выигрыша.
Но вероятность появления одного символа должна отличаться от вероятности появления другого символа. Например, символ с бревном появляется в 29 % случаев. С другой стороны, символ лисы появляется только в 3 % случаев.
Это осуществляется с помощью массива, куда записывается вероятность появления того или иного символа. Затем произвольным образом выбирается число из этого массива. Если оно попадает в диапазон между нулем и вероятностью появления первого символа, выбирается первый символ. В противном случае программа переходит к следующему числу в массиве. Так происходит до тех пор, пока какой-нибудь символ не будет выбран. Просмотрите следующий код, чтобы увидеть, как работает эта схема.