был ли щелчок по одной
_root.onMouseDown = function() {
var card = undefined;
(18) // Смотрим, был ли щелчок по одной из карт пирамиды.
for(var i=27;i>=0;i--) {
if (_root["card"+i].hitTest(_xmouse,_ymouse)) {
var card = _root["card"+i];
break;
}}
(19)// Если был, закрывают ли эту карту другие карты?
if (card != undefined) {
if (cardPresent(card.row+l,card.col) or cardPresent(card.row+1,card.col+l)) {
card = undefined;
}}
(20)// Был ли щелчок по стопке карт, лежащих мастью вверх?
if (card == undefined) {
if (stackl.hitTest(_xmouse,_ymouse)) {
card = stack1;
}}
// Проверяем, выбрана ли еще одна карта,
if (card != undefined) {
(21)// Первая выбранная карта,
if (firstCard == undefined) {
firstCard = card;
// Игнорируем второй щелчок по той же карте.
} else if (firstCard == card) {
(22)// Если выбраны две карты и их сумма равна 13.
} else if (cardValueffirstCard) + cardValue(card) == 13) {
// Удаляем обе карты.
removeCard(card);
removeCard(firstCard);
firstCard = undefined;
// В противном случае считаем, что это первая выбранная
// карта.
} else {
firstCard = card;
}}
(23)// Если выбрана одна карта, и это "король"
if (cardValueffirstCard) ==13) {
removeCardffirstcard);
firstCard = undefined;
}}
(24)// Если щелкнули по колоде закрытых карт, переворачиваем
// очередную карту.
if (stackO.hitTest(_xmouse,_ymouse)) {
stackl.value = deck.pop();
stackl.gotoAndStop(stackl.value);
stack.push(stackl.value);
// Когда закрытая колода кончается, удаляем ее.
if (deck.length == 0) {
stackO.removeMovieClip();
}}
(25)// Помещаем рамку около выделенной карты,
if (firstCard != undefined) {
outline._x = firstCard._x;
outline._y = firstCard._y;
} else {
outline._x = -1000;}
(26)// Если удалена первая карта в пирамиде, значит игрок
// выиграл.
if (_root["card0"] == undefined) {
gotoAndStop("game over");
}}
Осталось рассмотреть несколько полезных функций. Первая, removeCard, удаляет карту из колоды открытых карт или из пирамиды. Чтобы удалить карту из открытой колоды , она должна просто отправить клип "stack1" к кадру, который представляет предыдущую карту. Именно в этом месте оказывается полезным массив stack. Каждая карта, положенная мастью вверх, добавляется к stack. Чтобы достать карту опять, вам нужно удалить последнюю карту из массива stack и затем обратиться к последнему члену этого массива. Если карта оказалась из пирамиды, то клип просто удаляется.