Algorithm 如何实现麻将游戏?

Algorithm 如何实现麻将游戏?,algorithm,artificial-intelligence,mahjong,Algorithm,Artificial Intelligence,Mahjong,是亚洲最流行的游戏之一(不是Windows7中的纸牌游戏)。当时有很多麻将游戏,包括雅虎的在线麻将游戏和DOS时代的离线麻将游戏 就在另一天,我在想,我怎么能写一个(不包括GUI) 数据建模部分很简单 获胜和得分的规则是。。。模式匹配 游戏的战略部分,比如决定扔掉哪块瓷砖,以及什么时候进行Chow或Pong动作,是最困难的部分。如何实现这一点 谢谢 研究: 麻将示范(日式): -我曾经玩过的麻将游戏,它的计分系统: 函数语言更适合?以什么方式 爱麻将- 阅读此文 这可能会有帮助 “决定扔掉哪

是亚洲最流行的游戏之一(不是Windows7中的纸牌游戏)。当时有很多麻将游戏,包括雅虎的在线麻将游戏和DOS时代的离线麻将游戏

就在另一天,我在想,我怎么能写一个(不包括GUI)

数据建模部分很简单

获胜和得分的规则是。。。模式匹配

游戏的战略部分,比如决定扔掉哪块瓷砖,以及什么时候进行Chow或Pong动作,是最困难的部分。如何实现这一点

谢谢

研究:

  • 麻将示范(日式):
  • -我曾经玩过的麻将游戏,它的计分系统:
  • 函数语言更适合?以什么方式
  • 爱麻将-
  • 阅读此文

    这可能会有帮助

    “决定扔掉哪块瓷砖”实际上相当直截了当。考虑到弃牌和手牌的性质,定义“准备好”的手牌是一个确定哪些潜在集合具有最多可用(非弃牌,非在用)牌的问题

    每一块瓷砖都属于几种可能的图案之一(成对,最多3周,朋克,香港)。很容易计算填充图案所需的瓷砖。根据播放的内容和暴露的内容,很容易减少可能的瓷砖数量。由此产生的可能模式可以进行排序。丢弃从最难填充的组合中拾取


    [看这个

    听起来确实是一个有趣的项目。你有没有研究过任何开源实现,看看它们是如何实现的?我没有研究过任何开源实现,我不知道是否有。也许我应该开始一个。你能使用类似于数独解算器的方法吗?使用回溯等。这里有二十个数独奥尔弗斯(哈斯克尔)。这些方法可能有助于您搜索解决其他游戏/谜题的算法。也许我不完全理解该算法,但MJ游戏的解空间非常大,它会根据您拥有的其他瓷砖以及“墙”上放置的瓷砖而变化,因此我认为回溯不起作用。@Henry:“谢谢,但我想要的不仅仅是这些。”请更新您的问题,以定义“更多”的含义".这一联系在数据模型上很重,但在情报/战略方面有点弱,这是最困难的part@Henry:Hmm.“TileSet类层次结构”部分似乎涵盖了完成一手牌所需的所有不同集合。手牌部分似乎包括完整的手牌评分算法。我认为没有什么比这更重要了需要。也许你可以说得具体一点?好的,我再次阅读了你的页面,以下是我认为缺少的东西:1)AI玩家如何决定将哪个瓷砖放在墙上以获得更好的获胜机会?2)何时决定是从墙上“pong”/“kong”还是从前一个玩家那里“chow”(你称它们为“融化的”瓷砖)为了提高获胜的可能性?3.)查看您的第一个测试用例,您的算法将竹子分解为[2,2,2][3,4,5][5,5],但有些手可能会选择[2,2][2,3,4][5,5,5].4.)你确定了TileSet,但有什么策略来实现这些标题集?我不确定你使用的是什么评分系统,但我想到的MJ变体与你的评分系统并不相同。我计划编写的变体主要基于“fan”,并且有关于如何累积“fan”的规则,因此AI I我计划建立应该考虑到如何存档最大的球迷与高获胜的可能性之前,游戏用完瓷砖。