На столе 8 карточек, с четырьмя видимыми лицами и четырьмя скрытыми. Нажмите на карту, чтобы ее перевернуть, и, если есть матч в пипсах или масти, покажите искры вокруг связанных карт.
Проблема в том, что я делаю что-то не так по логике, или .concat () не работает. Потому что некоторые искры показывают, а некоторые нет.
Возможно, вся игра может быть преобразована в нужные объекты, но это за пределами моего текущего уровня (я изучаю JS уже месяц). Используемая платформа - RightJS. Размещена вся функция для ясности и немного контекста.
function pick(card) {
var matches = [],
pip = [],
suit = [];
//Check for matches
['card1', 'card2', 'card3', 'card4'].each(function (el) {
if (hand[el].charAt(0) == 'j') {
matches.push(card);
matches.push(el);
} //Joker
else if (hand[card].charAt(1) == hand[el].charAt(1) || hand[card].charAt(0) == 'j') {
matches.push(card);
pip.push(el);
} //Pip match
else if (hand[card].charAt(0) == hand[el].charAt(0) || hand[card].charAt(0) == 'j') {
matches.push(card);
suit.push(el);
} //Suit match
});
if (pip.length > suit.length) {
matches.concat(pip);
} else {
matches.concat(suit);
}
//Hide old bling
$$('.bling').each(function (el) {
el.hide();
});
//Show bling
if (matches.length > 0) {
matches.each(function (el) {
$(el).firstChild.show();
});
}
//Show the card from hand
$(card).setClass(hand[card]);
turned++;
// New turn if all have been clicked
if (turned == 4) {
turned = 0;
newturn();
}
}