通用的文字识别只认形状。读棋谱需要更多:字母容易混淆、字写得快,而且最关键的是,国际象棋规则本身就能判断哪些读法根本不可能。这一页讲的就是照片和文件之间的这一步。
为什么手写棋谱是个单独的问题
用到的字符很少,却特别容易混:b 和 6,Q 和 9,0 和 O,f 和 t。通用文本模型没有理由偏向任何一边;而在着法列表里,只错一个字符,就会悄悄变成另一盘看起来同样合理的棋。
再加上大家实际的写法:用 dc 表示兵吃子的简写、涂改、表示“同上”的箭头、写在空白处的 ep 和 =Q,偶尔还有写错列的着法。
棋盘负责消除歧义
关键在于:不把记谱单当成普通文字来读。每识别出一步,就在棋盘上走这一步;当前局面会限制下一个记号可能是什么。
Nbd2和Nfd2——通常只有一个合法,另一个在你看到之前就被排除了。dc不能原样保留:根据局面,d 线上通常只有一个兵能吃子,所以展开成dxc5。- 写成
0-0的王车易位会读成O-O,因为两个零不是着法。 - 完全不可能发生的着法——马到不了那一格,或者吃了一个不存在的子——会标成红色,不会写进你的对局。
最后这一点最要紧。误读一旦产生非法着法,就会立刻被发现。 你只需要看几处带颜色的着法,不用对着一张自己也未必认得出的纸逐步校对四十回合。
颜色的含义
红色是非法着法:这个读法在当前局面下走不了,说明前面有地方出了错——可能是这一步本身,也可能是更早的某一步让棋盘状态偏了。
琥珀色是低置信度着法:模型读出了内容,但没有足够把握。编辑器会列出该局面下合法的着法,所以如果 Nbd2 和 Nfd2 都可能,你在两者之间选一个就行,不用打字。没有单独的“歧义”类别:只要模型不确定,就是琥珀色,不管原因是什么。
哪些情况还是要靠你
有两种情况规则解决不了:
读错了,但恰好合法,而且模型很有把握。 如果 Nbd2 和 Nfd2 都合法,而模型选错了那个,再怎么校验也不知道你当时走的是哪个。这时靠重放棋盘:逐步走一遍,局面和你的记忆对不上的地方就是它。
记谱单本身错了。 记录的人漏写了一步,从那里开始整盘棋就偏了。校验能标出偏离的位置,却不知道原因;修正要回到当时的局面,或者看对手的那份记谱单。
修改用每步旁边的铅笔按钮,不花积分:只有识别本身用积分。改完一步,后面的着法会从这里重新校验。
支持的记谱方式
FIDE 要求的标准代数记谱法(SAN):棋子字母 KQRBN,兵不写字母,x 表示吃子,O-O 和 O-O-O,+ 和 #,=Q 表示升变,以及用纵线或横线消除歧义。想复习的话,国际象棋记谱法详解讲整个体系,7 个常见记谱错误讲人在着急时会写错什么。
描述式记谱(P-K4、N-KB3)不支持。这样写的着法会按原样显示,但不会转换成代数记谱、不会重放,也不做校验,所以旧棋谱要先改写再扫描。描述记谱法与代数记谱法讲怎么改。
