0 Star 1 Fork 0

zhcosin / emacs-chess-cn

Create your Gitee Account
Explore and code with more than 6 million developers,Free private repositories !:)
Sign up
This repository doesn't specify license. Please pay attention to the specific project description and its upstream code dependency when using it.
Clone or Download
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
readme.org

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

Repository Comments ( 0 )

Sign in to post a comment

About

emacs 中的字符界面中国象棋. expand collapse
Cancel

Releases

No release

Contributors

All

Activities

Load More
can not load any more
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

Search