Compare commits

...

5 Commits

Author SHA1 Message Date
sk 3e853c2434 十三张手动摆牌不算特殊牌型 2024-12-09 16:14:31 +08:00
sk 343d2466ef 十三张调试发牌 2024-12-09 16:14:05 +08:00
DESKTOP-45ANQ2C\unis 3e97f97d38 十三水测试牌型比率 2024-12-09 16:13:40 +08:00
sk b56a874b36 修改十三张全垒打分数 2024-12-09 16:13:34 +08:00
sk 6adba98ddb 监控消息注册 2024-12-06 16:00:43 +08:00
4 changed files with 74 additions and 12 deletions

View File

@ -13,6 +13,7 @@ import (
"mongo.games.com/game/dbproxy/mongo"
"mongo.games.com/game/mgrsrv/api"
"mongo.games.com/game/model"
"mongo.games.com/game/webapi"
"mongo.games.com/goserver/core/basic"
"mongo.games.com/goserver/core/logger"
"mongo.games.com/goserver/core/netlib"
@ -119,6 +120,8 @@ func init() {
gob.Register(map[string]*model.APITransactStats{})
gob.Register(api.ApiStats{}) // 这里依赖了mgrsrv的结构体会导致mgrsrv初始化最好是把结构体放到一个公共包里不要两个不相关的程序有直接依赖
gob.Register(map[string]api.ApiStats{})
gob.Register(webapi.ApiStats{})
gob.Register(map[string]webapi.ApiStats{})
gob.Register(mgo.Stats{})
gob.Register(profile.TimeElement{})
gob.Register(map[string]profile.TimeElement{})

View File

@ -279,3 +279,69 @@ func TestLogic_CompareFive(t *testing.T) {
func TestLogic_IsDP(t *testing.T) {
}
func TestStatisticsPokerType(t *testing.T) {
poker := NewPokers(1, false)
if poker == nil {
return
}
logic := new(Logic)
loop := 2000000
allTypeData := make([]int, PokersTypeMax)
specialAllTypeData := make([]int, SpecialTypeMax)
totalCnt := 0
stotalCnt := 0
for i := 0; i < loop; i++ {
poker.Init()
cardsArr := make([][13]int, poker.N*4)
//cardsGroup := make([]map[int]*Group, poker.N*4)
for k := range cardsArr {
cardsArr[k] = poker.Get13Crads()
specialType := logic.GetSpecialType(cardsArr[k])
specialAllTypeData[specialType]++
stotalCnt++
//cardsGroup[k] = logic.Suggest(cardsArr[k])
//
//cardsO := GetMaxCard(cardsGroup[k])
//
//headType := logic.GetType(cardsO.Head[:])
//midType := logic.GetType(cardsO.Mid[:])
//endType := logic.GetType(cardsO.End[:])
//
//allTypeData[headType]++
//totalCnt++
//allTypeData[midType]++
//totalCnt++
//allTypeData[endType]++
//totalCnt++
//t.Logf("头牌类型:%v 中牌类型: %v 尾牌类型: %v \n", PokersTypeName[headType], PokersTypeName[midType], PokersTypeName[endType])
}
}
t.Logf("共%v次循环", loop)
//ccc := 0.0
for pType, count := range allTypeData {
percent := (float64(count) / float64(totalCnt)) * 100
// t.Logf("牌类型:%v 占百分比: %.2f \n", PokersTypeName[pType], percent)
t.Logf("%v %.2f\n", PokersTypeName[pType], percent)
//ccc += percent
}
t.Logf("特殊牌型共%v次循环", loop)
//ccc := 0.0
for pType, count := range specialAllTypeData {
percent := (float64(count) / float64(stotalCnt)) * 100
// t.Logf("牌类型:%v 占百分比: %.2f \n", PokersTypeName[pType], percent)
t.Logf("%v %.10f\n", SpecialTypeName[pType], percent)
//ccc += percent
}
}

View File

@ -1100,10 +1100,10 @@ func (this *SceneEx) CountScore() {
playerEx.winAllPlayers[k] += v
// 全垒打分数
if playerEx.Pos == this.isCanAllHitPos {
this.seats[k].score[5] -= v
this.seats[k].winAllPlayers[playerEx.Pos] -= v
playerEx.score[5] += v
playerEx.winAllPlayers[k] += v
this.seats[k].score[5] -= v * 2
this.seats[k].winAllPlayers[playerEx.Pos] -= v * 2
playerEx.score[5] += v * 2
playerEx.winAllPlayers[k] += v * 2
}
}
}

View File

@ -726,6 +726,7 @@ func (this *StateSendCard) OnEnter(s *base.Scene) {
} else {
sceneEx.testPokers = nil
v.cards = sceneEx.poker.Get13Crads()
v.allGroup = sceneEx.logic.Suggest(v.cards)
}
}
} else {
@ -866,10 +867,6 @@ func (this *StateOp) OnPlayerOp(s *base.Scene, p *base.Player, opcode int, param
copy(playerEx.cardsO.Mid[:], common.Int64Toint(params[3:8]))
copy(playerEx.cardsO.End[:], common.Int64Toint(params[8:]))
playerEx.cardsO.PokerType = 0
tp := sceneEx.logic.GetSpecialType(playerEx.cards)
if tp > 0 {
playerEx.cardsO.PokerType = tp
}
sceneEx.SendSelectCards(playerEx, 0, int64(opcode))
} else {
sceneEx.SendSelectCards(playerEx, int(params[0]), int64(opcode))
@ -916,10 +913,6 @@ func (this *StateOp) OnPlayerOp(s *base.Scene, p *base.Player, opcode int, param
copy(playerEx.preCardsO.Mid[:], common.Int64Toint(params[3:8]))
copy(playerEx.preCardsO.End[:], common.Int64Toint(params[8:]))
playerEx.preCardsO.PokerType = 0
tp := sceneEx.logic.GetSpecialType(playerEx.cards)
if tp > 0 {
playerEx.preCardsO.PokerType = tp
}
}
playerEx.SendToClient(int(thirteen.TWMmoPacketID_PACKET_SCThirteenPlayerOp), pack)