Skip to content

Latest commit

 

History

History
197 lines (161 loc) · 8.54 KB

File metadata and controls

197 lines (161 loc) · 8.54 KB

狼人杀(Werewolf)游戏规则详解(AI 专用版)

本文档旨在为 AI 代理(Agent)提供一套结构化、逻辑严密且无歧义的狼人杀游戏规则说明。适用于 AI 作为玩家参与游戏,或作为法官(Moderator)主持游戏。


1. 游戏概述 (Game Overview)

  • 游戏类型:社交推理、隐藏身份、阵营对抗。
  • 玩家人数:通常为 6-12 人(本规则以标准的 12 人局为例)。
  • 阵营划分
    1. 狼人阵营 (Werewolf Team):隐藏在好人中,夜间击杀好人。
    2. 好人阵营 (Good Team)
      • 神职 (Gods):拥有特殊技能。
      • 平民 (Villagers):无特殊技能,依靠推理投票。
  • 胜利条件
    • 狼人胜:屠边规则(常见)—— 杀死所有神职 杀死所有平民;屠城规则 —— 杀死所有好人。
    • 好人胜:放逐所有狼人。

2. 游戏流程 (Game Flow)

游戏循环进行,直到某一方达成胜利条件。每个循环包含 夜晚 (Night)白天 (Day) 两个阶段。

2.1 夜晚阶段 (Night Phase)

  • 状态:所有玩家闭眼,信息不公开。
  • 行动顺序(典型顺序,可根据板子调整):
    1. 狼人行动:共同商量并选择一名玩家击杀(kill_target)。若狼人内部意见不一,通常默认空刀或随机,AI 主持需 predefined 规则。
    2. 守卫行动(若有):选择一名玩家守护(protect_target),不可连续两晚守护同一人。
    3. 女巫行动(若有):知晓当晚被击杀者。可选择使用解药(save_target)或毒药(poison_target)。同一晚不能同时使用两瓶药。
    4. 预言家行动(若有):查验一名玩家的身份(返回 WerewolfGood)。
    5. 其他神职行动:如猎人、白痴、骑士等(视具体板子而定)。
  • 结算逻辑
    • kill_target == protect_target,则无人死亡(平安夜)。
    • kill_targetsave_target 救赎,则无人死亡。
    • poison_target 存在,该玩家死亡。
    • 死亡信息在白天公布。

2.2 白天阶段 (Day Phase)

  1. 公布昨夜情况:法官宣布死亡玩家名单(或宣布平安夜)。
  2. 遗言 (Last Words)
    • 首夜死亡玩家通常有遗言。
    • 后续死亡玩家是否有遗言取决于规则(通常无,或仅被放逐者有)。
  3. 竞选警长 (Sheriff Election)(可选但常见):
    • 玩家竞选,发言,投票选出警长。
    • 警长拥有 1.5 票投票权,且决定发言顺序。
    • 警长死亡可移交警徽或撕毁警徽。
  4. 公聊讨论 (Discussion):玩家轮流发言,分析局势。
  5. 放逐投票 (Voting)
    • 所有存活玩家投票选出一名玩家放逐。
    • 得票最多者出局(若平票,通常进入 PK 发言后再投,或无人出局)。
    • 被放逐者通常可留遗言。
  6. 进入夜晚:重复上述流程。

3. 角色定义与技能 (Roles & Abilities)

AI 需准确理解每个角色的技能触发时机、限制及优先级。

3.1 狼人阵营

  • 狼人 (Werewolf)
    • 技能:每晚共同击杀一名玩家。
    • 限制:不能自刀(除非战术需要,规则允许),必须达成一致。
    • 胜利条件:达成屠边或屠城。

3.2 好人阵营 - 神职

  • 预言家 (Seer)
    • 技能:每晚查验一名玩家的具体身份(通常返回“狼人”或“好人”,部分规则返回具体角色)。
    • 注意:查验结果绝对真实。
  • 女巫 (Witch)
    • 技能:拥有一瓶解药(救活当晚死者)和一瓶毒药(毒死任意存活玩家)。
    • 限制:全程每瓶药只能用一次;同一晚不能双用;通常首夜可自救(视规则而定)。
  • 猎人 (Hunter)
    • 技能:死亡时(除被毒杀外)可开枪带走一名玩家。
    • 限制:被女巫毒杀不能开枪;殉情(恋人)不能开枪。
  • 守卫 (Guard)
    • 技能:每晚守护一名玩家免受狼人击杀。
    • 限制:不能连续两晚守护同一人;守护与女巫解药同时作用于同一人通常导致死亡(“奶穿”规则,需明确配置)。
  • 白痴 (Idiot)
    • 技能:被放逐时翻牌免疫死亡,但失去投票权。
  • 骑士 (Knight)
    • 技能:白天发言阶段可随时翻牌决斗一名玩家。若对方是狼人,对方死亡;若对方是好人,骑士死亡。
    • 限制:通常仅限一次。

3.3 好人阵营 - 平民

  • 平民 (Villager)
    • 技能:无。
    • 任务:通过发言逻辑找出狼人,投票放逐。

4. 状态管理与逻辑判定 (State Management for AI)

若 AI 作为法官或玩家,需维护以下核心状态变量:

4.1 全局状态 (Global State)

{
  "game_status": "Night|Day|GameEnd",
  "day_count": int,
  "alive_players": [player_id, ...],
  "dead_players": [player_id, ...],
  "roles_config": { "werewolf": 4, "seer": 1, "witch": 1, "villager": 4, ... },
  "winner": null
}

4.2 玩家状态 (Player State)

{
  "player_id": "P1",
  "role": "Werewolf",
  "is_alive": true,
  "is_poisoned": false,
  "is_protected": false,
  "votes_received": int,
  "has_used_skill": bool
}

4.3 技能优先级与冲突解决 (Priority & Conflicts)

  1. 死亡判定顺序
    • 骑士决斗 > 女巫毒杀 > 狼人击杀 vs 守卫守护。
  2. 守护与解药冲突
    • Guard 守护了 X,且 Witch 救了 X(针对狼刀):
      • 规则 A(常见):X 存活。
      • 规则 B(奶穿):X 死亡。
      • AI 需在游戏初始化时确认此规则。
  3. 猎人触发
    • 检查死亡原因 death_cause。若 death_cause == Poison,则禁用猎人技能。

5. AI 行为指南 (AI Behavior Guidelines)

5.1 若 AI 作为玩家 (AI as Player)

  • 信息隐藏:严禁在日志或非公开渠道泄露自己的身份牌。
  • 逻辑推理
    • 基于公开发言构建逻辑链。
    • 识别矛盾点(如:两人跳预言家,必有一狼)。
    • 评估概率(如:银水大概率是好人,但可能是狼人自刀)。
  • 发言风格
    • 模拟人类情感与不确定性,避免过于机械的确定性陈述(除非是查验信息)。
    • 遵守发言时限。
  • 阵营协作(若为狼人):
    • 与队友配合打掩护,避免同时暴露。
    • 伪装神职或平民。

5.2 若 AI 作为法官 (AI as Moderator)

  • 公正性:严格按照规则结算,不偏袒任何一方。
  • 信息隔离:确保玩家只能获取其应得的信息(如女巫只知道当晚死谁,不知道守卫守谁)。
  • 流程控制
    • 处理超时(Timeout)。
    • 处理无效输入(如已死玩家投票)。
    • 明确宣布结算结果(“昨晚是平安夜”或“玩家 X 死亡”)。
  • 状态同步:实时更新存活列表和胜利条件判定。

6. 特殊术语解释 (Glossary)

  • 金水 (Golden Water):预言家查验的好人。
  • 查杀 (Kill Check):预言家查验的狼人。
  • 银水 (Silver Water):女巫救起的人(大概率好人)。
  • 跳 (Jump):声称自己是某个身份(如“跳预言家”)。
  • 悍跳 (Hard Jump):狼人假装神职。
  • 自爆 (Self-Explosion):狼人白天翻牌承认身份并立即死亡,终止当前白天发言流程,直接进入夜晚。
  • PK:平票对决。
  • 归票:警长或权威玩家号召大家投票给某人。

7. 胜利判定伪代码 (Win Condition Pseudocode)

def check_win_condition(alive_players, roles):
    werewolf_count = count(alive_players, role="Werewolf")
    villager_count = count(alive_players, role="Villager")
    god_count = count(alive_players, role=["Seer", "Witch", "Hunter", "Guard"])
    
    if werewolf_count == 0:
        return "Good_Win"
    
    # 屠边规则
    if villager_count == 0:
        return "Werewolf_Win"
    if god_count == 0:
        return "Werewolf_Win"
        
    return "Game_Continue"

此规则集涵盖了狼人杀的核心机制与 AI 实现所需的逻辑细节。若需针对特定板子(如“预女猎白”、“狼王守卫”等)进行调整,请在此基础上修改角色配置与技能细节。