如何实现一个麻将游戏?

麻将是亚洲最流行的游戏之一(不是Windows 7中自带的纸牌接龙)。市面上有很多麻将游戏,包括雅虎上的在线游戏和DOS时代的离线游戏!

有一天我在想,如何编写一个麻将游戏(不包括GUI)?

数据建模部分很简单。

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

游戏中的策略部分,例如决定扔哪张牌,以及何时进行吃、碰操作,是最难的部分。 如何实现这一点?

谢谢!

研究:


回答:

阅读此内容

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

它可能会有所帮助。

“确定扔哪张牌”实际上非常简单。 考虑到弃牌和手牌性质,定义“听牌”就是确定哪些潜在的组合拥有最多的可用牌(未弃牌,未在游戏中)。

每张牌属于几种可能的模式之一(对子,最多3个顺子,刻子,杠)。 计算填满该模式所需的牌很容易。 根据已打出的牌和暴露的牌,减少可能牌的数量很容易。 由此产生的可能模式可以进行排名。 弃牌从最难填满的组合中选择。

[参见此书http://www.amazon.com/Mah-Jong-Handbook-Play-Score/dp/0804838747]

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注