房卡算法修改的第二部分文档主要放的是代码片段,里面把麻将的各种判断函数都列了出来。从截图能看到,常见的有判断是否有效牌、统计牌数量、组合吃碰杠等函数。比如
IsValidCard
就是判断牌是否合法,GetCardCount
用来数手里的牌,EstimateEatCard
、EstimatePengCard
、EstimateGangCard
分别对应吃、碰、杠的判定逻辑。
这些函数大多数都是公共方法,写得比较直白,几乎每个都带了注释。修改的时候重点就是看清楚每个参数的含义。比如吃牌的函数会传当前手牌、中心牌和候选组合,如果只改其中一部分,很可能就会导致逻辑断层。我一开始看代码的时候光注意了输出,没太在意输入参数,结果调试时动作完全不对。
文档里提醒的思路其实很实用,就是先不要急着重写,先分析现有的逻辑。很多算法早就有人写好了,直接复用或者稍微调整就行。尤其是麻将类的规则,大多数判断逻辑大同小异,改的时候保持原有结构是最稳妥的做法。
整体看下来,这部分内容就是带大家熟悉服务端麻将算法的核心函数,属于基础中的基础。后续要改规则、改玩法,基本都得在这里动手。只要先把这些函数弄清楚,后面改起来就不会乱。
相关文章:
备注:转载请注明出处,仅限技术交流,禁止商用!
下载地址: