game_sync/gamerule/thirteen/constants.go

72 lines
1.8 KiB
Go

package thirteen
import "time"
var (
SpecialScore = []int64{0, 108, 36, 0, 20, 0, 0, 0, 10, 0, 0, 4, 4, 3}
)
// 房间的参数
const (
ParamMaxPlayerNum = 0 // 最大人数
ParamAuto = 1 // 自动摆牌
ParamBaiPai = 2 // 摆牌时间
ParamBaseScore = 3 // 游戏底分
ParamLaiZi = 4 // 是否有癞子
)
// 场景状态
const (
ThirteenWaterSceneStateWait int = iota //等待状态
ThirteenWaterSceneStateStart //开始倒计时
ThirteenWaterSceneStateSendCards //开始发牌
ThirteenWaterSceneStateOptCard //选牌理牌
ThirteenWaterSceneStateShowCards //轮流看牌
ThirteenWaterSceneStateHit //打枪
ThirteenWaterSceneStateBilled //结算
ThirteenWaterSceneStateMax
)
// 玩家操作
const (
ThirteenWaterPlayerOpMS = 1 //确定牌
ThirteenWaterPlayerOpStandup = 2 //站起标记
ThirteenWaterPlayerOpTest = 3 // test
ThirteenWaterPlayerOpReset = 4 // 重新选牌
)
const (
ThirteenWaterSceneWaitTimeout = time.Second * 2 //等待倒计时
ThirteenWaterStartTimeout = time.Second * 3 //开始倒计时
ThirteenWaterSendCardsTimeout = time.Second * 3 //开始发牌
ThirteenWaterOptCardTimeout = time.Second * 30 //30选牌换牌
ThirteenWaterShowCardsTimeout = time.Second * 1 //轮流看牌时间
ThirteenWaterHitTimeout = time.Second * 2 //打枪
ThirteenWaterBilledTimeout = time.Second * 5 //结算
)
func GetMaxCard(allGroup map[int]*Group) *Group {
var ret *Group
max := -1000
for k, v := range allGroup {
sum := 0
if k >= 1000000 {
ret = v
break
}
a := k / 10000
b := (k - a*10000) / 100
c := k - a*10000 - b*100
s := []int{a, b, c}
for _, m := range s {
if m >= 1 && m <= 20 {
sum += 20 - m
}
}
if max <= sum {
max = sum
ret = v
}
}
return ret
}