出色的开源中国象棋棋谱APP-Chess

以前在公号上发布的文章,先共享给各位小伙伴们哈~~~ 

哈喽,大家好!我是可爱的源小北

今天小北向各位小伙伴们推荐一款很有意思的开源小游戏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 如果系统根据依赖关系自动安装了相应包,则不需要手动安装。

 

五、使用说明

  1. 全部源码,开箱即用。

  2. 代码中含有大量注释,能够快速理解程序流程。

  3. 提供预览版可执行文件,下载解压即可使用,无需安装。预览版不定期更新。

代码示例

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=能够解杀                }            }        }    }

绝杀算法流程图

 

六、古棋谱共享

中国象棋有着悠久的历史,象棋古谱也有很多,但是流传下来的象棋谱却为数不多。 明清棋谱大致分为两大类: 一类是少林派,以橘中秘,金鹏十八变等等,简称用炮局。所谓少林派,节奏明快,直来直往,势大力沉。 一类是武当派,很简单,以梅花谱为代表,简称用马局。 所谓武当派,一波三折,曲径通幽,绵里藏针。 这里提供一些耳熟能详的古谱棋谱:

  1. 《事林广记》

  2. 《会珍阁》

  3. 《反梅花谱》

  4. 《吴氏梅花谱》

  5. 《善庆堂重订梅花》

  6. 《崇本堂梅花秘谱》

  7. 《弃子十三刀》

  8. 《奕海征帆》

  9. 《心武残编》

  10. 《无双品梅花谱》

  11. 《桔中秘全局谱》

  12. 《梅花变法谱》

  13. 《梅花泉》

  14. 《梅花谱》

  15. 《梦入神机》

  16. 《橘中秘残局谱》

  17. 《江南风景》

  18. 《泥马渡康王》

  19. 《湖涯集》

  20. 《烂柯神机》

  21. 《百变象棋谱》

  22. 《竹香斋象棋谱》

  23. 《绿融侨》

  24. 《自出洞来无敌手》

  25. 《蕉窗逸品》

  26. 《蕉竹斋》

  27. 《适情雅趣》

  28. 《金鹏十八变》

  29. 《陶情逸趣》

  30. 《隐秀斋象棋谱》

  31. 《韬略元机全局普》

  32. 《韬略元机残局谱》

  33. 《马炮争雄》

  34. 《三才图会》

  35. 《棋谱秘录》

  36. 《万宝全书》

  37. 《吴绍龙象棋谱》

  38. 《心武残篇》

  39. 《渊深海阔象棋谱》

  40. 《象棋满盘谱》

  41. 《新增神妙变化象棋谱》

  42. 《象棋老谱》

  43. 《新镌金鹏变法象棋谱》

  44. 《新选象棋谱》

  45. 《效古子象棋谱》

  46. 《梅花五子变》

  47. 《象戏汇编》

  48. 《梅花变法象棋谱》

  49. 《无双品》

以上截图都是截取了一部分内容,如果大家有兴趣了解或者试用更详细的内容,可以去项目地址:https://gitee.com/cygsd/Chess。

七、源小北有话说

Chess中国象棋开源项目也提供全部源代码,方便大家下载研习。

大家不仅可以通过使用来体验,还可以通过对源代码学习和了解大佬是如何实现自己的开源小游戏,也许将来的最好玩的小游戏就是出自你们手中哦!

写在最后

程序员了不起读者交流群,交流包括但不限于技术,人生感悟、每日大事、人生大事、吹水、摸鱼,白嫖群主收集的资源等。

有想要加入的小伙伴,关注公号”程序员了不起“,回复:fff112 ,既可加入群聊,限时开放哦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值