4x8暗棋是一种在4×8棋盘上进行的中国象棋变体游戏。游戏开始时,所有棋子背面朝上随机分布在棋盘上,双方轮流进行翻棋和移动棋子。
游戏包含7种不同的棋子,每种棋子都有特定的价值和数量:
| 棋子类型 | 价值 | 数量(每方) | 英文名 |
|---|---|---|---|
| 兵 | 2分 | 5个 | SOLDIER |
| 炮 | 5分 | 2个 | CANNON |
| 马 | 5分 | 2个 | HORSE |
| 车 | 5分 | 2个 | CHARIOT |
| 象 | 5分 | 2个 | ELEPHANT |
| 士 | 10分 | 2个 | ADVISOR |
| 将 | 30分 | 1个 | GENERAL |
胜利条件:率先获得60分的玩家获胜。
- 玩家可以翻开任意一个未翻开的棋子
- 翻棋后该棋子变为明棋,归属确定
- 翻棋消耗回合
- 只有已翻开的己方棋子可以移动
- 普通棋子只能向上下左右四个方向移动一格
- 未翻开的棋子无法移动
棋子遵循严格的等级制度,高等级棋子可以吃掉低等级和同等级的棋子:
等级顺序(从低到高):
兵 < 炮 < 马 < 车 < 象 < 士 < 将
基本吃子规则:
- 高等级棋子可以吃掉所有低等级和同等级的敌方棋子
- 低等级棋子无法吃掉高等级棋子
- 例如:车可以吃兵、炮、马、车,但不能吃象、士、将
- 兵克将:兵可以吃掉敌方的将(唯一例外)
- 将怕兵:将不能吃掉敌方的兵
- 暗棋不可吃:除炮以外,所有棋子都不能吃掉未翻开的棋子
炮是游戏中最特殊的棋子,具有独特的攻击方式:
- 不能普通移动:炮不能移动到相邻的空格
- 隔子攻击:炮只能通过"隔一个棋子攻击"的方式改变位置
- 攻击条件:炮与目标之间必须恰好有一个棋子作为"炮架"
- 攻击方向:只能在水平或垂直方向进行隔子攻击
炮可以攻击:
- 所有敌方棋子(包括已翻开和未翻开的)
- 未翻开的己方棋子
- 不能攻击:已翻开的己方棋子
- 炮架可以是任意棋子(己方、敌方、明棋、暗棋均可)
- 炮架不会被消耗或影响
- 攻击路径上只能有一个炮架
- 积分胜利:率先获得60分的玩家获胜
- 无棋可走:对手无任何合法动作时,当前玩家获胜
- 回合限制:连续24个回合没有吃子发生
- 步数限制:游戏总步数达到100步
模型训练参照AlphaZero(2018),尚未完成
-
确定游戏环境逻辑
-
实现异步