golang制作一个斗地主游戏服务器[6]:打牌和跟牌

终于到了最重要(其实也是最不重要)的打牌环节了.

打牌的逻辑其实很简单

选完地主以后 由地主开牌

 

判断手牌是否消耗完毕 ->

-> 开牌 ->  有人跟牌 

              -> 无人跟牌 -> 循环一圈会到自己 -> 本轮结束

-> 游戏结束


// 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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值