每行恰好一只猫

每条横向行里必须有一只猫,不能多,也不能少。一行放了两只猫,即使其他约束全部满足,棋盘依然无效;一行一只都没有,则只说明题还没解完,而不是解错了。

每列恰好一只猫

每条纵向列里必须有一只猫。与行规则合在一起,这就定死了棋盘上猫的总数:N 阶棋盘恰好有 N 只猫,一行一只、一列一只,从不共用同一条线。

这一点要尽早内化,因为它能把“数数”变成工具。8×8 的棋盘上你已经放了六只猫,那么就只剩两只,而它们必定住在仍然空着的那两行和那两列里。残局往往不是扫出来的,是数出来的。

每个彩色区域恰好一只猫

棋盘由 N 个连续区域组成。无论区域形状和面积如何,每个区域都只能有一只猫。两格的区域和十一格的区域,承载的是同样一只猫——这正是小区域远比大区域值得关注的原因。

“连续”指的是四连通:区域内任意一格,都能在不离开该颜色的前提下,通过上下左右走到其他任意一格。两块同色方块如果只在角上相接,那是两个区域,不是一个。棋盘拥挤时这个区别值得仔细描一遍,它也是截图识别里最常被读错的东西。

猫咪不能相邻

两只猫不能共用边或角。每只落子的猫最多封死周围八个格子,而这是唯一一条会约束到猫自身行、列、区域之外的规则。

这让它成为棋盘上产出最高的一条规则。另外三条描述的是你本来就在读的行列与颜色;只有“不相邻”会斜着伸进你没在看的区域。

每道有效题目只有唯一解

一块能容纳两种不同摆法的棋盘,不是更难的题,而是坏掉的题。本站生成的每道题在发出之前都会验证解的唯一性,而且这个解永远可以只靠确定步骤走到。你不应该需要猜了再试。

棋盘尺寸

求解器接受 4×4 到 12×12 的棋盘。生成器创建 5×5 到 12×12 的棋盘,因为 4×4 的网格很难留出有意思的区域布局。难度也不只取决于尺寸:形状刁钻的 7×7 可能比松散的 10×10 更难。

预置猫咪

有些棋盘一开始就放好了猫。它们遵守同样的规则,只是题目白送给你的推理结果。如果预置猫之间互相冲突——共用行、列、区域或角——那这块棋盘无效,后面的一切都不值得再解。

导入题目

截图或手绘棋盘必须包含 N 个连续区域,预置猫咪之间也不能冲突。如果题目无效,求解器会如实显示无解或多解,不会编造答案。

这两个结果都是有用的诊断。无解通常意味着某条区域边界被读错、把一个区域劈成了两个;多解通常意味着漏掉了一条边界、把两个区域并成了一个。两种情况下,在编辑器里修正区域轮廓,都比重新截一张图更快。