社区
图形处理/算法
帖子详情
关于麻将听牌算法应该怎么写呀
fwoi001
2006-11-05 10:15:30
没什么太特别的 只要能判断出最基本能够听牌的牌型就行
就是最基本的都是由三个相同的(叫刻子么) 和顺子 外加一对 组成的牌 这个算法应该怎么写呢
...全文
785
15
打赏
收藏
关于麻将听牌算法应该怎么写呀
没什么太特别的 只要能判断出最基本能够听牌的牌型就行 就是最基本的都是由三个相同的(叫刻子么) 和顺子 外加一对 组成的牌 这个算法应该怎么写呢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
「已注销」
2006-12-03
打赏
举报
回复
配成最基本的顺子删是可以的,不过咱们武汉麻将还要考虑赖子,呵呵
Douglax
2006-11-29
打赏
举报
回复
学习中
Greenberet
2006-11-29
打赏
举报
回复
欢迎有对麻将开发有兴趣的朋友加入群: 6557246 大家一起学习交流!
housisong
2006-11-14
打赏
举报
回复
我遇到过有8个精的(白搭、混),南昌麻将,用以前的普通的递归算法(最大复杂度为O(14*14/2))加上精的代换根本处理不过来;
应该使用新的判断算法,这里给一个方法;
先去掉所有的精,“将”(单独的对)可以单独处理,这里只考虑刻或者嗒的情况;判断函数看作求剩下牌能够组成的最小值(一个数学极值问题);比如对于单张牌,函数返回2,对于对或者靠返回1...;
“求剩下牌能够组成的最小值”可以写一个算法求出所有的值,完全遍历所有可能还是比较慢;可以使用很多方法减小搜索分支;用一些数学手段可以很容易证明一些变换对于函数最小值是等价的;搜索过程中可以利用精的个数,当发现函数值已经大于精的个数的时候,就不用再搜索该分支了;等等;
我得到的算法最大复杂度已经小于O(100*14/2)
alfwolf
2006-11-08
打赏
举报
回复
楼上的朋友,那不是联众的程序没有算完,联众的程序算番的方法很巧妙,你遇到的情况只是服务器网络问题导致的.
alfwolf
2006-11-08
打赏
举报
回复
特例很多,十三幺,七星不靠,七对等等
bobob
2006-11-08
打赏
举报
回复
国世无双,7对是特例
onestation
2006-11-08
打赏
举报
回复
知道怎么胡后用所有类型的牌循环算就可以了,总共才几十张牌,不用考虑效率的问题!
onestation
2006-11-08
打赏
举报
回复
我写过这个算法,当时是使用的最原始的方法,先删除杠,再删除一对,然后剩下的都是3个相同或3个连排则胡,当然要考虑特殊情况
//判断是否胡牌
int CMjAI::Hu(VPai & vPai)
{
//vPai手中的所有牌
//返回杠的次数和花色是否相同
//初始化花色类型
//由小到大排序
//删除其中一对,如果剩下的都是3个相同或3个连牌则胡
bool bHu = false;
bool b7Dui = false;
bool b7DuiBig = false;
bool bBigDui = false;
//有几对
//判断胡牌类型,先判断特殊情况
//7小对
//龙对
//大对子
//按3个分组
{
//两种情况
}
int nResult = EHT_NO;
if ( bHu )
{
nResult = EHT_NORMAL;
if ( bSameColor ) nResult |= EHT_SAMECOLOR;
if ( b7Dui ) nResult |= EHT_7DUI;
if ( b7DuiBig ) nResult |= EHT_7DUIBIG;
if ( bBigDui ) nResult |= EHT_BIGDUI;
if ( bAll19 ) nResult |= EHT_ALL19;
if ( bAll258 ) nResult |= EHT_ALL258;
}
return nResult;
}
BurningM
2006-11-08
打赏
举报
回复
是算不出来了,当时3个百搭要算24秒,每打一张要等20多秒,摸到第4个.....就没响应了
不过那时机器烂,现在的机器可能没这个问题
BurningM
2006-11-06
打赏
举报
回复
在联众打麻将有一次摸齐四个百搭,结果程序没了响应......出牌30秒都过了,程序还没算完到底可以胡哪些牌
thisisll
2006-11-06
打赏
举报
回复
http://loserwn.biti.org.cn/blog/read.php/100.htm
摘 要 文章通过一个二维数组定义麻将的数据结构,并在此基础上设计了一种判断麻将是否胡牌的算法,该算法主要步骤的时间复杂度为O (n ),且基本上处于“原地工作”。在经过算法判断运算后,该二维数组最终会恢复到最初的数据。
关键词 麻将;胡牌算法;复杂度
thisisll
2006-11-06
打赏
举报
回复
http://blog.cnool.net/workxu/archive/2006/08/07/136679.aspx
求高手提供麻将胡牌算法(C++)???
引用:
麻将起源于中国,原属皇家和王宫贵族的游戏,其历史可以追溯到三四千年前。在长期的历史演变过程中,麻将逐步从宫廷流传到民间,至清朝中期基本定型。麻将作为中国传统文化宝库中的一个重要组成部分,具有集益智性、趣味性、博弈性于一体的运动魅力,及内涵丰富、底蕴悠久的东方文化特征。几百年来,麻将曾经风行于大江南北,流行范围涉及到社会的各个阶层,已经进入千家万户,而且流传海外,成为我国国内及国外华人中最具规模和影响力的智力体育活动。
先大致介绍一下麻将规则:
各地的麻将有各自的特色,规则上有许多差异。
麻将牌有条子、筒子、万子,分别从1到9各4张。
一条、二条、...九条
一筒、二筒、...九筒
一万、二万、...九万
"东南西北中发白"字牌各4张
还有花牌"春夏秋冬梅兰竹菊"各1张
共计144张牌。
...
BurningM
2006-11-06
打赏
举报
回复
用正则表达式^_^
MFC2006
2006-11-05
打赏
举报
回复
给你个思路:
这个应该用递归做。
Go-
麻将
算法
封装包括牌墙
算法
听牌
算法
胡牌
算法
出牌推荐
算法
麻将
算法
封装,包括牌墙
算法
、
听牌
算法
、胡牌
算法
、出牌推荐
算法
Java
麻将
算法
汇总(胡牌
算法
、AI
算法
、查胡
算法
、评估
算法
、出牌
算法
)majiang_algorithm-master.zip
Java
麻将
算法
汇总(胡牌
算法
、AI
算法
、查胡
算法
、评估
算法
、出牌
算法
)majiang_algorithm-master.zip
麻将
棋牌服务器客户端编
写
课程
完整的
麻将
项目,包含服务器、客户端代码的编
写
,实现了约牌创建游戏和匹配游戏功能;全方位的讲解吃、碰、杠、胡、自摸、杠上开花、抢杠等游戏逻辑,游戏数据和逻辑全部由服务器控制,解决了掉线重连、重进房间继续游戏等难点问题。从易到难的讲解即使初学者也能看懂。
麻将
清一色胡牌
算法
(C版)
14张
麻将
的清一色胡牌
算法
,VC编译和测试通过......
各种语言的
麻将
胡牌
算法
。干货。 c++ c# lua go js
麻将
胡牌
算法
.zip
各种语言的
麻将
胡牌
算法
。干货。 c++ c# lua go js
麻将
胡牌
算法
.zip
图形处理/算法
19,469
社区成员
50,697
社区内容
发帖
与我相关
我的任务
图形处理/算法
VC/MFC 图形处理/算法
复制链接
扫一扫
分享
社区描述
VC/MFC 图形处理/算法
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章