0 Star 1 Fork 0

zhcosin / emacs-chess-cn

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

emacs 中的字符界面中国象棋

概述

这是一个 emacs 中的字符界面的中国象棋,效果如下 ./chess.gif 目前尚未处于开发阶段,开发进度如下

  • 字符界面表示层(界面绘制,棋盘坐标与缓冲区位置互相转换)
  • 内核框架(对弈方,兵种,棋子,棋局,棋步等)
  • 走子/吃子规则
  • 棋局上快速移动光标(按格子移动而非按字符移动)
  • 中文棋步术语
  • 将军判断与胜负判决(将死)
  • 棋步历史与悔棋
  • 棋局导出与加载
  • 规则违反提示信息展示
  • 当前选子突出展示,最后一步落子突出展示
  • 摆放残局
  • 人机对战(极大极小搜索算法)

用法

尝试

  • 在 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 的中英文表格对齐就不会有问题

空文件

简介

emacs 中的字符界面中国象棋. 展开 收起
Emacs Lisp
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/zhcosin/emacs-chess-cn.git
git@gitee.com:zhcosin/emacs-chess-cn.git
zhcosin
emacs-chess-cn
emacs-chess-cn
master

搜索帮助