国际象棋规则 - 如何玩

了解本游戏实现的合法走子、将军、王车易位、吃过路兵、升变、将死、逼和与和棋规则。

棋盘、开局与目标

国际象棋使用8×8棋盘。白方底线依次摆车、马、象、后、王、象、马、车,前方八兵;黑方镜像摆放。白方先走,双方轮流走一着合法棋。目标不是吃掉国王,而是将死:对方国王正被攻击且没有合法应对。本实现会过滤任何让己方国王仍受攻击的走法,因此一枚看似能吃子的棋子若会暴露己王,也不能移动。

各棋子的走法

车沿横竖直线走,象沿斜线走,后兼具两者,三者都不能越过途中棋子。马走日字:一个方向两格、垂直方向一格,可跳过棋子。王通常向任意方向走一格,易位除外。滑行棋子遇到己子必须停下,遇到第一枚敌子可吃但不能越过;也不能落在己子上。打开一条线往往同时改变进攻与王的安全,落子前要看整条线。

兵、吃子与升变

兵向前走一格到空格;从起始横线可走两格,但中间与终点都必须为空。兵不直吃,而是向前斜一格吃子。兵到最后一横线必须升变为后、车、象或马,已被吃掉的同类数量不限制升变。兵首走两格会留下吃过路兵目标,本引擎会记录它。判断王能否走到某格时,要分清兵攻击的斜格与兵可以直走的格。

将军、易位与吃过路兵

将军表示国王被攻击。必须通过移动国王、吃掉攻击子,或在可阻挡的直线中插子来解除。任何使己王受攻击的走法都不合法。王车易位让国王朝车移动两格,车移到王身边;对应王车权利仍在、之间无子、王未被将军、国王经过和到达格都未被攻击时才允许。吃过路兵只在紧邻敌兵刚走两格后的下一手有效,己兵按敌兵只走一格来吃掉它。

终局与和棋

被将军且无合法走法是将死;未被将军但无合法走法是逼和,属于和棋。本实现连续100个半回合没有兵移动或吃子时按五十回合规则和棋。王对王,或王加单象/单马对王也被视为子力不足和棋。对局还以棋盘、行棋方、易位权和吃过路兵目标组成局面键来追踪三次重复;棋面相同但权利不同不算同一局面。

常见问题

被将军时还能走棋吗?
只能走解除将军的棋;任何让己王继续受攻击的走法都会被排除。
兵能升变成什么?
后、车、象或马。
可以穿过被攻击格易位吗?
不可以。王不能在被将军时易位,也不能经过或停在被攻击格。
何时可吃过路兵?
紧邻敌兵走两格后的下一手,逾时即失效。
游戏识别哪些和棋?
逼和、五十回合计数、已实现的子力不足与对局中追踪的三次重复。

在棋盘上练习

每步前先检查己王受攻击的线路,再比较全部合法应手。