一、斗地主规则说明:
斗地主出牌类型(牌数范围):
单牌(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、 出牌完判断是否结束。。。然后不断地循环这个过程。完事。
热门工具 换一换