这是一个 emacs 中的字符界面的中国象棋,效果如下 目前尚未处于开发阶段,开发进度如下
- [X] 字符界面表示层(界面绘制,棋盘坐标与缓冲区位置互相转换)
- [X] 内核框架(对弈方,兵种,棋子,棋局,棋步等)
- [X] 走子/吃子规则
- [X] 棋局上快速移动光标(按格子移动而非按字符移动)
- [ ] 中文棋步术语
- [X] 将军判断与胜负判决(将死)
- [X] 棋步历史与悔棋
- [X] 棋局导出与加载
- [X] 规则违反提示信息展示
- [ ] 当前选子突出展示,最后一步落子突出展示
- [ ] 摆放残局
- [ ] 人机对战(极大极小搜索算法)
- 在 emacs 中打开项目中的 chess-cn.el 文件.
- 执行 eval-buffer 命令加载文件内容.
配置文件中增加以下两行
(add-to-list 'load-path "path/to/chess-cn.el")
(require 'chess-cn)
按键 | 功能 | 备注 |
---|---|---|
C-c C-n | 开启新对弈 | 全局绑定 |
C-c C-u | 悔棋 | |
C-c C-s | 保存当前棋局 | |
C-c C-l | 从文件加载棋局 | 全局绑定 |
对弈的正确姿势:
- 执行 chess-cn–new(快捷键 C-c C-n) 命令,会打开一个名为 chess-cn 的缓冲区并绘制有初始棋局.
走棋方法,移动光标到要走的棋子上,按下回车键进行选择,再移动光标到目标位置,再按下回车键完成走子(目标位置无棋子为移动,有对方棋子为吃子,有己方棋子为重新选择要走的棋子). 光标移动,用上下左右四个方向键可以在棋盘上快速移动光标(按格子移动而非按字符移动),同时也支持以 emacs 或者 evil 的原生光标移动快捷键移动光标(后者需要安装有 evil).
执行 chess-cn–undo 命令即可(快捷键 C-c C-u).
- 执行 chess-cn–save 命令(快捷键 C-c C-s),会保存棋到变量 chess-cn–saved-dir 指定目录下以时间戳命名并以 .chess 为后缀的文件中. 棋局文件中主要保存以下信息: 当前棋局、棋步历史、当前走子方,当前选子坐标,对弈是否已结束,文件内容是一个 list 对象,人工可读.
- 执行 chess-cn–load 命令(快捷键 C-c C-l),选择棋局文件即可,默认展开到变量 chess-cn–saved-dir 指定目录.
无依赖
- 中英文对齐,需要使用等宽字体,只要搞定了 org-mode 的中英文表格对齐就不会有问题