tienlen纯随机发牌
This commit is contained in:
parent
7e52629091
commit
1e426d20a1
|
@ -557,6 +557,63 @@ func (this *TienLenSceneData) GetFreeGameSceneType() int32 {
|
||||||
return this.GetSceneType()
|
return this.GetSceneType()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 纯随机发牌
|
||||||
|
func (this *TienLenSceneData) RandomCards() {
|
||||||
|
allCards := []int32{}
|
||||||
|
for i := 0; i < rule.POKER_CNT; i++ {
|
||||||
|
allCards = append(allCards, int32(i))
|
||||||
|
}
|
||||||
|
for i := 0; i < 5; i++ {
|
||||||
|
shuffleInts(allCards)
|
||||||
|
}
|
||||||
|
fmt.Println("打乱后的切片:", allCards)
|
||||||
|
cardss := map[int][]int32{}
|
||||||
|
for i, card := range allCards {
|
||||||
|
if card != rule.InvalideCard {
|
||||||
|
index := i / 13
|
||||||
|
cardss[index] = append(cardss[index], int32(card))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
minCard := int32(999)
|
||||||
|
for i, seat := range this.seats {
|
||||||
|
if seat != nil && seat.IsGameing() {
|
||||||
|
for index, card := range cardss[i] {
|
||||||
|
seat.cards[index] = card
|
||||||
|
if rule.Value(card) < rule.Value(minCard) {
|
||||||
|
this.startOpPos = int32(seat.GetPos())
|
||||||
|
minCard = card
|
||||||
|
this.curMinCard = minCard
|
||||||
|
} else if rule.Value(card) == rule.Value(minCard) {
|
||||||
|
if rule.Color(card) < rule.Color(minCard) {
|
||||||
|
this.startOpPos = int32(seat.GetPos())
|
||||||
|
minCard = card
|
||||||
|
this.curMinCard = minCard
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pack := &tienlen.SCTienLenCard{}
|
||||||
|
for j := int32(0); j < rule.HandCardNum; j++ {
|
||||||
|
pack.Cards = append(pack.Cards, seat.cards[j])
|
||||||
|
}
|
||||||
|
pack.IsOutRecord = seat.CanUseRecordItem()
|
||||||
|
proto.SetDefaults(pack)
|
||||||
|
seat.SendToClient(int(tienlen.TienLenPacketID_PACKET_SCTienLenCard), pack)
|
||||||
|
logger.Logger.Trace("SnId: ", seat.SnId, ";SCTienLenCard: ", pack.Cards)
|
||||||
|
|
||||||
|
pack.SnId = seat.SnId
|
||||||
|
this.BroadcastToAudience(int(tienlen.TienLenPacketID_PACKET_SCTienLenCard), pack)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
func shuffleInts(ints []int32) {
|
||||||
|
// 使用当前时间作为随机种子
|
||||||
|
rand.Seed(time.Now().UnixNano())
|
||||||
|
for i := len(ints) - 1; i > 0; i-- {
|
||||||
|
j := rand.Intn(i + 1)
|
||||||
|
ints[i], ints[j] = ints[j], ints[i]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// SendHandCard_Match 发牌
|
// SendHandCard_Match 发牌
|
||||||
// 比赛场发牌
|
// 比赛场发牌
|
||||||
// 纯真人,随机发牌
|
// 纯真人,随机发牌
|
||||||
|
|
|
@ -991,7 +991,7 @@ func (this *SceneHandCardStateTienLen) OnEnter(s *base.Scene) {
|
||||||
if rule.TestOpen {
|
if rule.TestOpen {
|
||||||
sceneEx.SendHandCardTest()
|
sceneEx.SendHandCardTest()
|
||||||
} else {
|
} else {
|
||||||
if len(sceneEx.testPokers) > 1 {
|
/*if len(sceneEx.testPokers) > 1 {
|
||||||
sceneEx.SendHandCardOdds()
|
sceneEx.SendHandCardOdds()
|
||||||
} else {
|
} else {
|
||||||
if sceneEx.IsMatchScene() || sceneEx.IsCustom() {
|
if sceneEx.IsMatchScene() || sceneEx.IsCustom() {
|
||||||
|
@ -999,6 +999,16 @@ func (this *SceneHandCardStateTienLen) OnEnter(s *base.Scene) {
|
||||||
} else {
|
} else {
|
||||||
sceneEx.SendHandCardOdds()
|
sceneEx.SendHandCardOdds()
|
||||||
}
|
}
|
||||||
|
}*/
|
||||||
|
|
||||||
|
if sceneEx.WGCreateScene.GetCloseCtrl() {
|
||||||
|
sceneEx.RandomCards()
|
||||||
|
} else {
|
||||||
|
if sceneEx.IsMatchScene() || sceneEx.IsCustom() {
|
||||||
|
sceneEx.SendHandCard_Match()
|
||||||
|
} else {
|
||||||
|
sceneEx.SendHandCardOdds()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue