【Unity之棋牌类】单机斗地主游戏开发流程

一、斗地主规则说明:

斗地主出牌类型(牌数范围):

单牌(1)、对子、顺子(除2之外的连续5~12张牌凑成,例如:345678、最大是345678910JQKA)、双顺(牌数范围[6,8,10,12,14,16,18,20,22,24] 最小:334455,最大:334455667788991010JJQQKKAA)、飞机([6,9,12,15,18,21,24...]如:222333)、三带(3)、三带一(4)、三带二(5)、炸弹(4)、王炸(2)

二、流程:

准备54张牌、洗牌、发牌每人17张、抢地主、将剩余3张牌给地主、地主出牌、轮转下一位玩家出牌、不断地 

循环、直至某玩家牌出完、结束一轮游戏。

具体实现套路:

1、准备54张牌

用队列或栈存,方便发牌,卡牌类{卡名、牌号、花色、持有者},利用卡名从Resources加载图片,牌号*4+花色=权值,持有者可知道这张牌属于谁。(废话)

2、洗牌

新建一个List或数组,从原本按着顺序排放的牌抽一张放入List,利用插入方式放入,插入索引值为Random.Range(0,list.Count+1),一张张牌随机插入List后就得到54张 乱序的牌了,然后再将这些牌一张张放回到原来保存着牌的栈或队列中。

3、发牌每人17张

将牌一张张地实例化到各个对应的点上,玩家看到的牌是降序排序的。

4、抢地主

5、将剩余3张牌发给地主

6、地主出牌(必须出牌,不能不出哦!(废话))

创建 一个Model保存最大出牌者是谁(当前牌者就是最大出牌者(废话!)),出牌类型,牌长度,牌权值!

7、轮转下一位玩家出牌

对了,出牌之前必须要验证将要出的牌是不是 正常的(写一个类专门验证)

接着再判断将要出的牌是否比最大出牌者的牌要大!如何 判断?自己想想,当然单纯大肯定不行, 如果不是炸弹、王炸,这种牌,还得长度一样,出牌类型一样才允许出牌哦。

8、 出牌完判断是否结束。。。然后不断地循环这个过程。完事。

你可能感兴趣的:(个人见解,Unity3d)