GitHub 您所在的位置:网站首页 xiangqi GitHub

GitHub

#GitHub| 来源: 网络整理| 查看: 265

中国象棋 Python | Chinese Chess Python 特性 代码简洁:仅仅使用一百多行代码即实现了中国象棋,并具有简单对战功能。 性能高效:经测试水平在初学者之上。 使用传统象棋表示方法来表示棋子移动。 缺点 现代竞技象棋有许多复杂的规则,例如不得长将,长吃等,参见2011版象棋规则。本程序仅实现了基本规则,未实现禁手。 没有引入随机参数,导致在相同局面下程序总是会有相同的输出。 注意 本程序使用的象棋棋子来自Unicode13中的棋类符号,如果你的电脑能正确显示以下几个字符:🩠 🩡 🩢 🩣 🩤 🩦 🩥 🩧 🩨 🩩 🩪 🩫 🩭 🩬,则可以最大程度上利用本程序,否则请在运行程序时设定棋子编码参数p/piece为chinese,即python xiangqi.py -p chinese或python xiangqi.py --piece chinese。 因为字体关系,有些字体中文字符长度不等于两个英文字符长度,所以显示的棋盘可能没有对其,可以通过设定宽度参数w/width来进行调节,即python xiangqi.py -w 2或python xiangqi.py --width 2。 测试运行环境为Ubuntu20.04,使用系统terminal,字体为Monospace Regular。 运行截图

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

运行程序 python xiangqi.py -p unicode -w 1 棋盘显示

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

如果字体支持Unicode13

如果不支持Unicode13

参考资料

xiangqi.py:

算法及代码部分,主要借鉴sunfish 算法原理介绍:MTD(f)算法 子力价值判断及局面判断权重,主要使用了Computer Chinese Chess

draw_board.y:

棋盘绘制,主要参考Unicode chessboard in a terminal FEN格式串介绍:象棋百科全书


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有