Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Chinese Chess | Xiangqi | 中国象棋 | Python

License

NotificationsYou must be signed in to change notification settings

techkang/xiangqi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

特性

  • 代码简洁:仅仅使用一百多行代码即实现了中国象棋,并具有简单对战功能。
  • 性能高效:经测试水平在初学者之上。
  • 使用传统象棋表示方法来表示棋子移动。

缺点

  • 现代竞技象棋有许多复杂的规则,例如不得长将,长吃等,参见2011版象棋规则。本程序仅实现了基本规则,未实现禁手。
  • 没有引入随机参数,导致在相同局面下程序总是会有相同的输出。

注意

  • 本程序使用的象棋棋子来自Unicode13中的棋类符号,如果你的电脑能正确显示以下几个字符:🩠 🩡 🩢 🩣 🩤 🩦 🩥 🩧 🩨 🩩 🩪 🩫 🩭 🩬,则可以最大程度上利用本程序,否则请在运行程序时设定棋子编码参数p/piecechinese,即python xiangqi.py -p chinesepython xiangqi.py --piece chinese
  • 因为字体关系,有些字体中文字符长度不等于两个英文字符长度,所以显示的棋盘可能没有对其,可以通过设定宽度参数w/width来进行调节,即python xiangqi.py -w 2python xiangqi.py --width 2
  • 测试运行环境为Ubuntu20.04,使用系统terminal,字体为Monospace Regular。

运行截图

xiangqi_unicode

如果添加设置参数--pieces chinese

xaingqi_chinese

运行程序

python xiangqi.py -p unicode -w 1

棋盘显示

本仓库代码还实现了中文棋盘显示,运行python draw_board.py即可。同样,如果字体不支持Unicode13, 可修改draw_board.py第一行为def chinese_chess(mode=''):。效果如下所示:

如果字体支持Unicode13

draw_board

如果不支持Unicode13

draw_board

参考资料

xiangqi.py:

draw_board.y:

About

Chinese Chess | Xiangqi | 中国象棋 | Python

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages


[8]ページ先頭

©2009-2025 Movatter.jp