棋种小传
它从哪里来,为什么长成今天这个样子。
起源中国 · 中国象棋的民间变体,流行于闽台一带
用象棋的子,玩完全不同的棋
暗棋(也叫半棋、翻棋)用的是一整副中国象棋的三十二枚棋子,却和象棋几乎没有关系:棋盘只取半张,四列八行;所有棋背面朝上随机铺满;走法、吃法、胜负条件全部重来。它是典型的民间变体——不是设计出来的,而是「手边只有一副象棋」的条件下长出来的玩法,在闽南与台湾一带尤其流行。
连阵营都是翻出来的
最特别的一条在开局:谁先翻,翻出什么颜色,那个颜色就是他的阵营。在第一枚棋翻开之前,双方都还没有颜色,能做的只有翻子。这条设定把「运气」放在了整局最前面,也顺带解决了先手问题——你无法预先规划阵型,因为你还不知道自己是红是黑。
炮被彻底改写了
暗棋里最有意思的改动是炮。它不再按等级吃子,而是沿直线隔着恰好一枚棋打掉后面的目标,距离不限,连将帅都能打。但它不吃子时只能走一格——不能像象棋的炮那样滑行。这个「射程极远、机动极差」的组合让炮成了一枚需要提前布置的棋,而且暗子也能当炮架,所以你永远不知道对面那门炮的射线上有没有现成的架子。
翻子本身就是一步棋
每回合你只有两个选择:翻一枚暗子,或者走一枚已翻开的己方棋。翻子看似是碰运气,其实是这盘棋最需要判断的动作——翻在自己大子旁边,可能立刻送对方一顿吃;翻在角落,最坏结果也有限。真正的高手会用已翻开的棋和阵亡列表倒推暗子池:对方的将帅还没出现时,你的兵卒就一直有价值。
- 兵卒能吃将帅、将帅吃不了兵卒,这条循环克制被完整保留了下来,也是暗棋里最常见的翻盘手段。
- 任何棋都不能吃暗子,必须先把它翻开;但暗子可以充当炮架——这两条经常被搞混。
- 本站的 AI 拿不到暗子的真实身份,它只能看到已翻开的棋、已阵亡的棋,然后对多种可能的分布分别搜索再汇总。
完整规则
先把一回合能做什么、怎样获胜弄清楚。
- 棋盘
- 4 × 8 方格
- 开局
- 32 枚棋全部盖住
- 胜负条件把对方在棋盘上的棋子全部吃光即获胜。另一条判负线是无子可动——棋盘上已经没有暗子可翻、而轮到的一方又走不出任何合法着法时,该方判负。
- 开局时 32 枚棋随机打乱后盖满整个 4×8 棋盘,一个空格都没有。轮到一方时只有两种选择:翻开任意一枚暗子,或者移动一枚已经翻开的己方棋。
- 阵营由第一次翻子决定先手翻出什么颜色,这个颜色就是先手的阵营,后手自动获得另一种颜色。在第一枚棋翻开之前双方都还没有颜色,能做的只有翻子。
- 等级从高到低是将帅、士、象、车、马、炮、兵卒,同级之间可以互吃。除炮以外的棋每次沿横竖走一格,落到空格上,或者吃掉相邻的、等级不高于自己的敌方明子。
- 兵卒和将帅之间是循环克制兵卒只能吃兵卒和将帅,吃不了士、象、车、马、炮;将帅可以吃士、象、车、马、炮,唯独吃不了兵卒。
- 炮的吃法与其他所有棋都不同它不按等级吃子,而是沿同一行或同一列,隔着恰好一枚棋作炮架,打掉后面的敌方明子,距离不限,可以吃包括将帅在内的任何棋。中间隔零枚或两枚以上都不成立,所以炮吃不掉紧挨着自己的棋。
- 炮不吃子时只能走到相邻的一个空格,不能像中国象棋的炮那样沿直线滑行;它的移动范围和普通棋一样是一格。
- 暗子可以充当炮架,但不能成为炮的目标。任何棋都不能吃暗子,必须先把它翻开。
- 每种颜色各 16 枚将帅 1、士 2、象 2、车 2、马 2、炮 2、兵卒 5。
第一次这样下
按这个顺序思考,很快就能完成一盘。
- 第一手优先翻四个角上的格。角格只有两个相邻格,即使翻出对方的大子,能立刻吃到它的方向也最少。
- 翻子之前先扫一遍炮线看己方每一枚明子所在的行和列上,有没有出现「敌方明炮 — 恰好一枚棋 — 我方棋」的结构,中间那枚棋是暗子也照样算数。
- 记住两条最容易输棋的克制兵卒能吃将帅,将帅吃不了兵卒;炮必须隔一枚棋才能吃,贴着炮的棋反而是安全的。
- 选中己方明子之后,棋盘只会点出真正合法的落点和吃子目标,炮的远程目标也在其中;出手前先看提示点。
- 不要在自己的大子旁边连续翻子。翻出对方大子时,对方下一手就能直接吃掉紧挨着的目标,翻子的一方等于白送一子。
实战策略
从会走升级到有计划地走。
- 用已翻开的棋和阵亡列表推算暗子池每色只有一枚将帅、两枚炮、五枚兵卒。对方的将帅还没出现时,己方兵卒就一直保有价值;对方的兵卒全部阵亡后,己方将帅才真正安全。
- 对方的炮没有全部阵亡之前,不要把车、马这类大子放在空旷的直线上,尤其是那条线上已经有一枚棋可以充当炮架的时候。
- 炮的价值来自开放的长线和合适的炮架,有时保留中间那枚棋比吃掉它更重要;炮架一旦被吃走,炮就打不到目标了。
- 领先时主动减少暗子数量并简化局面,落后时相反:多留暗子制造变数,等待翻出能扭转材料对比的将帅或炮。
- 残局阶段控制通路比继续翻子更重要,逼迫对方先去翻危险的暗子,往往能直接赢得材料和节奏。
胜负与特殊规则
容易漏掉、但会直接改变结果的细节。
- 一方的棋子在棋盘上全部被吃光时判负。还盖着的暗子不算在内——只要盘上还有暗子,就还没有分出胜负。
- 棋盘上已经没有暗子、并且轮到的一方走不出任何合法着法时,该方判负。
- 连续八十手(双方合计的半回合数)既没有翻子也没有吃子就判和;翻子和吃子都会把这个计数清零。
- 暗子的真实身份不会传给 AI。AI 只拿到已翻开的棋、已阵亡的棋以及由此推导出的剩余身份池,然后对多种可能的暗子分布分别搜索再汇总,而不是把某一次随机猜测当成真实棋盘。
常见失误
新手最容易掉进去的几个坑。
- 把炮当普通棋子用,试图吃掉紧挨着的敌子;或者把两枚以上的中间棋误当成合法炮架。
- 想用炮去吃暗子。炮的目标必须是已经翻开的敌方棋,暗子只能当炮架。
- 按固定阵营去思考,忘了第一枚翻出的棋才决定谁执红、谁执黑。
- 只比较等级高低,忘记兵卒吃将帅、将帅吃不了兵卒这一条,把将帅贴到对方的兵卒旁边。
