我正在嘗試創建一個Javascript卡片遊戲,但我需要匹配到4個列表中的數字。但我總是創建一些瘋狂的分層循環:匹配到一個有序數組
cards = [{card:'h7'},{card:'c8'},{card:'h9'},{card:'st'}]
var sorted = ['7','8','9','t','j','q','k','a']
var found4 = false
for(var i =0;i < 5;i++){
var found = 0;
for(var j = 0;j < 4;j++){
for(var c in cards){
if(cards[c].card.charAt(1) == sorted[i+j]){
found++
}
}
}
if(found == 4){
found4 = true
}
}
是否有更好的方法來匹配數組?
一些輸入例子:
'7','8','9','t' => true
'j','q','k','a' => true
'7','8','k','a' => false
'j','k','7','a' => false
(輸入不排序)
分配每卡標誌的流水號代替。然後,您可以簡單地測試從一張卡到下一張卡的距離(在排序列表上)。如果該距離大於1,則沒有序列。 – Yoshi 2012-07-25 09:43:55
順便說一句,h7的意思是7,st意味着t?我不知道這個遊戲:P – Tamil 2012-07-25 09:45:56
@Tamil h7是他的編碼中的「7顆心」,「st」是「黑桃10」。 – 2012-07-25 09:51:21