以前在公号上发布的文章,先共享给各位小伙伴们哈~~~
哈喽,大家好!我是可爱的源小北
!
今天小北向各位小伙伴们推荐一款很有意思的开源小游戏APP-Chess中国象棋!
这位大佬喜欢象棋,也喜欢编程,所以有了这个象棋软件。软件界面简洁大气,该有的功能都有,是中国象棋爱好者平时打谱学习、闲暇游戏的好助手。
下面小北就向各位小伙伴介绍一下:
一、项目特点
在软件设计上,借鉴了国内知名象棋软件通行的设计思想,具有友好的操作界面,符合大众使用习惯。开发语言选择了C#,这使得开发难度大大降低。
二、软件架构
编程环境:Visual Studio 2019/2022 C#,NET5.0/6.0,WPF,SQLite3.0 随着功能扩展,代码量快速增长,模块间耦合度过高问题越来越严重。下一步打算使用Prism框架对代码进行重构,重构为MVVM模式,以降低模块间的耦合度,增强可扩展性。
三、功能简介
-
棋盘可上下翻转,红方可在下方,也可以在上方。运行期间可随意翻转棋盘。
-
走棋具备动画效果,有悔棋功能。
-
可显示棋子移动的有效位置,非法目标位置将不可走到。
-
红方先走棋,非走棋方的棋子选中无效。
-
将军时有提示,且下一步必须走解将的棋子,其他走棋无效。
-
走棋错误时,自动取消走棋,棋子返回到走棋前位置。
-
有绝杀判断功能。判断是否绝杀的算法比较复杂,费了不少脑细胞。
-
有记谱功能,可在单独窗口同步显示。
-
点“开局”按钮,可恢复到初始状态。
-
仿天天象棋界面,严格遵循象棋走棋规则。
-
使用SQLite在本地保存棋谱,具体增加、删除、修改功能。
-
完善的变招数据存储结构,可保存所有变化。
-
遇到变招时,显示箭头提示。显示箭头数量可进行设置,以便保存界面清洁。
-
电脑提示下一步最佳着法,显示局面分。
-
电脑走棋速度可人为设置。
-
窗口可任意缩放,棋盘、棋子、按钮等同步缩放。
-
窗口背景可任意更换。
-
具备界面主题选择功能,可选择个人喜好的主题。
-
自动保存用户设置,下次打开软件时,自动使用上次保存的设置。
四、安装说明
使用源码时,在Visual Studio中通过NuGet安装如下包:
1. Newtonsoft.Json
2. System.Data.SQLite 如果系统根据依赖关系自动安装了相应包,则不需要手动安装。
五、使用说明
-
全部源码,开箱即用。
-
代码中含有大量注释,能够快速理解程序流程。
-
提供预览版可执行文件,下载解压即可使用,无需安装。预览版不定期更新。
代码示例
for (int i = 0; i < 9; i++) for (int j = 0; j < 10; j++) { int qizi = GlobalValue.qiPan[i, j]; // 从棋盘上找到存活的本方棋子 if (gongJiQiZi > 15 && qizi > 0 && qizi <= 15) // 黑方被将军时 { thispoints = MoveCheck.GetPathPoints(qizi, GlobalValue.qiPan); // 获得本方棋子的可移动路径 foreach (int[] point in jieShaPoints) // 逐个取出可解除将军的点位坐标 { if (thispoints[point[0], point[1]] == true) // 本方棋子的可移动路径是否包含解除攻击点 { if (!MoveCheck.AfterMoveWillJiangJun(qizi, point[0], point[1], GlobalValue.qiPan)) return true; // true=能够解杀 } } } if (gongJiQiZi <= 15 && qizi > 16 && qizi <= 31) // 红方被将军时 { thispoints = MoveCheck.GetPathPoints(qizi, GlobalValue.qiPan); // 获得本方棋子的可移动路径 foreach (int[] point in jieShaPoints) // 逐个取出可解除将军的点位坐标 { if (thispoints[point[0], point[1]] == true) // 本方棋子的可移动路径是否包含解除攻击点 { if (!MoveCheck.AfterMoveWillJiangJun(qizi, point[0], point[1], GlobalValue.qiPan)) return true; // true=能够解杀 } } } }
绝杀算法流程图
六、古棋谱共享
中国象棋有着悠久的历史,象棋古谱也有很多,但是流传下来的象棋谱却为数不多。 明清棋谱大致分为两大类: 一类是少林派,以橘中秘,金鹏十八变等等,简称用炮局。所谓少林派,节奏明快,直来直往,势大力沉。 一类是武当派,很简单,以梅花谱为代表,简称用马局。 所谓武当派,一波三折,曲径通幽,绵里藏针。 这里提供一些耳熟能详的古谱棋谱:
-
《事林广记》
-
《会珍阁》
-
《反梅花谱》
-
《吴氏梅花谱》
-
《善庆堂重订梅花》
-
《崇本堂梅花秘谱》
-
《弃子十三刀》
-
《奕海征帆》
-
《心武残编》
-
《无双品梅花谱》
-
《桔中秘全局谱》
-
《梅花变法谱》
-
《梅花泉》
-
《梅花谱》
-
《梦入神机》
-
《橘中秘残局谱》
-
《江南风景》
-
《泥马渡康王》
-
《湖涯集》
-
《烂柯神机》
-
《百变象棋谱》
-
《竹香斋象棋谱》
-
《绿融侨》
-
《自出洞来无敌手》
-
《蕉窗逸品》
-
《蕉竹斋》
-
《适情雅趣》
-
《金鹏十八变》
-
《陶情逸趣》
-
《隐秀斋象棋谱》
-
《韬略元机全局普》
-
《韬略元机残局谱》
-
《马炮争雄》
-
《三才图会》
-
《棋谱秘录》
-
《万宝全书》
-
《吴绍龙象棋谱》
-
《心武残篇》
-
《渊深海阔象棋谱》
-
《象棋满盘谱》
-
《新增神妙变化象棋谱》
-
《象棋老谱》
-
《新镌金鹏变法象棋谱》
-
《新选象棋谱》
-
《效古子象棋谱》
-
《梅花五子变》
-
《象戏汇编》
-
《梅花变法象棋谱》
-
《无双品》
以上截图都是截取了一部分内容,如果大家有兴趣了解或者试用更详细的内容,可以去项目地址:https://gitee.com/cygsd/Chess。
七、源小北有话说
Chess中国象棋开源项目也提供全部源代码,方便大家下载研习。
大家不仅可以通过使用来体验,还可以通过对源代码学习和了解大佬是如何实现自己的开源小游戏,也许将来的最好玩的小游戏就是出自你们手中哦!
写在最后
程序员了不起读者交流群,交流包括但不限于技术,人生感悟、每日大事、人生大事、吹水、摸鱼,白嫖群主收集的资源等。
有想要加入的小伙伴,关注公号”程序员了不起“,回复:fff112 ,既可加入群聊,限时开放哦!