我正在尝试创建一个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