跑胡子胡牌算法(带赖子、基于回溯算法)

跑胡子规则

  1. 跑胡子,小写“一”到“十”各4张共40张,大写“壹”到“拾”各4张共40张。
  2. 砌牌:跑胡子为3人同玩,庄家砌21张,其他方位砌20张,留19张在墩上。
  3. 一对牌:砌牌后,手中2个相同的牌为1对。
  4. 一坎牌:砌牌后,手中3个相同的牌为1坎。一坎牌不能拆散与其他牌组合。
  5. 一提牌:砌牌后,手中4个相同的牌为1提。一提牌不能拆散与其他牌组合。在进第一张牌之前,必须放到桌面示众。泸州地区叫一垅。
  6. 一句话:砌牌后,手中的牌依据规则组合成相连的三张,比如小四、五、六,称为一句话。另外二、七、十组合也称为一句话。泸州地区叫一列
  7. 绞牌:当1对大牌与1张相同的小牌,或者1对小牌与1张相同的大牌组合时,成为绞牌。如1对小九与1张大玖。

跑胡子从胡牌算法上跟麻将有许多相似之处,但比一般麻将规则更复杂一些:

1.几组牌(三张一组)+将(一对),跑胡子可以没将
2.都有:一句话(顺子)、提(杠)、坎(碰)、对(将),而跑胡子多一种绞牌及二七十特殊牌组
3.跑胡子还有最小胡息、翻数、红黑数等更复杂的算分逻辑

再讲讲回溯算法

  • 回溯算法,在我看来是一种用递归方式穷举所有解的算法,写的差的回溯算法跟穷举方法的效率差不多,甚至更差(代码可读性差、递归占用较多堆栈、更容易出错),但好的回溯算法结合了优秀的”截枝逻辑”,可以使算法效率提升非常多倍的同时,还能得到所有需要的解。总的来,当你想得到一种、多种甚至所有解的时候,使用穷举效率又太慢,这时回溯算法就是很好的选择。
  • 跑胡子,就很适合用回溯法求解,一是因为当它有赖子牌(万能牌)时,会出现很多种不同的解。二是由于它复杂的算分系统。让求最优解(得分最高)成为一件较难的问题。
  • 已实现c++版跑胡子胡牌算法,因算分规则复杂多变,本算法并不返回一个最优解,而是得到其中一个或所有解(指定最小胡息)。效率经测试:1ms以内。 https://github.com/pinorr/RunHuZi
  • 还实现了十三水的求所有解的算法,以后再分享吧~
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
神经网络算法胡牌算法中的应用是比较常见的。下面我介绍一下基于深度学习技术的神经网络算法胡牌算法。 1. 数据预处理 首先,需要对数据进行预处理。收集游戏中的牌局数据,包括每个玩家的手牌、明牌和已经打出的牌,以及每个玩家的操作(吃、碰、杠、胡等)。 2. 特征提取 接下来,需要对数据进行特征提取。对于每个牌局,可以将每个玩家的手牌表示为一个向量。这个向量包含每种牌的数量和是否有将牌(即是否有对子)。然后,将这些向量作为神经网络的输入。 3. 神经网络模型 在神经网络模型方面,可以使用卷积神经网络(CNN)或递归神经网络(RNN)等深度学习模型。这些模型可以学习到不同的牌型和操作之间的关系。 4. 训练模型 使用收集到的数据训练神经网络模型。在训练过程中,需要定义一个损失函数,并且通过反向传播算法来更新模型的权重。 5. 测试模型 使用测试数据来测试训练好的模型的准确率。如果准确率达到预期,则可以使用该模型来预测玩家的操作,并且根据这些操作来判断是否胡牌。 6. 优化模型 最后,可以对模型进行优化,例如添加更多的特征提取器或增加神经网络的层数。通过不断地优化,可以提高模型的准确率和鲁棒性。 以上就是基于深度学习技术的神经网络算法胡牌算法的主要步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值