架构人生

C#实现的中国象棋程序开发笔记——遇到困难,请大家帮忙!!

最近,和朋友下象棋,然后想到这个多年陈旧的代码(这些代码有些参考了网络的一些帖子),曾经因为不知道如何实现人机对战而放弃继续研究。如今,这位朋友,给了我又重新找回来的兴趣,所以来这里请大家帮忙,如何实现人机对战,让电脑自动下呢?

当前,已经完成黑、红两方的下棋规则,但是还没有实现人机对战,目前只能人人对战,也就是说一个具有下棋规则的棋盘而已。

为了方便大家给我出招解惑,我先说一下自己程序的原理:

1, 32个棋子都是具体的类,并都是继承于ChessWorldBase。

棋子基类

2. 象棋接口

象棋接口

3. 接下来就是关键的部分,我曾在这里实现机器自动下棋,但是还是碰到一些困难

棋子移动

 

目前,我在网上查了不少资料,大家都想求一个比较厉害的象棋程序,可目前我的程序是最弱智的,CPU自己不会下。有人告诉我,说需要调用一些已经大师们的下棋残局API,而无需自己写一套规则,我觉得也是,不然写棋的那个人一定是下棋高手,可是我棋艺一般,但我很想写一个比较厉害的程序,让我的象棋以CPU的身份来挑战那些大师,呵呵,就是这样一个想法,目前用C#实现,先不讨论性能,能有人指点实现一下也不错。

如果有人有兴趣,我想把代码放在officelive.com上,其实重要不是代码了,感觉这些程序的算法和思想设计很重要,欢迎高手指点一二。:-)

posted on   智艾悦  阅读(3245)  评论(15编辑  收藏  举报

编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
< 2009年6月 >
31 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 1 2 3 4
5 6 7 8 9 10 11

导航

统计

点击右上角即可分享
微信分享提示