gpt4 book ai didi

javascript - 计算扑克牌局赔率

转载 作者:行者123 更新时间:2023-12-02 15:35:10 25 4
gpt4 key购买 nike

我正在使用此处为 NodeJS 找到的手牌评估器:

https://github.com/chenosaurus/poker-evaluator

它效果很好,而且评估牌的速度非常快。但是,我想用它来编写一个脚本来计算赢得对手牌局的机会百分比。

例如,两个玩家有两只手:[Ac, 8c] Vs [9d,9h] 等。

我尝试过循环遍历所有可能的板卡,例如:

var cards = [
"2c","3c","4c","5c","6c","7c","8c","9c","Tc","Jc","Qc","Kc","Ac",
"2d","3d","4d","5d","6d","7d","8d","9d","Td","Jd","Qd","Kd","Ad",
"2h","3h","4h","5h","6h","7h","8h","9h","Th","Jh","Qh","Kh","Ah",
"2s","3s","4s","5s","6s","7s","8s","9s","Ts","Js","Qs","Ks","As",
];

var hand = ["As", "Ks"];
var trials = 0;
for(i=0;i<cards.length;i++) {
for(j=i+1;j<cards.length;j++) {
for(k=j+1;k<cards.length;k++) {
for(l=k+1;l<cards.length;l++) {
for(m=l+1;m<cards.length;m++) {
trials++;
var nh = hand.slice();
nh.push(cards[i]);
nh.push(cards[j]);
nh.push(cards[k]);
nh.push(cards[l]);
nh.push(cards[m]);

PokerEvaluator.evalHand(nh);
}
}
}
}
}

显然这还没有完成(它不会检查手牌的排名或进行比较),但这是我所知道的评估两只手牌所有可能的棋盘组合的唯一方法。

尽管算法每秒能够评估数百万只手,但它的速度非常慢。有没有更好的方法来相互检查两只手,而不是在所有可能的评估中使用 for 循环?

最佳答案

最简单的方法是通过蒙特卡罗。基本上,您只需随机生成剩下的手牌几千次,然后计算获胜的次数并除以生成的手牌总数。您玩的手牌越多,结果就越准确。

关于javascript - 计算扑克牌局赔率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33003433/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com