终于到了最重要(其实也是最不重要)的打牌环节了.
打牌的逻辑其实很简单
选完地主以后 由地主开牌
判断手牌是否消耗完毕 ->
-> 开牌 -> 有人跟牌
-> 无人跟牌 -> 循环一圈会到自己 -> 本轮结束
-> 游戏结束
// playcard 出牌阶段
func (self *TDDZ) playcard() {
// 检查是否还有手牌
if len(self.pHandCardList[self.nTurnPosition-1]) == 0 {
log.Println("手牌打完, 游戏结束")
return
}
if self.nCardType == 0 {
// 1. 如果当前轮没有类型, 表示才刚开始出牌, 可以随机选一张牌型来出, 其他人只能跟着这个牌型继续打, 除非使用炸弹
self.roundStart()
} else if self.nLargePosition == self.nTurnPosition {
// 2. 如果最大的牌的位置. 和当前要出牌的人的位置一样. 表示他出的牌过了一轮没有人要的起, 那么下一轮开始
self.roundEnd()
} else {
// 3. 跟牌
self.roundFollow()
}
// 继续打牌
self.playcard()
}
流程大致是上面的流程, 因为没做客户端,所以逻辑都是超时自动出一张单 和 超时自动过牌
逻辑还算是比较简单. 因为涉及到客户端操作. 所以暂时都不写任何东西
弄上临时的逻辑对付一下
// 回合开始
func (self *TDDZ) roundStart() {
log.Pr