1. 从杂题构建主题
5. 让团体赛更加伟大
这一篇主要介绍各种在出题和设计轮次以外但又和谜题相关的各种设计。
众所周知,纸笔谜题种类不论数量还是花样都相当多。为了尽可能减少选手赛前准备时的学习成本,笔者在设计规则手册(IB)以及赛题册(PB)的时候都做了不少思考。
Here we define some basic terms and state some common conventions in puzzle rules of this WPC, so that the individual puzzle instructions can be more concise. (Conventions are marked with “Unless otherwise specified, …”) This section is significantly longer than similar sections in previous WPC Instruction Booklets; while most of these terms/conventions will be familiar to most WPC veterans, we still recommend reading these first to avoid confusion or misunderstanding.
这一节的第一页(一共8页)
如果两个单元格(cell)共用一条边,则称它们相邻(adjacent);如果它们共用至少一个顶点,则称它们接触(touching)。因此,相邻的单元格同样视为接触。 如果一组单元格中任意两个单元格都能通过在组内的一系列两两相邻的单元格相连,则称这一组单元格连通(connected)。对角连通(diagonally connected)的定义相似,只需把前一个定义里的“相邻”换成“接触”即可。 除非另外说明,一个满足特定条件(如涂黑)的“连通组”(connected group)是极大的,也就是说不能在破坏连通性的情况下加入其他满足条件的单元格。 一段(block)满足特定条件的单元格指的是一行/列内连续的一组单元格,和“连通组”一样一般认为是极大的(也就是说前后没有更多相邻的同样满足条件的单元格)。
两个图形如果可以通过平移、旋转、翻转使得它们完全相同,则称它们全等(congruent)。如果不需要翻转的话,则称它们旋转全等(rotationally congruent)。如果只需要平移的话,则称它们平移全等(translationally congruent)。当然,满足后面的定义的两个图形自动满足前面的定义。
盘面中的一条蛇(snake)指的是一系列(至少两个)单元格,其中任意两个连续的单元格互相相邻,但任意两个非连续的单元格都不相邻。如果蛇里面任意两个对角接触(但不相邻)的单元格之间都恰有一个在系列里的单元格,则称这条蛇不和自身接触(not touching itself)。
(前两种情况在不同涉及“蛇”的题型里都出现过)
一个字符(character)可以是一个字母或者一个数码(digit)。一个单词(word)是一串不一定有意义的字符。 除非另外说明,谜题里的所有字母都是大写,非英文的字符以及字符上的附加符号(diacritics,比如韵母ü上面的两个点)都可以忽略。 除非另外说明,谜题里的问号可以代表单个未知的正整数。
除非另外说明,分区类谜题的答案里不能有多余的分割线。也就是说,画的每条分割线必须介于两个不同区域之间。(注意,非分区类谜题题面给出的区域边界可能有多余的。)
借用一下嘉和老师的谜题元素介绍专栏里的示例图,里面有不少多余的边界 (https://www.bilibili.com/opus/627480591505467579)
一条回路(loop)由一系列(成环的)首尾相连的直线段(segment)组成,其中任意两条线段之间有一个角度严格介于0度和180度之间的转弯(turn)。 除非另外说明,如果一条回路(或者路径)允许和自身交叉,那么交点不能恰好在某条直线段的一个端点上。也就是说,相交的两条线段必须都直行通过交叉点。 除非另外说明,需要放置在盘面内的物体需要沿着格线放置,而且两个物体不能占用同一格。
不过笔者也清楚,除了WPC以外,其他比赛的题型数量都远没有到需要专门整理术语的程度,一般还是直接在题型规则里定义需要的概念比较方便。笔者在这一节上花这么多功夫主要还是想给这纷繁复杂的谜题世界一个相对坚实的理论基础,也有些希望以后可以成为新手了解纸笔谜题时的一份参考资料。
2022年WPC的IB的第8页 (https://ectoplsm.github.io/wpc-unofficial.org/pdfs/WPC%202022.pdf)
回路/路径类:如果是沿格线画一条不交叉的回路,可以用涂黑回路内部或外部的所有单元格的方式代替(对于数回/Slitherlink或者山洞/Cave之类的题型比较有用)。如果是画一条蛇形的路径,也可以用涂黑路径经过的格子表示。
当然,需要强调的是,这些图例没有列举所有允许使用的记号方式,一般只要阅卷人员能看懂就行。
题面里可以不加说明地把某些提示数隐去或者用问号代替。
规则中尽可能包括所有至少一个版本里出现过的提示类型。
把规则文字里出现的一些常数改成盘面旁的额外信息(相当于小幅推广了题型)。
在例题里打破一些规则里没有说明但是基本所有题都满足的潜规则。
不同版本不兼容时选择和其他题型更相似的版本。
顺带一提,这次IB里很多例题都来自于Puzzle GP的历届IB(https://gp.worldpuzzle.org/content/puzzle-archive)。实际上,Puzzle GP的IB里所有规则以及例题都是可以随便用的(甚至是开源的:https://drive.google.com/drive/folders/0BwXGC8wDbipUOFBsOVhKdk9JV2s),帮笔者省了不少精力。
嘉和老师在独数网站上办的初级赛:http://www.sudokufans.org.cn(虽说最近笔者才发现,这个网站上也有不少2012~2016年之间举办的各种谜题比赛,里面也有很多可以参考的题型译名) 浙江省谜题锦标赛的题型说明:https://mp.weixin.qq.com/s/oLrjaj0b_9iCuXm6tdP2wg 百度贴吧“逻辑谜题吧”里的精品区:https://tieba.baidu.com/f?kw=%E9%80%BB%E8%BE%91%E8%B0%9C%E9%A2%98&ie=utf-8&tab=good(历史相对悠久,但现在基本上转成QQ群了……)
如果英文名本身比较好翻译的话一般选择直译。(如果含义太过简单,容易和其他题型搞混的话会在译名里增加一些信息。)
如果英文名本身来源于其他语言则尽量从源语言的含义翻译。
如果英文名原意难以翻译(或者是人造词)的话则尽可能通过翻译来体现题型至少一部分机制。
一些规则相似的题型则考虑使用相似的译名(通过不同之处来强调规则的不同)。
Slalom的例题/答案(https://puzz.link/rules.html?slalom)
不管怎么说,这些中文名显然不是给国外选手看的,就算是对今年参赛的国内选手来说其实也没多少用。笔者这么执着想给每个题型起一个中文名主要是想为以后在国内推广更多谜题题型时提供一个参考,方便各位爱好者记忆。
为了和IB/PB里的字体统一,所有谜题的字体统一使用Noto Sans。笔者选择这个字体的主要原因一方面是sans-serif字体看上去比较简洁,另一方面是Noto字体系列(https://fonts.google.com/noto)支持上百种语言,并且在不同语言之间的字体风格能保持相对统一。Noto Sans还有等宽字体版本,对于涉及单词表的题型更加适合。笔者保证没在帮Google打广告。
一般来说,除了分区类谜题的格线基本都是虚线之外,其他题型的格线用实线还是虚线都没有统一定论。
有些不规则的盘面里有不属于盘面的洞,为了保证不会看错统一用全黑的格子表示。(因此,在涂黑类谜题中,涂黑的格子都称作"shaded"而非"black"以示区分。)
这届WPC有很多用圆圈作为提示的题型(比如第07轮Duality)。如果圆圈内没有数字或者是回路类题型的话,笔者一般用的是Penpa+里的中号尺寸,避免完全占满所在的单元格,给选手在这些格子内留一些做记号的空间。(其他情况下酌情使用大号圆圈。)
对于在区域内给提示数的题型,关于数字是按正常大小放在单元格中央还是缩小放在单元格左上角没有统一说法。笔者最终决定的方案是: 涂黑类谜题中的提示数一律按照正常大小,即便涂黑之后也能看清。
回路类谜题中的提示数一律缩小放在角落,画回路的时候不会挡着。
对于盘面外提供某一行/列信息的提示数,把数字放在盘面左边/上边还是右边/下边也没有统一说法。笔者把大部分题型的提示数都放在了左/上的位置。
另外,在赛题中有时需要强调一下盘面里隐藏的主题,统一通过加粗提示数/边框或者微调颜色来完成。(变化幅度一般都比较小,避免影响盘面里的实际信息。)
当然,上面提到的部分设计不能Penpa+功能完成(比如修改字体),所以笔者在Penpa+上作完初版的图之后还需要导出SVG文件,然后在文字编辑器或者Inkscape之类的SVG编辑软件里进行调整。(大部分谜题的调整都可以通过批量查找替换完成。)具体的细节笔者就不在这里赘述了。
全体使用同一字体(上文提到的Noto Sans),确保视觉上的统一性。 把logo做成浅色放在轮次标题后面,尽量保证美观的同时不占用额外面积。 把轮次基本数据(题量、时长、总分)纵向并排列在轮次标题右侧,尽量缩小三个关键数字之间的距离。 把所有分值(包括总分)加粗,让选手只要看到粗体数字就能潜意识地明白这是个分值。(这个在IB的赛程表以及每个谜题的标题也都有体现。) 通过两列排版减少题型名称和对应分值之间的横向距离,方便选手快速对应。
在排版IB/PB里的谜题的时候,笔者也尽量把比较关键的信息(题号、题型中英文名称、分值)集中放在了标题左侧的位置,其他不太重要的信息(副标题、例题作者/来源、阅卷区)则都放在右侧。
显然,上面提到的各种设计点基本都不是选手能明确注意到的,但笔者还是希望能通过这些设计减轻选手阅读IB和PB时处理各种信息的负担,把更多精力放在解谜上。
(未完待续)