unity斗地主洗牌发牌算法实现

       如果你要问游戏行业什么游戏开发起来难度小,周期短?是RPG,MMORPG,Moba?亦或是FPS,赛车游戏?其实都不是!棋牌游戏才是开发难度小,周期短的游戏项目。是不是有人不服了?没关系,听我说完。首先用unity开发棋牌游戏的话,诸如斗地主之类的,难点就只有一个,那就是棋牌游戏游戏算法了,比如洗牌,出牌逻辑,比牌逻辑,其他的就没什么了。至少它逻辑没有很复杂。像FPS,Moba,MMORPG等就不同了,有熟悉内容多,难度大。赛车游戏就更不用说了,如果你要非常真实的,那么各种和物理相关的参数计算,你必须得会,不然做不出高质量的赛车游戏。所以,棋牌游戏难度比较小。我做了一个斗地主的洗牌发牌算法的Demo,这个面试也是会问的。应该有点用处。先上效果图。

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


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

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

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

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

好了,四个模块都已经搞定,当然这是四个核心的部分,并不是全的。还有一些其他的不是很重要的东西,同时又比较简单的,我就没说。所以如果大家对这个demo感兴趣的话,你可以联系我,我给你整个Demo。

好了,这节就到这里了,发文不易,不喜勿喷哦!点击链接加入群聊【Unity/Cocos交流群】

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,165评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,720评论 1 298
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,849评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,245评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,596评论 3 288
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,747评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,977评论 2 315
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,708评论 0 204
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,448评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,657评论 2 249
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,141评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,493评论 3 258
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,153评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,108评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,890评论 0 198
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,799评论 2 277
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,685评论 2 272

推荐阅读更多精彩内容