# game-service `game-service` 承接 HyApp 的游戏启动、订单账务、自研游戏匹配结算、后台游戏配置和统计 outbox。 ## 自研游戏边界 - `dice`:自研骰子,复用 `game_dice_matches`,平局不结算并继续重投。 - `rock`:自研石头剪刀布,复用 `game_dice_matches`,平局退款并结算为 draw。 - `room-rps`:语音房内猜拳,在 `internal/service/roomrps`,有独立状态机和 IM 事件,不参与自研游戏机器人策略。 ## 机器人职责边界 - `robot-service` 负责机器人账号池:登记、状态、随机抽取。 - `game-service` 负责机器人局策略:档位奖池、新用户保护、成熟用户自然期目标胜率、奖池水位、风控准入、`forced_result` 和策略日志。 - 旧 `robot_user_win_rate_percent` 只允许作为线上遗留数据库列存在,server/admin/API 不读写、不暴露、不做兼容分支。 ## 自研机器人策略 公共策略在 `internal/domain/selfgame`: - 每个 `app_code + game_id + stake_coin` 使用独立档位奖池。 - 黑色水位不抽机器人,用户继续等待真人匹配。 - 新用户保护不读取成熟用户正常随机逻辑,不读取旧胜率字段。 - 新用户连输保护统计真人局和机器人局的已结算非平局结果,但只在下一次机器人补位局写 `forced_result`。 - 成熟用户不做定向消耗,不按连赢、净赢或下注行为输出 `force_human_lose`。 - 成熟用户自然期目标胜率由后台配置,默认 53%;配置 50% 时完全自然随机,高于 50% 时只向上补正用户赢且不消耗新手补贴额度。 - `rock` 平局不计有效机器人局,不消耗保护局数,不消耗个人补贴额度。 - 每次策略决策写 `game_self_game_strategy_logs`,用于后台复盘和风控解释。 ## 关键数据表 - `game_self_game_stake_pools`:自研游戏档位奖池。 - `game_self_game_stake_pool_transactions`:档位奖池流水。 - `game_self_game_new_user_policies`:新用户保护策略。 - `game_self_game_user_protection_states`:用户保护状态。 - `game_self_game_user_protection_events`:保护消费幂等事件。 - `game_self_game_risk_rules`:风控分层规则。 - `game_self_game_strategy_logs`:机器人策略决策日志。 ## 验证 常用验证命令: ```bash go test ./services/game-service/internal/domain/selfgame ./services/game-service/internal/service/dice ./services/game-service/internal/storage/mysql go test ./services/game-service/... ```