151 lines
5.6 KiB
Go
151 lines
5.6 KiB
Go
package dezhoupoker
|
||
|
||
import "time"
|
||
|
||
////////////////////////////////////////////////////////////////////////////////
|
||
//德州扑克
|
||
////////////////////////////////////////////////////////////////////////////////
|
||
//房间类型
|
||
const (
|
||
RoomMode_Normal int = iota //德州
|
||
RoomMode_FiveXTwo //德州五选二
|
||
RoomMode_Max
|
||
)
|
||
const (
|
||
MaxNumOfPlayer int32 = 9 //最多人数
|
||
MaxNumOfPlayerTwo int32 = 8 //最多人数(五选二)
|
||
HandCardNum int32 = 2 //手牌数量
|
||
CommunityCardNum int32 = 5 //公牌
|
||
TotalCardNum int32 = HandCardNum + CommunityCardNum
|
||
FlopCardNum int32 = 3 //翻牌
|
||
TurnCardPos int32 = FlopCardNum + 1 //转牌位置
|
||
RiverCardPos int32 = TurnCardPos + 1 //河牌位置
|
||
|
||
ANTE_SCORE int32 = 0 //前注
|
||
)
|
||
const (
|
||
BEHIND_CARD int32 = 55
|
||
INVALIDE_POS int32 = -1
|
||
INVALIDE_CARD int32 = -1
|
||
)
|
||
|
||
//dz创建房间的参数信息
|
||
const (
|
||
DZSceneParam_MaxCoin int = iota //
|
||
|
||
DZThreeSceneParam_Max
|
||
)
|
||
|
||
const (
|
||
RobotGameTimesMin int32 = 5 //机器人参与游戏次数下限
|
||
RobotGameTimesMax int32 = 10 //机器人参与游戏次数上限
|
||
)
|
||
|
||
const (
|
||
CardType_HandCard int32 = iota //公牌
|
||
CardType_FlopCard
|
||
CardType_TrunCard
|
||
CardType_RiverCard
|
||
)
|
||
|
||
const (
|
||
RoleType_Player int32 = iota //普通玩家
|
||
RoleType_Banker
|
||
RoleType_SmallBlind
|
||
RoleType_BigBlind
|
||
)
|
||
|
||
//玩家位置
|
||
const (
|
||
Pos_UTG int32 = iota //Under the gun 枪口
|
||
Pos_UTG1 //Under the gun +1 枪口+1
|
||
Pos_MP1 //Middle position 1 中位1
|
||
Pos_MP2 //Middle position 2 中位2
|
||
Pos_HJ //Hijack 劫位
|
||
Pos_CO //Cut off 关位
|
||
Pos_BTN //Button 庄家
|
||
Pos_SB //Small blind 小盲位
|
||
Pos_BB //Big blind 大盲位
|
||
)
|
||
|
||
var PosDesc = []string{"枪口", "枪口+1", "中位1", "中位2", "劫位", "关位", "庄位", "小盲位", "大盲位"}
|
||
|
||
const (
|
||
DezhouPokerOffsetTimeout = 1 //结算等待时间
|
||
|
||
DezhouPokerWaitPlayerTimeout = time.Second * 10 //等待真人时间
|
||
DezhouPokerWaitStartTimeout = time.Second * 3 //延迟开始时间
|
||
//DezhouPokerSelectBankerAndBlindsTimeout = time.Second * 2 //选庄时间
|
||
DezhouPokerAntTimeout = time.Second * 1 //前注时间
|
||
//DezhouPokerBlindsTimeout = time.Second * 0 //大小盲下注时间
|
||
DezhouPokerHandCardTimeout = time.Second * 1 //发手牌等待时间
|
||
DezhouPokerSelectCardTimeout = time.Second * 10 //选手牌等待时间
|
||
|
||
DezhouPokerHandCardBetTimeout = time.Second * 15 * DezhouPokerOffsetTimeout //发手牌等待时间
|
||
DezhouPokerFlopTimeout = time.Second * 1 //发3张翻牌等待时间
|
||
DezhouPokerFlopBetTimeout = time.Second * 15 * DezhouPokerOffsetTimeout //发3张翻牌等待时间
|
||
DezhouPokerTurnTimeout = time.Second * 1 //发1张转牌等待时间
|
||
DezhouPokerTurnBetTimeout = time.Second * 15 * DezhouPokerOffsetTimeout //发1张转牌等待时间
|
||
DezhouPokerRiverTimeout = time.Second * 1 //发1张转牌等待时间
|
||
DezhouPokerRiverBetTimeout = time.Second * 15 * DezhouPokerOffsetTimeout //发1张转牌等待时间
|
||
//DezhouPokerBilledTimeout = time.Second * 10//结算等待时间
|
||
DezhouPokerBilledTimeoutNormal = time.Second * 2 //结算等待时间
|
||
DezhouPokerBilledTimeoutMiddle = time.Second * 1 //结算等待时间
|
||
DezhouPokerBilledTimeoutAllIn = time.Second * 1 //补牌
|
||
DezhouPokerBilledTimeoutPerPlayerBilled = time.Second * 2 //等待结束
|
||
DezhouPokerBilledTimeoutWaitCheckCard = time.Second * 3 //结算结束,预留一点时间让玩家能看清牌型
|
||
)
|
||
|
||
//场景状态
|
||
const (
|
||
DezhouPokerSceneStateWaitPlayer int = iota //0 人数不够开启游戏,等待玩家上线
|
||
DezhouPokerSceneStateWaitStart //1 人数够开启游戏, 延迟X秒开始游戏
|
||
DezhouPokerSceneStateSelectBankerAndBlinds //2 选庄家和大小盲
|
||
|
||
DezhouPokerSceneStateAnte //3 下前注0,预留
|
||
DezhouPokerSceneStateBlinds //4 下大小盲
|
||
|
||
DezhouPokerSceneStateHandCard //5 发手牌
|
||
DezhouPokerSceneStateSelectCard //6 选牌状态
|
||
DezhouPokerSceneStateHandCardBet //7 手牌下注1
|
||
|
||
DezhouPokerSceneStateFlop //8 发3张翻牌
|
||
DezhouPokerSceneStateFlopBet //9 翻牌下注2
|
||
|
||
DezhouPokerSceneStateTurn //10 转牌
|
||
DezhouPokerSceneStateTurnBet //11 转牌下注3
|
||
|
||
DezhouPokerSceneStateRiver //12 河牌
|
||
DezhouPokerSceneStateRiverBet //13 河牌下注4
|
||
|
||
DezhouPokerSceneStateBilled //14 结算方式选择
|
||
DezhouPokerSceneStateBilledNormal //15 正常结算
|
||
DezhouPokerSceneStateBilledMiddle //16 半路结算 还剩一个未弃牌的玩家
|
||
DezhouPokerSceneStateBilledAllIn //17 全部allin, 或者只有一个未Allin
|
||
|
||
DezhouPokerSceneStateGameEnd //18 结算状态
|
||
|
||
DezhouPokerSceneStateMax
|
||
)
|
||
|
||
//玩家操作。当轮第一个下注的是加注。大小盲 不显示任何动作
|
||
const (
|
||
DezhouPokerPlayerOpNull int32 = iota //0,初始值
|
||
DezhouPokerPlayerOpCallAntes //1,下底注
|
||
DezhouPokerPlayerOpCall //2,跟进
|
||
DezhouPokerPlayerOpFold //3,弃牌
|
||
DezhouPokerPlayerOpCheck //4,让牌
|
||
DezhouPokerPlayerOpRaise //5,加注
|
||
DezhouPokerPlayerOpAllIn //6,全压
|
||
DezhouPokerPlayerOpSmallBlind //7,小盲
|
||
DezhouPokerPlayerOpBigBlind //8,大盲
|
||
|
||
DezhouPokerPlayerOpAutoBuyIn //9,自动买入 买入数量
|
||
DezhouPokerPlayerOpAutoBuyInCfg //10,请求自动买入配置
|
||
DezhouPokerPlayerOpSelectCard //11,选牌
|
||
|
||
//DezhouPokerPlayerOpSitDown //坐下
|
||
//DezhouPokerPlayerOpStandUp //站起
|
||
|
||
)
|