diff --git a/src/server/game/UnitTest.go b/src/server/game/UnitTest.go index 2a8ead48..85d74ca2 100644 --- a/src/server/game/UnitTest.go +++ b/src/server/game/UnitTest.go @@ -45,7 +45,7 @@ func UnitOrder(p *Player) error { ChessMod := p.PlayMod.getChessMod() BaseMod := p.PlayMod.getBaseMod() OrderMod.OrderList = make(map[int]order.Order) - for i := 0; i < 1000; i++ { + for i := 0; i < 5000; i++ { OrderMod.ChessPool = nil OrderMod.EmitShuffle = nil err := OrderMod.CreateNormalOrder(BaseMod.GetLevel(), ChessMod.GetOrderEmit(), BaseMod.GetEnergyMul()) @@ -54,6 +54,61 @@ func UnitOrder(p *Player) error { } } p.FormatOrderReward() + NumMap := make(map[int]int) + for _, v := range OrderMod.OrderList { + NumMap[len(v.MergeId)]++ + } + sum0 := 0 + for _, v := range NumMap { + sum0 += v + } + for k, v := range NumMap { + fmt.Printf("棋子数量: %d, 占比: %.2f%% \n", k, float64(v)/float64(sum0)*100) + } + DiffMap := make(map[int]int) + for _, v := range OrderMod.OrderList { + DiffMap[v.Diff]++ + } + sum := 0 + for _, v := range DiffMap { + sum += v + } + for k, v := range DiffMap { + fmt.Printf("难度等级: %d, 占比: %.2f%% \n", k, float64(v)/float64(sum)*100) + } + AP := make(map[string]int, 0) + BP := make(map[string]int, 0) + for _, v := range OrderMod.OrderList { + for _, id := range v.MergeId { + Color := mergeDataCfg.GetColorById(id) + if Color == "Bath Toys" { + AP["Bath Toys"] += 1 + } + if Color == "Cleaning Tools" { + AP["Cleaning Tools"] += 1 + } + if Color == "Baby Toy" { + BP["Baby Toy"] += 1 + } + if Color == "Books And Picture Books" { + BP["Books And Picture Books"] += 1 + } + } + } + sum1 := 0 + for _, v := range AP { + sum1 += v + } + sum2 := 0 + for _, v := range BP { + sum2 += v + } + for k, v := range AP { + fmt.Printf("%s %.2f\n", k, float64(v)/float64(sum1)*100) + } + for k, v := range BP { + fmt.Printf("%s %.2f\n", k, float64(v)/float64(sum2)*100) + } return nil } diff --git a/src/server/game/mod/order/Order.go b/src/server/game/mod/order/Order.go index add9cf5d..e69c5b60 100644 --- a/src/server/game/mod/order/Order.go +++ b/src/server/game/mod/order/Order.go @@ -2,7 +2,6 @@ package order import ( "fmt" - "log" "server/GoUtil" limitedTimeEventCfg "server/conf/limitedTimeEvent" mergeDataCfg "server/conf/mergeData" @@ -431,7 +430,7 @@ func (o *OrderMod) CreateNormalOrder(lv int, Emit []int, EnergyMul int) error { } break } - log.Printf("CreateNormalOrder: %v, %v, %v", mergeList, OrderDiff, err) + //log.Printf("CreateNormalOrder: %v, %v, %v", mergeList, OrderDiff, err) o.addOrder(mergeList, OrderDiff, Common_type) return nil } diff --git a/src/server/game/mod/order/OrderFunc.go b/src/server/game/mod/order/OrderFunc.go index c1387ad8..9fdc7bd7 100644 --- a/src/server/game/mod/order/OrderFunc.go +++ b/src/server/game/mod/order/OrderFunc.go @@ -145,15 +145,46 @@ func getChessDiff(ChessNum, OrderDiff, OrderN int) map[int]int { func getChessLv(Min, Max, Diff int) int { Start := Min End := Max - switch Diff { - case DIFF_LOW: - End = Min + (Max-Min+1)/3 - 1 - case DIFF_MID: - Start = Min + (Max-Min+1)/3 - End = Min + (Max-Min+1)/3*2 - 1 - case DIFF_HIGH: - Start = Min + (Max-Min+1)/3*2 + if Max-Min >= 5 { + switch Diff { + case DIFF_LOW: + End = Min + (Max-Min+1)/3 - 1 + case DIFF_MID: + Start = Min + (Max-Min+1)/3 + End = Min + (Max-Min+1)/3*2 - 1 + case DIFF_HIGH: + Start = Min + (Max-Min+1)/3*2 + } } + if Max-Min == 2 { + Start = Max - Diff + 1 + End = Start + } + if Max-Min == 3 { + switch Diff { + case DIFF_LOW: + End = Min + 1 + case DIFF_MID: + Start = Min + 2 + End = Min + 2 + case DIFF_HIGH: + Start = Min + 3 + End = Min + 3 + } + } + if Max-Min == 4 { + switch Diff { + case DIFF_LOW: + End = Min + 1 + case DIFF_MID: + Start = Min + 2 + End = Min + 3 + case DIFF_HIGH: + Start = Min + 4 + End = Min + 4 + } + } + Start = max(Min, Start) End = max(Start, End) End = min(Max, End)