标准、变型数独下单元格坐标的描述规范(rcb规范)
数毒吧
全部回复
仅看楼主
吧务
level 7
Sunnie😂 楼主
为了以下内容叙述方便,将采用rcb规范描述。
Part 1 标准数独
1-1 基础描述
标准数独之中,由行和列的位置瞄准单元格坐标,用字母r表示行,c表示列,b表示所在宫。一般来说,b(宫)不描述,而强调的时候可以描述。但描述顺序必须以r、c、b顺序罗列所在位置。例如:
r1c2,表示第1行第2列(第1行第2格)。
r1c2b1,表示第1行第2列(第1行第2格),当前单元格位于第1宫。
正则表达式:r[1-9]c[1-9](b[1-9])?
1-2 多格描述
如果要描述两个或更多单元格,则需要大括号描述,且单元格之间使用逗号隔开。例如:
{r1c1, r1c2, r1c3},表示第1行的第1、2、3个单元格。
正则表达式:\{r[1-9]c[1-9](b[1-9])?(, r[1-9]c[1-9](b[1-9])?)*\}
1-3 简化
如果单元格有同一个r、c或b标签,则不需要使用大括号,而可以采用简化。例如:
{r1c1, r1c2, r1c3}可以简写为r1c123。
{r3c7, r4c7, r6c7, r7c7}可以简写为r3467c7。
{r1c1, r1c2, r2c4, r2c5}可以简写为{r1c12, r2c45}。
正则表达式:\{r[1-9]+c[1-9]+(b[1-9]+)?(, r[1-9]+c[1-9]+(b[1-9]+)?)*\}
2018年07月25日 09点07分 1
吧务
level 7
Sunnie😂 楼主
Part 2 对角线数独
2-1 基础描述
对角线数独则多出对角线的限制。对角线分为正反对角线两种(一般使用撇捺称呼比较容易理解)。对角线则使用斜杠作为区分。例如:
D/3,表示撇对角线从上到下第3格(即r3c7)。
正则表达式:D[\/\\][1-9]
其他缩写方式和标准数独一致。
2018年07月25日 09点07分 2
吧务
level 7
Sunnie😂 楼主
Part 3 锯齿数独
3-1 基础描述
锯齿数独的锯齿宫比较难使用文本描述,所以一般而言都是通过在图上直接描线来叙述,而必须使用文本描述的时候,则需要先写出b标签,然后后面罗列出当前宫的所有单元格坐标。例如:
b{r1c3456, r2c67, r3c78}。
不能单纯使用基础的数字1到9来描述其位置。
正则表达式:b\{r[1-9]+c[1-9]+(b[1-9]+)?(, r[1-9]+c[1-9]+(b[1-9]+)?)*\}
其他描述,诸如所在的单元格的坐标,和标准数独一致。
2018年07月25日 09点07分 3
吧务
level 13
围观大佬
2018年07月25日 09点07分 4
吧务
level 7
Sunnie😂 楼主
Part 4 窗口数独
窗口数独因为窗口位置比较规范,而且具有隐藏的额外区域(潜规则),所以有特别的描述方式规则。
4-1 基础描述
将窗口宫按照左上、右上、左下、右下的方式描述为w1到w4(w取自window之意),而在隐藏额外区域下,则描述为:
w5:{r234c159};
w6:{r678c159};
w7:{r159c234};
w8:{r159c678};
w9:{r159c159}。
则r1c3(r1c3b1)又可以描述为r1c3w7。
顺序需为r、c、b/w标签的顺序描述。
正则表达式:r[1-9]c[1-9](w[1-9])?
2018年07月25日 09点07分 5
吧务
level 7
Sunnie😂 楼主
Part 5 杀手数独
5-1 虚线框描述
杀手数独有虚线框的描述,则除了要描述单元格的集合,也要描述其和值。
杀手数独和其他数独的描述有一些不一致,它不需要标签,只需要罗列虚线框,然后写出单元格总和值和单元格数即可,然后使用斜杠“/”分隔单元格数和总和。例如:
24/4{r1c234, r2c4}或{r1c234, r2c4}24/4,表示有{r1c234, r2c4}这4格构成的虚线框,其和值为24。
最后可以在最前面加上cage标签(也可以不加),即类似于cage{r1c234, r2c4}24/4的写法。
5-2 分裂框描述
分裂框是通过虚线框的和差关系,得到一组新单元格内的和值结果,进而标注出来的部分。
分裂框和虚线框的描述方式一致,但一定不加标签cage。在杀手数独软件制作的时候,如果全部不添加cage,则全部默认为分裂框,加上cage可表示为虚线框。
2018年07月25日 09点07分 6
正则表达式:(cage)?([1-9]\d?\/[1-9]\{r[1-9]+c[1-9]+(b[1-9]+)?(, r[1-9]+c[1-9]+(b[1-9]+)?)*\})|(\{r[1-9]+c[1-9]+(b[1-9]+)?(, r[1-9]+c[1-9]+(b[1-9]+)?)*\}[1-9]\d?\/[1-9])
2018年07月25日 09点07分
吧务
level 7
Sunnie😂 楼主
Part 6 额外区域数独
额外区域数独则不好描述额外区域部分,所以可以使用锯齿数独的描述方式,但b标签要改为xg(取extra group的x和g字母),例如:
xg{r12c5, r23c6, r34c7, r45c8, r5c9},表示又这样九格构成的额外区域。
正则表达式:xg\{r[1-9]+c[1-9]+(b[1-9]+)?(, r[1-9]+c[1-9]+(b[1-9]+)?)*\}
2018年07月25日 09点07分 7
level 8
膜拜围观
2018年07月30日 04点07分 8
level 1
大佬,从你这发现我连小白都算不上[真棒]
2019年12月15日 09点12分 9
1