| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2004 人关注过本帖
标题:求助: 德克萨斯扑克里面的一个算法
只看楼主 加入收藏
zkang5
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2011-5-2
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:14 
求助: 德克萨斯扑克里面的一个算法
比方说有7张牌, 如何在这7张牌里找出5张牌 组合成最大的。

这下面是牌的大小顺序,  怎么用程序实现啊   附件里面有个德克萨斯扑克的源码, 我看不懂,

皇家同花顺(royal flush):由AKQJ10五张组成,并且这5张牌花色相同   德克萨斯纸牌游戏中截图
  同花顺(straight flush):由五张连张同花色
德克萨斯扑克.rar (4.8 KB)
的牌组成
  4条(four of a kind):4张同点值的牌加上一张其他任何牌
  满堂红(full house)(又称“葫芦”):3张同点值加上另外一对
  同花(flush):5张牌花色相同,但是不成顺子  
 顺子(straight):五张牌连张,至少一张花色不同  
 3条(three of a kind):三张牌点值相同,其他两张各异
  两对(two pairs):两对加上一个杂牌  
 一对(one pair):一对加上3张杂牌  
 高牌(high card):不符合上面任何一种牌型的牌型,由单牌且不连续不同花的组成  
 相同牌型比点值,4种花色不分大小,点值以A为最大点,2为最小点。比点值本着牌型优先和最大点优先的原则,先比主要部分,再比较次要部分,先比最大点,再比次大点。例如先比较葫芦的3条部分,3条大的胜出,如果3条部分相等,再比较1对部分。顺子比牌中,A2345的顶张为5,A算1,属于最小的顺子。对于散牌比大小,先比较各自的最大牌,如果最大牌的点值不同,则立刻分出胜负,如果最大牌点值相同,再比次大牌,以此类推,最终比出大小,如果所有点值相等,则不分胜负,平分池底。
搜索更多相关主题的帖子: 同花顺 德克萨斯 
2012-02-23 12:39
zkang5
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2011-5-2
收藏
得分:0 
有人给回复一个吗
2012-02-23 13:54
BianChengNan
Rank: 8Rank: 8
等 级:贵宾
威 望:13
帖 子:302
专家分:972
注 册:2011-11-30
收藏
得分:0 
我没看算法呢还,我先说说我的想法,对每个玩家,先把他的牌定个等级,也就是下面的这些
4条(four of a kind):4张同点值的牌加上一张其他任何牌
  满堂红(full house)(又称“葫芦”):3张同点值加上另外一对
  同花(flush):5张牌花色相同,但是不成顺子  
 顺子(straight):五张牌连张,至少一张花色不同  
 3条(three of a kind):三张牌点值相同,其他两张各异
  两对(two pairs):两对加上一个杂牌  
 一对(one pair):一对加上3张杂牌  
 高牌(high card):不符合上面任何一种牌型的牌型,由单牌且不连续不同花的组成

确定属于哪一类,然后在排好序。

进行玩家之间的比较的时候,只需要先比等级,如果等级相同,则再从大到小比较。
归根到底是一个分类排序的过程

 

我的群:149544757 C/C++/Assembly 喜欢交流的朋友进,进群请写消息
2012-02-23 14:42
zkang5
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2011-5-2
收藏
得分:0 
回复 3楼 BianChengNan
在玩牌的时候, 先是每个人两张牌, 然后会有5张公共牌,  就是每个人7张牌,
第一步应该是先从每个人自己的7张牌中找到最大的    然后才各个玩家进行比较 (比方说有8个玩家)
现在我的问题就是 如何从每个玩家的7张牌中挑出5张组合成一个最大的牌
2012-02-23 16:03
zkang5
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2011-5-2
收藏
得分:0 
回复 2楼 zkang5
朋友, 说个qq吧, 咱俩聊聊  我qq  519006994  我是游戏公司的
2012-02-23 16:17
zkang5
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2011-5-2
收藏
得分:0 
回复 3楼 BianChengNan
朋友, 说个qq吧, 咱俩聊聊  我qq  519006994  我是游戏公司的
2012-02-23 16:17
zkang5
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2011-5-2
收藏
得分:0 
各位高手帮帮忙啊
2012-02-24 12:18
BianChengNan
Rank: 8Rank: 8
等 级:贵宾
威 望:13
帖 子:302
专家分:972
注 册:2011-11-30
收藏
得分:0 
以下是引用zkang5在2012-2-23 16:03:50的发言:

在玩牌的时候, 先是每个人两张牌, 然后会有5张公共牌,  就是每个人7张牌,
第一步应该是先从每个人自己的7张牌中找到最大的    然后才各个玩家进行比较 (比方说有8个玩家)
现在我的问题就是 如何从每个玩家的7张牌中挑出5张组合成一个最大的牌
是这样啊,可以不要手中的牌吗?答案应该是不可以,否则这游戏就有漏洞了。那情况就变成了自己手中的两张牌加上从公共区里选出的三张牌组成最大的结果。
最差的算法是全排列找到所有情况一一记录比较。。。肯定不会用这种方法。。。我也不太懂啊,继续思考
我的qq:273282378

我的群:149544757 C/C++/Assembly 喜欢交流的朋友进,进群请写消息
2012-02-24 12:54
zkang5
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2011-5-2
收藏
得分:0 
以下是引用BianChengNan在2012-2-24 12:54:59的发言:

是这样啊,可以不要手中的牌吗?答案应该是不可以,否则这游戏就有漏洞了。那情况就变成了自己手中的两张牌加上从公共区里选出的三张牌组成最大的结果。
最差的算法是全排列找到所有情况一一记录比较。。。肯定不会用这种方法。。。我也不太懂啊,继续思考
我的qq:273282378
可以不要手中的牌,
2012-02-24 14:53
zkang5
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2011-5-2
收藏
得分:0 
以下是引用BianChengNan在2012-2-24 12:54:59的发言:

是这样啊,可以不要手中的牌吗?答案应该是不可以,否则这游戏就有漏洞了。那情况就变成了自己手中的两张牌加上从公共区里选出的三张牌组成最大的结果。
最差的算法是全排列找到所有情况一一记录比较。。。肯定不会用这种方法。。。我也不太懂啊,继续思考
我的qq:273282378
可以不要手中的牌, 加上公共牌,应该是每个人7张牌,  我的思路就是先从每个人自己的7张牌中找出5张最大的, 然后再各个玩家进行比较。现在主要就是程序实现上有点问题
2012-02-24 15:18
快速回复:求助: 德克萨斯扑克里面的一个算法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022611 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved