不思议棋牌打鱼技巧:为什么说棋牌游戏开发难

    作者:admin    发布时间:2020-07-30 12:30    浏览:

    [返回]

    OK,那么我们来看看怎么来实现这个功能!先来梳理下这个Demo具有的功能:创建牌,洗牌,发牌(连同发牌效果),排序,就差打牌了,哈哈。好,首先我们来看看这几步怎么搞定,首先是创建牌,这个的话呢,不是很难。但是我压寨棋牌们先要有整体思维,牌的话,我们有花色,大小(权值),等。然后它是很有规律的,发现每月:四色牌各13张,然后大小王各一张。所以,这个时候我们就可以用循环来做了。直接就是按顺序创建就可以。黑红梅方各13张,然后每13张牌就切换一下花色。这样52张牌就出来了。大小王再另外写逻辑就可以了(方法多种,不一定要用我这种)。这里原理说的应该比较清楚了,上代码:

    这是创建牌逻辑。然后牌是创建好了,但是它是按顺序的,有规律的,我们不希望它是这样的,我们希望它是无需的,随机的。那么这个时候就需要洗牌了。洗牌逻辑呢也很简单。原理就是:我们创建的牌是放在一个集合里面了。然后大家应该知道我们打牌的时候,是一张一张的发,或者摸的。对吧,所以我们就要有一个概念,那就是洗好的牌,我们也需要放在一个集合里面,这个集合的话,它比较特殊,它应该是这样的,一张一张的出来拍,然后我们一张一张的摸。那么在数据结构里面就有这样的一个集合,它就是队列,它的特点就是先进先出。所以我们把牌打乱洗好了就放它里面,然后发牌就从这里发。好了,那么洗牌原理是什么呢?我们新建一个临时列表,然后我们就随机打乱下标,再插入到它里面去。因为新的列表我们的大小是0,然后我们要不断循环来把元素插入到这个新列表去,那么它的大小就会不断增加,至于循环多少次,很明显,牌库有多少牌,就循环多少次。

    最后再把这个临时列表一齐赋值给队列,博雅本地棋牌进入下一步发牌。OK,上代码:

    发牌就更简单了。直接疯狂出队列就对了。我就不多说,没得什么难度,唯一一个点,就是发牌的动画(其实也算不算是动画,或者可以叫它效果),我这里呢,是用的协程来做的。直接上代码:

    OK,最后一个就是牌发完需要排序,这个需要用到排序算法,排序算法很多种:诸如冒泡,快牌,插入,选择...等。这些算法我们都可以用。效果一样,我这里就直接用冒泡,因为它最简单,对初学者最友好。也最容易理解。话不多说,上代码:

    好了,斗地主四个模块都已经搞定,当然这只是棋牌游戏斗地主的四个核心部分,并不是全的。还有一些细枝末节不重要又简单,咱就跳过了,如果大家有兴趣可以在评论区留言。

    搜索