斗地主,如何定义一副牌的数据模型

本文探讨了两种扑克牌编码方案,第一种适用于比牌游戏,A为最小,K为最大,便于快速比较牌面大小;第二种调整了A和2的值,适配斗地主玩法,其中2为最大牌。文章强调了优秀数据模型对算法优化的重要性。

方案1

黑桃0x11 -> [A] 0x12 -> [2] 0x13 -> [3]  ...... 0x1a -> [10] 0x1b -> [J] 0x1c -> [Q] 0x1d ->[K]
红桃0x21 
梅花0x31
方块0x41
小王0x5e 大王0x5f

这种方案很适合做比牌, 就是A最小,K最大的情况 value%16就是实际的值大小,value/16 就是花色的权重。

方案2 略作调整

黑桃0x1e -> [A] 0x1f -> [2] 0x13 -> [3]  ...... 0x1a -> [10] 0x1b -> [J] 0x1c -> [Q] 0x1d ->[K]
红桃0x21 
梅花0x31
方块0x41
小王0x51 大王0x52

这里对 A的值和2的值做了调整。大小王的情况相应做调整也不可调整。 这种情况适合做斗地主的玩法,因为2是最大的。

好的数据模型对算法来说是一味灵药,可以优化算法,精简算法。 大家通过此实例,可以考虑麻将牌的数据定义。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值