Я вот тут экспериментирую, и заметил одну ОЧЕНЬ странную вещь. После которой мне теперь кажется что вся проблема с очерёдностью обработки...
Сейчас, коротко для понимания, объясню принцип игровой логики. У каждой карты есть 4 цифры (от 1 до 10 ) по бокам (сверху снизу справа слева). Когда карта вставляется, она сравнивает 4 карты вокруг себя. То есть, например, вы поставили в игровое поле карту, у которой СПРАВА число 8, соответственно, она побьёт карту СПРАВА от себя, если у той число СЛЕВА будет меньше 8 (от 1 до 7 ). и так для всех сторон.
Так вот, тут комп вставляет карту и потом она сравнивается по сторонам. В этом примере приведу только сравнение с левой картой (то есть с той, что перетащил юзер):
setTimeout(function(){appendCard.call(self, '[data-id='+(self.data('id')+1)+']')}, 2000); // комп вставляет карту справа
var leftSs = $('[data-id='+$(this).data('id')+'] .ss'); // карта слева от вставляемой
setTimeout(function(){leftInsert()}, 1000); // функция leftInsert сравнивает левую цифру вставляемой карты, с правой цифрой карты, слева от вставляемой (нде .... =)) )
сейчас пример не работает, но стоит добавить alert, и Главное нажать на всплывающем окне ОК в промежутке после 2000мс но не более 3000мс, то проверка leftInsert СРАБАТЫВАЕТ, и если условия соответствующие (то есть левая цифра больше правой), то карта слева от вставляемой бьётся:
setTimeout(function(){appendCard.call(self, '[data-id='+(self.data('id')+1)+']')}, 2000); // комп вставляет карту справа
alert($('[data-id='+(self.data('id')+1)+'] .ssComp').data('user'));
var leftSs = $('[data-id='+$(this).data('id')+'] .ss'); // карта слева от вставляемой
setTimeout(function(){leftInsert()}, 1000); // функция leftInsert сравнивает левую цифру вставляемой карты, с правой цифрой карты, слева от вставляемой (нде .... =)) )
И да, если это будет любой другой alert, например такой:
alert('dfgdsfghs');
то эта штука уже не прокатывает...
Короче полтергейст какой-то блин!!!
Вот сама функция leftInsert:
var insertComp = $('[data-id='+($(this).data('id')+1)+'] .ssComp');
function leftInsert () {
var x;
if (insertComp != 0 || insertComp != 3 || insertComp != 6) {
if (insertComp.data('user') != leftComp.data('user') || insertComp.data('user') != leftSs.data('user')) {
if (insertComp.data('left') > leftComp.data('right') || insertComp.data('left') > leftSs.data('right')) {
leftComp.data('user', 2);
leftSs.data('user', 2);
if (leftSs.data('user') === 1) {
x = green(leftSs);
u2++;
} else if (leftSs.data('user') === 2) {
x = red(leftSs);
u2 +=2;
u1--;
}
if (leftComp.data('user') === 1) {
x = green(leftComp);
u2++;
} else if (leftComp.data('user') === 2) {
x = red(leftComp);
u2 +=2;
u1--;
}
} else { return u2++; }
}
}
return x, u1, u2;
}