有谁知道麻将和象棋的算法?

xxfeiyu 2001-03-11 10:34:00
加精
可以给高分!@
...全文
497 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
one_add_one 2001-08-12
  • 打赏
  • 举报
回复
gz
xxfeiyu 2001-07-01
  • 打赏
  • 举报
回复
好啊
我十分乐意和你交流
我的Mail:xxfeiyu@china.com
QQ:1752326




oceanheart 2001-06-30
  • 打赏
  • 举报
回复
谈谈麻将算法:
我曾经在上学时候写过一个麻将程序,规则基本上和街机上的差不多,计算机可以打牌,但水平一般。我觉得难度主要有两个:一个是如何判断一幅牌是否胡了,以及胡牌的类型和番数;另一个就是计算机如何出牌。
1、我的判断胡牌的算法也许有些笨,所以有少数很特殊的牌型可能判断有误,基本思路是对每张牌编号,先排序,然后分组,按照万/筒/条/风等分组,然后再判断所有三张和两张的小组以及杠的情况,这里分组是比较困难的,很可能因为某个错误的组合而导致正确的分组判断不出来,因此要采用正向和反向两次分组,看看是否有一组符合胡牌条件,还有就是对七对等特殊牌型的判断。如果判断出来胡牌,还要进行算番和算分,算番是非常复杂的,而且工作量特别大,这可能要靠你对规则的熟悉程度,我的算法中实现了大部分常见番的判断,大约有30种(真正的麻将规则中可能名目要多很多)。
2、计算机出牌的算法也比较复杂,我的思路和上面判断胡牌类似,先是排序,分组,然后计算自己的实力,然后把对方打得牌拿过来首先判断自己能否胡,如果不能胡再判断能否吃/碰/杠等,对几种实力进行对比,最后决定出哪张牌,为了有一些变数,对很难决定的牌型采取了一些随机出牌的算法。整个算法可能比较笨,但经常也能胡牌(可能因为麻将游戏本身就存在一定的运气成分)。
当时之所以能写出来,主要是因为旁边有一个街机麻将高手,对各种牌型了如指掌。
oceanheart 2001-06-30
  • 打赏
  • 举报
回复
抱歉,因为我的程序是7年前刚开始学编程的时候写的,写的非常不规范,没有注释,变量命名也不规范,而且是在DOS下用Turbo Pascal写的,当时条件比较差,用的单显的8088,输入汉字都非常困难,以至于现在我自己都看不太懂了,实在不好意思贴出来,不过我可以悄悄的发给你,如果有什么好的算法也欢迎交流。
xxfeiyu 2001-06-30
  • 打赏
  • 举报
回复
非常感谢
能否把源程序贴上或寄到xxfeiyu@china.com
NextMorrow 2001-06-29
  • 打赏
  • 举报
回复
先写一个很大的棋谱库 (2000多个),写自己的评估函数和剪枝函数。一般来说,两个稍懂下棋的人在对
弈的时候,其所走的前15--25步都会与某一棋谱相符合。有很多开局棋谱,所以懂得多的人会占优势。因此,
人机对弈程序在与人对战时,前几步会在它的库中搜索,找到相符合的应对(最先应该能找到很多, 至越来
越少)。这样,经过前一二十步,机一方已占极大优势,但再往下走也找不到相符合的棋谱了。这时,脱离
棋谱,程序使用自己的对弈函数收尾。只要评估函数和剪枝函数不太差,人输。人也有可能不以常规对,但
用模式识别,仍用棋谱。若不依常规走四五步,模式识别可能无效,但人已劣势,很难胜。当然,遇见大师
就小巫见大巫了,但大师恐怕不屑与这样的无名程序对。
棋谱很多,所以很多人机对弈程序都外挂库,.exe文件内只有小库。
现在的Chinese Chess 游戏(CSDN上也有),其人机对弈都不太差。很多就是这样做(居然要注册费)。
这样做出来的程序虽然能胜过人,但所依靠的是专家系统,而非AI系统。其实是很无用的东西。毕竟,
这种程序有价值的是 AI 部分。
xxfeiyu 2001-06-28
  • 打赏
  • 举报
回复
A
xxfeiyu 2001-05-09
  • 打赏
  • 举报
回复
???
panda_w 2001-04-18
  • 打赏
  • 举报
回复
不过是权值之类的东东
xxfeiyu 2001-04-03
  • 打赏
  • 举报
回复
能详细点吗?
麻将的算法和象棋的算法有很大的不同阿,最好分开来说。
wlpwind 2001-04-01
  • 打赏
  • 举报
回复
我觉得其算法一般是这三种情形:
1. 写一评价函数,改棋局打分.
2. 用布局树存储各种常见棋局
3. 混合
jusonchen 2001-03-23
  • 打赏
  • 举报
回复
如果知道算法,可得通知我呀!!!
jusonchen 2001-03-23
  • 打赏
  • 举报
回复
很难呀,我也想知道
xxfeiyu 2001-03-13
  • 打赏
  • 举报
回复
真的没人知道它的算法吗?
难的是如何把实际问题转换为具体的数学模型啊!
各位大虾,给点启发吧?????
xxfeiyu 2001-03-12
  • 打赏
  • 举报
回复
当然是人工智能(AI)的算法啦!!!
@_@
xxfeiyu 2001-03-12
  • 打赏
  • 举报
回复
当然是人工智能(AI)的算法啦!!!
@_@
Smile_Tiger 2001-03-12
  • 打赏
  • 举报
回复
麻将和象棋的什么算法?人工智能算法吗?

33,028

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧