0

首先,我对 Javascript 和一般编程非常陌生。因此,如果这是一个愚蠢的问题,请不要生气。我正在创建一个德州扑克的浏览器游戏,首先我开始在 for 循环中创建一组卡片,然后用 Math.random 洗牌,结果类似于 [C5,H4,S3,..]等等。我的问题是如何最好地比较这些卡。我最害怕的是同花顺和同花顺。

4

1 回答 1

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 个 8),然后踢球者打破任何平局。

由您编写代码来确定您拥有什么样的牌,但基本上您必须检查顺子、同花以及您拥有多少张普通牌。我可能会首先寻找对子,并且只有在没有对子的情况下,您才会寻找顺子或同花,并且我会创建一个函数来寻找每个。

于 2013-02-14T02:56:54.653 回答