数字化一盘棋很容易。数字化一整轮是另一回事:四十张单子、八十个面、一堆本来就没打算给外人看的手写姓名,还有一个截止时间——今晚赛事网站要挂出这些棋谱。
批量页现在能处理完整轮,而最近这批改动只冲着一件事去:把打字这件事去掉。下面是完整流程。
先用上文件名里已有的信息
裁判不会上传四十张无名照片。他们上传的是一个叫 Round 3 的文件夹,里面是 b1.jpg、b2.jpg、b3.jpg;或者是从相机胶卷批量改名之后的 OpenR3B7p1.jpg。
这些 ScanChess 会读。轮次、台次、页码和组别会从文件名以及它上面每一层文件夹里取出来,顺序随意、大小写随意:
| 文件名 | 读成 |
|---|---|
R3B7p2.jpg |
第 3 轮,第 7 台,第 2 页 |
b7_r3.jpg |
第 3 轮,第 7 台 |
Round 3/Board 7/page 1.jpg |
第 3 轮,第 7 台,第 1 页 |
Under1600/Round 2/b4.jpg |
Under1600 组,第 2 轮,第 4 台 |
round、rnd、rd、r 都表示轮次;board、bd、b 都表示台次;page、pg、p 都表示页码。分隔符可有可无。
这件事顺带带来两个好处。同一台的多页会自动归为一局,不需要你手动标记——一张双面记谱单拍成两个文件,会变成一局,而不是两个半局。而且每一局在进入下一步之前就已经知道自己的轮次和台次,那正是下一步用来匹配的东西。
如果你的文件叫 IMG_4471.jpg,以上都不会发生,你需要用**「同一张单子」**开关手动分组——批量照样能跑,只是多花点击。通常来说,上传前在电脑上批量改名是更划算的一分钟。
把你本来就有的对阵表传上来
编排软件已经为这一轮导出过一份名单。把它交给 ScanChess,就再也不用从手写体里读姓名了。
三种格式都接受:
- 带表头的分隔文本——逗号、分号、制表符、竖线都行,用的是哪个由解析器自己判断。
- PGN 名单:有些编排软件会为一轮导出一批只有标签、没有着法的空对局。
- JSON,如果你的软件或你自己的脚本产出这种格式。
列是按含义识别的,不是按名字,因为没有两个编排软件在用词上是一致的。White、WhitePlayer、white_name、WName 都是执白方;Board、Bo、Table、Tbl、Brd 都是台次。等级分、称号、FIDE ID、组别、结果、赛事、地点、日期,只要有就照样读。一个我们从没见过的软件导出的文件,通常第一次就能落地。
可以一次加多个文件。组织者常常是一轮导一份,全都拖进来,它们会合并。
匹配到底做了什么
对阵表载入之后,每一局扫描结果都会与它的对阵条目挂钩,页面上会显示挂钩的方式:
- 优先用轮次和台次,只要文件名说了。这是强信号——任何姓名比对都赢不过操作员亲手写下的台号。
- 否则用选手姓名,和识别引擎从单子表头读出的姓名比对,可靠程度就等于那手字的可读程度。
- 反色会被发现。 棋手有时按自己的视角填单子。如果姓名与对阵表在黑白对调之后能对上,匹配依然成立,并记录下这次对调。但如果是靠台号匹配上的、而两个姓名糟糕到认不出任何人,那么它不允许对调黑白——一个读不出来的名字,永远不该成为「谁执白」的证据。
- 一个对阵条目只归一局。 两张单子不能认领同一条对阵,所以重复拍摄的照片会以「未匹配」的形式浮出来,而不是悄悄覆盖掉一局真实的棋。
对阵表的权重高于表头。 两者不一致时,PGN 标签取自对阵文件——一份打印出来的对阵表,比同一个人在第 40 回合时的手写字迹,更能说明他叫什么名字。
两个产出文件
批量跑完之后,有两个下载。
整轮 PGN:所有匹配成功的对局合成一个文件,Event、Site、Date、Round、Board、White、Black、等级分和称号都已填好。赛事网站要的就是这个文件。
核对 CSV:晚上十一点救你的就是它。它逐局列出匹配到了什么、置信度多高、哪里有分歧、哪些还需要人看一眼。你不必为了找出出问题的那两局而把四十局重看一遍——打开 CSV,排个序,看那两局。
单子上没有的信息
有些信息对整批每一局都成立,却哪张单子上都没写。**「共同信息」**那几个字段——赛事名称、场地、日期——会附加到这批产出的每一局上,并在单子没写时被采用。每轮填一次就够。
积分,以及中途用完
批量扫描需要账号,因为积分是按局扣的,不是按批。开始之前页面会把算式摆出来:局数 × 每局积分,对照你的余额。
如果余额中途用完,已经开始的会扫到用完为止,剩下的标记为「积分不足」,而不是「失败」。充值后接着跑;已经付过的不会丢,也不会重复扣费。另外还有一个**「本局结束后停止」**按钮,用于你需要把积分留给别的事情的时候。
值得先做的四件事
- 在电脑上改名,不要在应用里点。 十秒钟批量改成
R3B1、R3B2……就能省掉整轮的分组点击和轮台录入。 - 离开赛场前先导出对阵表。 这是「读八十个手写姓名」和「一个都不用读」的区别。
- 一口气把单子拍完,同一张桌子,同一种光。我们的拍摄清单在这里要乘以四十——光线问题修一次,整轮都修好了。
- 发布前先打开核对 CSV。 它会告诉你该看哪两局。

