golang制作一个斗地主游戏服务器[3]:斗地主给其他三家玩家发牌

接下来需要做一个简单的给三家发牌的逻辑

package main

// TDDZ -----------------------------------------------------
// 斗地主执行
type TDDZ struct {
	pHandCardList1 TCards //第1家的手牌
	pHandCardList2 TCards //第2家的手牌
	pHandCardList3 TCards //第3家的手牌
	pUnderCardList TCards // 3张底牌
}

// NewDDZ 新建一个斗地主类
func NewDDZ() *TDDZ {
	p := &TDDZ{}
	return p
}

// dealcard 发牌阶段
func (self *TDDZ) dealcard() {
	// 需要洗一副牌, 并且发送给三个玩家
	pCardHeap := NewCards(54)
	pCardHeap.print()
//♠J,♠3,♠6,♥Q,♠2,大王,♥5,小王,♥9,♥8,♥T,♠Q,♠7,♣5,♥A,♥4,♦K,♣3,♣2,♦2,♠8,♦3,♠9,♣K,♣Q,♣T,♣7,♥6,♠K,♣9,♦4,♥3,♦J,♠5,♦7,♥J,♦6,♦Q,♣6,♥7,♦T,♠T,♥2,♣8,♦8,♦9,♠4,♣A,♣J,♠A,♥K,♦A,♦5,♣4,


	// 需要给三家每一家发17张牌
	self.pHandCardList1 = make(TCards, 17)
	self.pHandCardList2 = make(TCards, 17)
	self.pHandCardList3 = make(TCards, 17)
	self.pUnderCardList = make(TCards, 3)

	copy(self.pHandCardList1, pCardHeap[0:17])
	copy(self.pHandCardList2, pCardHeap[17:34])
	copy(self.pHandCardList3, pCardHeap[34:51])
	copy(self.pUnderCardList, pCardHeap[51:54])

	// 发牌完毕给大家手上排个序好看些
	self.pHandCardList1.sort()
	self.pHandCardList2.sort()
	self.pHandCardList3.sort()
	self.pUnderCardList.sort()

	self.pHandCardList1.print()// ♠3,♥4,♣5,♥5,♠6,♠7,♥8,♥9,♥T,♠J,♥Q,♠Q,♦K,♥A,♠2,小王,大王,
	self.pHandCardList2.print()// ♦3,♣3,♥3,♦4,♠5,♥6,♣7,♠8,♣9,♠9,♣T,♦J,♣Q,♣K,♠K,♦2,♣2,
	self.pHandCardList3.print()// ♠4,♦6,♣6,♦7,♥7,♦8,♣8,♦9,♦T,♠T,♣J,♥J,♦Q,♥K,♣A,♠A,♥2,
	self.pUnderCardList.print()// ♣4,♦5,♦A,
}

这里一定要 copy 出来, 不然排序的时候,  golang 自己slice的特性, 会导致互相影响.

猜你喜欢

转载自blog.csdn.net/warrially/article/details/88562884