桌子上有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();
}
}
答案 0 :(得分:0)
诀窍是先制作卡片组,然后在分发卡片时从卡片组中取出卡片。 ?
以下是使用classes,Array.splice()和52张卡片的一种方法。您使用Deck.drawCard()抽出一张卡片。
_getData() async {
var docID;
var query;
var firebaseUser = await FirebaseAuth.instance.currentUser();
final databaseReference = Firestore.instance;
databaseReference
.collection("users")
.where('uid', isEqualTo: firebaseUser.uid)
.getDocuments()
.then((querySnapshot) {
docID = querySnapshot.documents[0].reference.documentID;
query = databaseReference
.collection('users')
.document(docID)
.collection('GPA')
.document(sem1)
.get()
.then((DocumentSnapshot ds) {
print(ds.data);
});
});
}