如何防止用户同时翻动2张以上的牌,当用户进行错配时使用设置超时,如果在设置超时期间快速单击,则可以翻动2张以上的牌。我该如何预防?
我试图使var isProcessing = true 并且当用户进行错误匹配时,编写以下代码:
2
但这不起作用
game.html
combos2(EMPLOYEES,POSTS,LIST):-
LIMIT is POSTS-EMPLOYEES+1,
length(LIST,EMPLOYEES),
LIST ins 1..LIMIT,
sum(LIST,#=,POSTS),
Mid is (LIMIT+1) div 2, %%
maplist(dist(Mid), LIST, DISTS), %%
sum(DISTS,#=,Totaldist), %%
labeling([],[Totaldist|LIST]).
dist(Mid, E, D) :-
D #= abs(Mid-E).
?- combos2(2,10,L).
L = [5,5]
; L = [4,6]
; L = [6,4]
; L = [3,7]
; L = [7,3]
; ...
game.js
if (isProcessing ) {
return;
}
如何解决此问题?
答案 0 :(得分:1)
我认为您的isProcessing
想法是一个很好的解决方案。您需要将其放在这里:
// No match, schedule to flip them back in 1 second
if (card1 !== card2) {
isProcessing = true; // SET IS PROCESSING BEFORE TIMER
setTimeout(function () {
wrongMatch.play();
elCard.classList.remove('flipped');
elPreviousCard.classList.remove('flipped');
elPreviousCard = null;
isProcessing = false; // SET IS NOT PROCESSING AFTER TIME
}, 1000)
在您的点击功能中:
function cardClicked(elCard) {
if (isProcessing) { return; }