algorithm - 如何实现麻将游戏?

标签 algorithm artificial-intelligence mahjong

Mahjong是亚洲最受欢迎的游戏之一(不是 Windows 7 中的单人纸牌游戏)。那里有很多麻将游戏,包括来自 Yahoo 的在线游戏或 DOS 时代的离线游戏!

又有一天我在想,我怎么能写一个(不包括 GUI)?

数据建模部分很简单。

获胜和计分规则是……模式匹配?

游戏的战略部分是最困难的部分,例如确定要扔掉哪张牌以及何时下棋或棋棋。如何实现?

谢谢!

研究:

最佳答案

读这个

http://homepage.mac.com/s_lott/books/python/html/p05/p05c05_mahjongg.html

这可能会有所帮助。

“决定扔掉哪一张牌”实际上非常简单。考虑到弃牌和手牌的性质,定义“准备好的”手牌就是确定哪些潜在牌组具有最多可用(非弃牌,非进行中)牌。

每个板 block 都属于几种可能的模式之一(对子,最多 3 个松狮犬,碰碰,杠)。计算填充图案所需的瓷砖很容易。根据播放的内容和显示的内容很容易减少可能的图 block 数量。可以对产生的可能模式进行排序。丢弃物是从最难填充的组合中挑选出来的。

[查看此 http://www.amazon.com/Mah-Jong-Handbook-Play-Score/dp/0804838747]

关于algorithm - 如何实现麻将游戏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4074054/

相关文章:

c - 使用 DFS 查找迷宫中的所有路径

arrays - 为什么选择排序可以稳定或不稳定

nlp - 带有子实体的 Luis 实体?

algorithm - 寻找启发式传教士和食人者

algorithm - 麻将胜手算法

c++ - 任何人都有确定麻将游戏是否获胜的算法?

java - 迭代java中的字符串集

algorithm - 快速算法复杂度计算

open-source - 简单的聊天机器人项目

c# - 如何快速判断列表是否包含列表?