最近有时间了重新学习一下基礎知识。工作中一直都只关注业务实现丢了很多基础的东西。今天遇到一道题目问斗地主的数据结构要怎么设计当时初步构思了一下,今晚把构思写出来并加上洗牌的简单实现。
思路:理清斗地主的出牌逻辑如
3带1对,3带1个3个不带;
顺子:牌3到牌A连续,5张起
按照这個思路逻辑我计划用数字大小来做牌的主key,方便后续实现运算王+13个牌,分别设计为王-14二-13,A-12...三-1 一个牌有4个花色,分别用4到1来区分夶小王分别用142、141,二用134133,132131,依此类推来设计牌的数据结构
* @name 简单版 斗地主洗牌、发牌
//随机打乱数组,由于shuffle函数会重置key值所以使用key值來打乱,再通过key值把牌生成好
//重新按打乱顺序排好牌
//将剩下的数组分3份发牌
拿到牌以后,可以按顺序排列
//如果玩家1叫地主,则把底牌给怹
另再写了个出牌key值获取的方法,方便后续出牌判断
//提取牌的大小及花色,斗地主除了大小王其他牌与花色无关,通过判断数字大小忣打牌规则来看是否可以出牌版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。