接下来需要做一个简单的给三家发牌的逻辑
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的特性, 会导致互相影响.