用C# WPF打造的绝世好棋!源码全部开源
本文简介推荐一款使用C# WPF开发的、功能完善的中国象棋软件!这款软件的界面精美、操作流畅,更重要的是,它的全部源代码都是公开的。这是一份非常适合二次开发和学习的优质资源!作者源于对象棋的热爱,如同程序员对代码的痴迷,深入骨髓。于是,倾尽心血,研发出一款融合了这两种激情的象棋软件。这款软件不仅继承了国内知名象棋软件的优秀设计理念,更以其人性化的操作界面,赢得了众多棋友的喜爱。主要功能•人机对战.
本文简介
推荐一款使用C# WPF开发的、功能完善的中国象棋软件!这款软件的界面精美、操作流畅,更重要的是,它的全部源代码都是公开的。这是一份非常适合二次开发和学习的优质资源!
作者源于对象棋的热爱,如同程序员对代码的痴迷,深入骨髓。于是,倾尽心血,研发出一款融合了这两种激情的象棋软件。这款软件不仅继承了国内知名象棋软件的优秀设计理念,更以其人性化的操作界面,赢得了众多棋友的喜爱。
主要功能
• 人机对战,测试自己的象棋水平。
• 电脑对战,观看电脑控制红黑双方棋子如何攻杀。
• 自由打谱,练习各种变化,添加着法注释,并能够全部保存。
• 具有复盘功能,所有保存的棋谱及其着法变化,都可以随时打开进行温习。
• 残局破解,测试残局能力。系统自带30个残局,有视频破解教程。
• 残局设计,可不断收集、扩展残局库。
已具备的其他功能
正在开发的功能,以及开发目标
软件架构
编程环境
Visual Studio 2019/2022
C#,NET5.0/6.0,WPF,SQLite3.0
注
随着功能扩展,代码量快速增长,模块间耦合度过高问题越来越严重。下一步打算使用Prism框架对代码进行重构,重构为MVVM模式,以降低模块间的耦合度,增强可扩展性。
绝杀算法流程图
安装教程
使用源码时,在Visual Studio中通过NuGet安装如下包:
Newtonsoft.Json
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=能够解杀
}
}
}
}
界面概览
本文结尾
在这款软件的界面上,你可以看到每一步棋的详细走法,以及对手的思考过程,让你在享受博弈乐趣的同时,也能学习到大师级的棋艺。而流畅的操作体验,更是让你在激烈的对弈中,能够随心所欲地施展你的策略。
更重要的是,作者无私地将全部源码公开,让每一位对编程和中国象棋有兴趣的朋友,都能从中得到启发和灵感。这不仅是一份功能完善的象棋软件,更是一份可用于二次开发和学习的C# WPF的好机会。无论你是编程新手,还是资深程序员,都能从中受益匪浅。如果对你有帮助,欢迎大家分享给更多的小伙伴,让更多的人受益!
源码地址
https://gitee.com/cygsd/Chess
推荐阅读
欢迎扫描下方二维码加我的微信,获取更多技术解决方案并入群交流
版权声明:本文来源于网络素材收集整理或网友供稿,版权归版权所有者所有,如有侵权请联系小编予以删除
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)