关于如何实现一个至简的麻将模拟程序的思考

博主提出创建一个简化版的立直麻将程序,将所有牌替换为中、发、白,总牌数为84张。设计了三种可和牌型,并通过查表算法简化了判断和牌及计算番数的过程。尽管简化,但AI算法依旧复杂,需要综合考虑和牌概率和番数。这是一个结合概率和策略的趣味项目。
摘要由CSDN通过智能技术生成

想做一个模拟立直麻将的程序,但是仔细思考了一下,由于麻将和牌牌型太多了,光是判断和牌牌型和计算役种番数的算法就相当困难,如果直接动态计算手牌和牌牌型的话,每次都根据不同情况要跑一遍算法,耗时太大,如果使用二分查表的算法的话也没有表可以查,因此我想,可不可以简化一下麻将,并使其不失麻将二则,根据牌山牌河出牌的乐趣和随机性造成的多样情况呢?
中,发,白三元牌是我首先想到的,毕竟和出大三元是令人快乐的,因此,我把全部的麻将牌都换成中发白,并把牌总数控制为3214,84张,也就是每种牌28张。
接下来考虑役种,可和牌型为2,4,8;7,7,0;14,0 ,0三种,考虑各种情况,共6+3+3,十二种情形,这样让查表变得非常容易,而且雀士手中13张牌,在开局根据古典概型比较容易遇到三种牌相差不多情形,需要根据牌山所剩牌,自己的牌河,甚至对手的牌河来考虑切牌 并且在做2,4,8时会遇到一个简单的3,3 ,8的二则情形,这样就基本实现了麻将的简单规则,虽然十分简陋。
最后是电脑的ai,电脑需要通过和牌概率(即牌效),和牌番数大小来综合考虑出牌,即使经过简化,也是需要一个复杂且高效的算法来完成的。
好的,先想到这里,想要做出这个还需要一点知识和技术,在这里先挖一个坑。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

某六十九岁合法萝莉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值