WUZIQI — Gomoku
好看,本身就是理由
← 返回博客

棋理与搜索

五子棋里的“证明”:从活三活四到必胜路径

有些手不是因为看起来强,而是因为它们能把局面一步步推向不可逃避的结果。

把连续威胁看成一条被逐步证明的路径,棋面就会安静下来。
把连续威胁看成一条被逐步证明的路径,棋面就会安静下来。

在五子棋里,“证明”要找到一条让对手无论怎样应都无法脱身的道路,而不是把每个变化都平均算完。活三、冲四、活四只是路标;真正关键的是它们能否连成必胜路径。

从强手到可证明的强手

很多局面看上去都很凶:一个活三摆在盘上,旁边还有潜在的眠三。但强不等于赢。可证明的强手,要求下一步威胁能迫使对方防守,而防守之后仍有新的强制点。

例如黑棋形成一条横向活三,对方必须封住一端吗?未必。如果白棋能同时制造冲四,黑棋就不能只按自己的剧本走。判断威胁时,必须把“对方最强反击”也放进计算。

五子棋中由活三转为冲四再转为必胜点的示意图
一个威胁链通常不是靠单个活三取胜。更常见的情况是活三迫防、冲四迫防,最后出现不可同时防住的双四。

VCF:连续冲四的证明

VCF常被解释为“Victory by Continuous Four”,即连续用四来取胜。它的特点很直接:每一步都形成冲四或活四,对方若不挡,下一手立即五连。

VCF的计算相对清晰,因为防守点通常很少。黑棋冲四,白棋只能堵指定位置;黑棋再在另一路冲四,白棋继续被迫应答。只要链条不断,最后就会出现白棋无法兼顾的点。

这也是为什么高手会先看四再看三。四的强制性最高,它把局面压缩成少数分支。关于VCF的基本概念,可参见VCF and VCT concepts in gomoku

VCT:用威胁持续获得先手

VCT是“Victory by Continuous Threats”。它不要求每一步都是四,也可以用活三、双三、眠三转活三等方式持续制造必须处理的威胁。

VCT比VCF更宽,也更难。活三虽然常常要防,但对方可能选择反做一个更急的四,或者用一手同时防守并反击。因此,VCT的证明要检查更多防法。

VCF像一条窄桥:对方只能后退。VCT像一张网:关键在于确认每个出口都被威胁覆盖。

活三活四只是语言,不是结论

说“我有活三”只是描述形状;说“这个活三必胜”才是结论。中间缺少的部分,就是威胁序列:对方防哪里,我接着走哪里;若对方换一种防法,我是否仍能保持先手。

一个常见误判是把双活三当成立刻胜势。若规则或局面允许对方下一手形成活四,双活三可能反而太慢。威胁的急迫性要按“五、活四、冲四、活三”的优先级重新比较。

更系统的说法见Threat sequence theory in gomoku strategy:威胁是一种带有响应集合的连续结构,不只是孤立棋形。

五子棋VCT中不同防守分支被逐一覆盖的示意图
VCT的难点在分支:每一种合理防守,都必须能接回新的强制威胁。

PNS:把“能否证明”变成搜索问题

PNS,即Proof-number search,常用于判断一个目标能否被证明。放在五子棋中,目标可以是“黑棋从此局面存在必胜威胁序列”。

它并不平均展开所有变化,而是优先研究最接近证明或最接近反证的分支。某个进攻点若只差一个关键回应就能闭合,搜索会集中到那里;某个防守若能破坏所有威胁,也会被优先检验。

这解释了“证明”为什么常比蛮力更像读棋:它看得更有目的,优先追问哪些分支最接近成立或最接近被推翻。相关方法可参考Proof-number search in gomoku

一条必胜路径应满足什么

第一,每一步威胁都足够急。若对方可以脱先做更大的威胁,路径就断了。第二,防守分支要完整。只证明对方“通常会挡左边”没有意义,还要证明挡右边、反冲、兼防时都不行。

第三,最后要收束到明确胜形:五连、无法同时防住的双四,或连续四的末端。没有收束点的进攻只是压力,不是证明。

实战提示:复盘时不要只标出好手。给每个强手写下“若对方这样防,我下一手是什么”。写不出来的地方,就是证明尚未成立的地方。

从复盘中训练证明感

训练证明感,可以从短VCF开始:限定只找连续四,直到能快速看出三到五步的强制链。随后再加入活三,练习判断哪些三是真正迫防,哪些只是形状好看。

一些比赛程序与架构笔记也强调这种分层:先用模式识别找候选威胁,再用搜索验证强制序列。可参见Starpoint and TKGOMOKU architecture notes from Gomocup 2026

对棋手来说,价值不在术语本身,而在思维方式:每个活三都要问它能否继续,每个冲四都要问它是否唯一,每条进攻线都要经得起对方最顽强的防守。


读完了?打开 WUZIQI 试一局。