复式5张牌,带大小王的炸金花的概率设计
刚刚 看到老大发帖子复式诈金花的概率设计,我也来一个一) 牌型介绍
一副扑克牌, 54张牌(带有大小王),从中选出5张牌,作为一个组合.
大小王参与组合可以视作任意你想要的牌. 总共有10种组合类型1) 5条 。 5张牌是一样的
2) 同花顺。 5张牌的点数是顺序排列的,且同花色,A可以当做最小的1,也可以当做比K大的14。
3) 4条 。 有4张牌同点数,另外一张的点数与之不同。
4) 葫芦。 有3张牌同点数,另外2张牌也是同点数
5) 同花。 5张牌同花色。
6) 顺子。 5张牌的点数是顺序排列的,A可以当做最小的1,也可以当做比K大的14,
7) 3条。 有3张牌同点数。另外2张的点数与之不同。
8) 2对子。 有2个对子
9) 大对子. 大于对10的对子二)游戏规则
这是一个单机游戏.在一轮游戏中,系统会给玩家发两次牌.
第一次发牌之后,玩家根据组合情况,,告诉系统要保留其中任意x(0<=x<=5)张指定的牌.
系统第二次发牌时,会把玩家未指定保留的5-x牌参与洗牌过程, 然后补给5-x张牌.然后游戏结束.
三) 计分规则
每轮游戏玩家必须押上一定的积分,未出现上述10种牌型,该积分将被吃掉.
出现了,则系统将以对应的倍率反馈给玩家积分.
比如玩家押了10分,第二次开牌时,中了葫芦,则系统连同本金共返还给玩家100分.1) 5条 。 750
2) 同花顺。 (又分同花大顺(10,J,Q,K,A),同花小顺(非10,J,Q,K,A的), 对应的倍率是250,120)
3) 4条 。 60
4) 葫芦。 10
5) 同花。 7
6) 顺子。 5
7) 3条。 3
8) 2对子。 2
9) 一对. 1 问题是, 如果系统两次开牌的洗牌算法是完全随机的,玩家赢分的期望值是多少
更进一步,系统如何设计洗牌程序,使得系统能够赢利,但又能留住玩家,即不让玩家太扫兴呢?
来一个图文并茂:
初始状态,系统等待玩家按开牌键:
玩家按了开牌键,系统进行了第一次洗牌,玩家保留了2个9:
玩家再按开牌键,系统进行了第二次洗牌,玩家中奖了:
不会炸金花呀 做新手任务,凑字数 我补充的了游戏过程的图片.
有兴趣的可以看看 以下附件是根据楼主的描述,用MFC编出来的炸金花游戏:
下载并解压后就可以玩了。
祝大家玩得开心! :b: 5# KeyTo9_Fans
:b:
厉害,竟然这么短的时间内写成游戏了
======
其实第一次开牌,如果中奖了,系统可以帮玩家自动留牌的
过段时间我也提供我的程序,Qt写的. 比较完整,界面 如主题贴所示.
BTW: 可否贴出洗牌的代码. 这个游戏程序没有什么难度(哎哟,我的腰!),但是复式诈金花的游戏程序就有点难度了。因为机器管的三家牌要由程序决策分组。 自动玩牌程序新鲜出炉!
下载并运行以下附件就可以观看最佳策略下的玩牌结果了:
说明:
1. 将settings.txt和可执行程序放在同一目录下;
2. settings.txt的第1行到第11行是用来设置每种牌型的奖励分值的;
3. settings.txt的第12行是用来设置每次自动玩牌的次数的;
4. settings.txt的第13行到第23行是用来记录每种牌型的中奖次数的;
5. 运行exe程序后,需等待$10$秒钟的预处理时间(读取settings.txt并求解最佳策略)才会显示游戏界面;
6. 点击"Deal"为手动玩牌,点击"xxx Deals Automatically"为自动玩牌;
7. 手动玩牌时,如果"Hold"的背景色变成了浅绿色,则说明您的留牌方案是最佳方案。
祝大家玩得开心!
#####
用上述程序(以最佳策略)自动玩牌$10000000$局,得钱$20608846$元。
说明当洗牌完全随机时,平均每局赢$(2.061\pm0.005)$元。
玩牌后查看settings.txt,可以看到每种类型的中奖次数如下:
5 of a Kind: 4003
Royal Flush: 3109
Str Flush: 14932
4 of a Kind: 189032
Full House: 158439
Flush: 135249
Straight: 256486
3 of a Kind: 1857860
2 Pair: 977127
Pair Above 10: 2354189
None of Above: 4049574 我写的程序本身200KB左右,但加上Qt的几个dll, 还有一堆的图片和声音文件,就有10M了,远远超过论坛的限制.
还是作罢了. 8# KeyTo9_Fans
不太明白fans的最佳策略是什么.
我自己理论上算了一下.
如果 第一次开牌中奖了,玩家保留了最少的核心牌(组成该奖的最少牌)给第二次开牌. 那么,玩家的赢分期望值是1.49224
页:
[1]
2