1. 元数据 (Metadata)

  • 文档类型: 游戏规则逻辑 / 流程控制
  • 适用领域: 游戏王 (Yu-Gi-Oh!)
  • 关键词: 优先权 (Priority), 诱发效果, 快速效果, 强制效果, 阶段结束, S:P小夜丸, 截止线理论
  • 摘要: 本文档描述了游戏阶段内优先权移交的完整逻辑。修正了关于“强制效果”的处理时机:强制效果既可以在玩家拥有优先权时主动处理,也可以被拖延至双方均放弃行动后的强制检查点处理。

2. 核心逻辑描述 (Core Logic)

此流程的核心在于区分**“主动行使权利”“系统强制执行”**。

详细步骤分解:

  1. 阶段开始与重置
    * 进入阶段或每次效果处理完毕后,首先必须确认:双方的诱发效果、快速效果是否都已发动并适用完毕?
    * 只有在所有已激活的效果链处理干净后,才进入优先权询问环节。
  2. 回合玩家 (TP) 的优先权 (自由时点)
    * 系统询问回合玩家:现在是否要进行处理?
    * 此时可做的操作
    • 发动任意可选效果(如快速效果)。
    • 主动处理该阶段必须处理的强制事项(如支付维持代价、处理结束阶段的强制效果)。
    • 选择
    • :进行处理 -> 处理完毕后返回步骤 1。
    • :回合玩家选择“拖延”或无事可做,放弃优先权,进入步骤 3。
  3. 非回合玩家 (NTP) 的优先权 (自由时点)
    * 系统询问非回合玩家:现在是否要进行处理?
    * 此时可做的操作:与回合玩家相同,包含发动可选效果或主动处理己方的强制事项。
    * 选择
    • :进行处理 -> 处理完毕后返回步骤 1。
    • :非回合玩家也放弃优先权。
  4. 强制效果检查 (The Deadline / 截止线)
    * 当双方连续放弃优先权时,系统进行“强制清算”。这里是处理那些被双方“拖延”至今的强制事项的最后时机。
    * 检查回合玩家:是否有必须做的事?
    • :被系统强制执行 -> 流程流转回步骤 2 (重置优先权)。
    • :继续检查对手。
    • 检查非回合玩家:是否有必须做的事?
    • :满足“双方都不想动且都无须动”,阶段结束
    • 是 (关键逻辑):此时优先权反转回回合玩家。流程强制跳转回步骤 2。这意味着即使非回合玩家有必须做的事,回合玩家依然有最后一次机会在那个效果处理前进行响应。

3. 典型案例分析 (Case Study)

案例:结束阶段的博弈 (S:P小夜丸 vs 烙印龙)

场景

  • 回合玩家 (TP):墓地有《烙印龙》想发动效果(任意效果)。
  • 非回合玩家 (NTP):除外的《S:P小夜丸》必须回场(强制处理)。

流程推演

  1. TP 优先权时点
    * TP 心想:“我想等你的小夜丸回场之后再炸它,所以我现在不发动《烙印龙》。”
    * TP 选择 放弃优先权
  2. NTP 优先权时点
    * NTP 手握《S:P小夜丸》的强制回场任务。他可以选择现在就处理。
    * 但 NTP 心想:“你在等我回场?那我偏不回,看你急不急。”
    * NTP 选择 放弃优先权(这是合法的,他选择了“拖延”强制事项)。
  3. 强制检查 (截止线)
    * 系统检测:双方都放弃了。
    * TP 有必做的吗? -> 无。
    * NTP 有必做的吗? -> ,《S:P小夜丸》必须回场。
  4. 效果处理
    * 因为无法再拖延,NTP 处理效果,《S:P小夜丸》回到场上。
  5. 流程重置
    * 因为发生了动作(怪兽回场),优先权状态重置。
    * TP 再次获得优先权。此时场上已有目标,TP 发动《烙印龙》效果。

结论:玩家可以利用规则,在拥有优先权时故意“不处理”强制事项,将其拖延至最后时刻,以博取更有利的战局。

4. 逻辑代码化 (Python Pseudo-Code)

def phase_processing_logic():
"""
模拟阶段内优先权移交逻辑 (含拖延战术支持)
"""
print("【阶段开始】")

while True:  
    \# 0\. 连锁处理检查  
    if pending\_chain\_blocks():  
        resolve\_chain()  
        continue

    \# 1\. 回合玩家优先权 (TP Priority)  
    \# TP 可以选择做任意事,或者把必做的事现在就做了  
    if TP.decides\_to\_act(include\_optional=True, include\_mandatory=True):  
        TP.execute\_action()  
        continue \# 动作发生,重置循环

    \# 2\. 非回合玩家优先权 (NTP Priority)  
    \# TP 放弃,轮到 NTP。NTP 同样可以选择现在处理必做的事,也可以选择拖着不做  
    if NTP.decides\_to\_act(include\_optional=True, include\_mandatory=True):  
        NTP.execute\_action()  
        continue \# 动作发生,重置循环

    \# \--- 截止线 (Deadline) \---  
    \# 双方都放弃了优先权 (都在拖延或无事可做)

    \# 3\. 强制清算:回合玩家  
    if TP.has\_mandatory\_action\_remaining():  
        TP.force\_execute\_mandatory()  
        continue \# 只要有动作,就重置循环,重新给双方机会

    \# 4\. 强制清算:非回合玩家  
    if NTP.has\_mandatory\_action\_remaining():  
        \# 特殊规则:NTP 的强制动作会导致优先权交还给 TP 确认  
        \# 但在这里的逻辑表现为:发现有事要做 \-\> 阻止阶段结束 \-\> 回到循环头部  
        print("检测到 NTP 有未处理的强制事项,优先权将重置")

        \# 在实际处理前,根据规则,这通常会触发新一轮优先权询问  
        \# 或者直接被视为必须执行的动作,执行后重置  
        NTP.force\_execute\_mandatory()   
        continue

    \# 5\. 阶段结束  
    print("【阶段结束】")  
    break

5. 常见问答 (Q\&A)

Q1: 我有一个“必须在结束阶段发动”的效果,我必须一进入结束阶段马上发动吗?

A: 不一定。当你拥有优先权时,你可以选择立即发动它;你也可以选择暂时不发动(放弃优先权),看看对手是否想动。只要在阶段结束前的“强制检查”环节之前处理掉即可。

Q2: 如果双方都有多个“必须做的事”,谁先处理?

A: > 1. 在优先权阶段:谁拥有优先权,谁就可以决定先处理自己手头的哪一件必做事项(或者都不处理,让给对方)。

2. 在强制检查阶段(双方都放弃后):必须先处理回合玩家的强制事项。等回合玩家的所有强制事项处理完后,再处理非回合玩家的。

Q3: 为什么即使对手有必做的事,优先权也会回到我(回合玩家)手里?

A: 只要游戏状态发生了变化(包括怪兽回场、效果处理完毕),优先权就会无条件重置给回合玩家。因此,当对手被迫处理了强制效果后,状态变更,你自然获得了解连锁或开启新连锁的机会。

Q4: 什么时候我才能确认这个阶段真正结束了?

A: 只有当流程连续通过四个“否”的判定门,且中间没有插入任何动作时,阶段才算正式结束:

  1. 回合玩家不想做 (否)
  2. 非回合玩家不想做 (否)
  3. 回合玩家无必须做的事 (否)
  4. 非回合玩家无必须做的事 (否)
    只要上述任何一个环节是“有”或“想做”,流程就会重置或继续,阶段就不会结束。