首先,我对Javascript和编程很新。所以,如果这是一个愚蠢的问题,请不要被冒犯。我正在创建一个德州扑克的浏览器游戏,首先我开始在for循环中创建一个卡阵列,然后使用Math.random进行混乱,这会产生类似[C5,H4,S3,..]的内容。 等等。我的问题是如何最好地比较这些卡。我最担心的是同花顺和同花顺。
答案 0 :(得分:0)
@DamirDžilić - 没有任何真实的代码可以评论,我们只能给出概念建议。你将不得不将每一手牌与所有可能的扑克手牌进行比较,从最高等级的牌局开始,只需一对牌。
我个人建议每张卡都是一个对象:
var card = {suit: "S", value: 9};
然后,一只手就是一组卡片对象。
然后,您可以分别查看套装和卡片价值。如果卡值在2到14之间并且您转换为J,Q,K,A仅用于显示,则会更容易。
然后,每个可能的扑克手(一对,三种,四种,同花顺,直线等等)将按照他们在扑克中的价值得分(对= 1,两对= 2,三种= 3,直= 4,冲洗= 5,满屋= 6,同花顺= 7,四种= 8,同花顺= 9)。
然后,我建议你给每种类型的手一个得分,其中包括10000 *手牌值+ 100 *顶级卡牌+踢球者值。因此,一对带有K踢球的8对将是值得的:
(2*10000) + (8*100) + 13 = 20,813
而且,三个带有A踢球者的2个是:
(3*10000) + (2*100) + 14 = 30,214
使用这种类型的得分系统,手牌值总是占主导地位,然后是手牌得分的顶级牌(例如3个女王击败3个等),然后踢球者打破任何关系。
由你来编写代码来确定你拥有什么样的牌,但基本上你必须检查直道,冲洗以及你拥有多少普通牌。我可能会首先寻找配对,只有在没有配对的情况下才能寻找直道或冲洗,并且我会找到一个功能来寻找每个配对。