完成每一步的全部排除
放下一只猫后,记得标记它所在的行、列、区域和所有相邻格。漏掉一个标记,就可能藏住下一步确定解;一块看起来无解的棋盘,背后往往只是某一次排除没扫干净。
卡住的时候,不要急着去找新东西。先回到你最后放下的那两三只猫,把它们的连锁反应重描一遍。缺的那步推理,多半就在那里。
把区域锁到线上
如果某个区域剩余的候选格全在同一行,那么这个区域的猫一定在该行——尽管你还说不出是哪一格。于是该行其余所有位置都变得不可能,包括那些属于完全不同区域的格子。
这是整个游戏里价值最高的模式,而且检查它不花任何成本。每次落子之后,扫一眼那些小区域,问问它们的幸存格是不是已经塌缩到同一条线上了。
也要把线锁到区域上
同样的论证反过来也成立。如果某一行剩余的候选格全部落在同一个区域内,那么这个区域的猫就是该行的猫。于是这个区域在棋盘上其他任何地方的格子,都可以被排除。只从一个方向读这个模式的玩家,等于白白丢掉了它一半的价值。
比较候选位置组合
如果两行都只能在相同的两列中放猫,这两列就被这一对占定。这样往往无需在二者之间做出选择,就能解开第三行。
这个模式可以放大:三行如果被限制在相同的三列里,这三列同样被全部占定;把行列互换,论证依然成立。你要找的不是猫,而是已经被预订出去的地盘。
数一数还剩什么
棋局后期,别再扫了,开始数。剩余的猫数、剩余的行数、剩余的列数、剩余未解决的区域数,永远是同一个数字;把它们互相对照,看似开阔的局面就会塌下来。如果还剩三只猫、而恰好只有三个区域没解决,那这三个区域各拿一只,它们当中任何做不到这一点的格子,都可以收工了。
留意边缘的几何
“不相邻”规则在边界上更弱。棋盘正中的一只猫封死八个邻居,角落里的一只只封死三个。因此贴边的区域比它的尺寸看起来更松,而中央的区域更紧。当两个候选位置看起来同样合理时,靠近中间的那个通常排除得更多,值得优先试。
谨慎使用反证
遇到专家难度时,可以暂时假设某个候选格有猫,并只推演确定结果。若假设最终造成冲突,就能安全排除该格。完整推理回放会如实将这种方法标记为“有界反证”。
链条要短,每一步都要确定。推了三步强制着法得到的矛盾,是一次证明;推了十五步全靠臆测得到的矛盾,是一次披着证明外衣的猜测——本来能解的题,往往就是这样被放弃的。
值得知道的几个错误
大多数死局来自三种错误:扫已落子的猫时忘了斜角的邻居;把两块只在角上相接的同色方块当成一个区域;以及凭一个自己从未真正验证过的理由,就把某格标成不可能。前两种是机械失误,第三种才危险——因为一个没有依据的猫爪,会让整块棋盘从此开始对你撒谎。