再次赠送Vb.net中国象棋源码

zsx108 2010-04-18 10:48:40
http://download.csdn.net/source/2256197

资源分:1分
新增:
空着裁剪
哈希表
...全文
408 32 打赏 收藏 转发到动态 举报
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
zsx108 2010-04-25
  • 打赏
  • 举报
回复
静态搜索函数“Function qSearch”里,要加一句“alpha=-9999”,这样棋力才会变强。
myhope88 2010-04-23
  • 打赏
  • 举报
回复
不错,感谢分享
yufenghua 2010-04-22
  • 打赏
  • 举报
回复
up一下
lvshiyu21 2010-04-22
  • 打赏
  • 举报
回复
谢谢楼主啊
zsx108 2010-04-22
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 zcsor 的回复:]
空着裁剪原理:
......

这个叙述恐怕不全面,我的认识是空招剪裁其实还应该用于预测对手最好的招法。

[/Quote]

空着裁剪我是看下面这篇文章
http://www.xqbase.com/computer/advanced_nullmove.htm

说明书说会出现“偶然的对策错误”。验证方法是:

  a. 深度小于或等于6时,用R = 2的空着裁剪进行搜索;
  b. 深度大于8时,用R = 3;

  a. 用R = 3的空着裁剪进行搜索;
  b. 如果高出边界,那么做一层的搜索
  d. 如果一层的搜索高出边界,那么带验证的空着裁剪是成功的,否则必须重新做完全的搜索。


这些我还没有编
llsus 2010-04-22
  • 打赏
  • 举报
回复
你要不就把图片做成资源文件,要不就放在某个子目录中,把那么多图放在可执行文件目录中乱糟糟的算个什么事啊
myself1979 2010-04-22
  • 打赏
  • 举报
回复
限时程序有问题
zsx108 2010-04-21
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 chhming 的回复:]
楼主,我看了一下,好像走棋时,背景会反色。只显示棋盘线的交叉点。这是怎么回事。
呵呵,还有一个问题就是,智能程度低了点。
[/Quote]

这个软件做得不够好,只能当入门教材。
哈希表有错误,删除后就会变强(如果没有错误,会更快)。
这是删除后的程序(第二个下载)
http://bbs.xqbase.com/viewthread.php?tid=4410&fpage=3


删除哈希表后仍然可以算到4层。车、炮在运算时最耗时,如果双方的车炮总数少2个,就可以算到5层,少5个就可以算到6层。
这个程序还没有做完,未来我准备加入局面评价,比如空头炮要减分。象眼的评价是,如果对方少士,而且车已经过河,就要加分。炮沉底也要加分。
nilengceng85 2010-04-21
  • 打赏
  • 举报
回复
支持 支持 .............
liuyileneal 2010-04-21
  • 打赏
  • 举报
回复
uuuuuuuuuup
chhming 2010-04-21
  • 打赏
  • 举报
回复
楼主,我看了一下,好像走棋时,背景会反色。只显示棋盘线的交叉点。这是怎么回事。
呵呵,还有一个问题就是,智能程度低了点。
fqw991 2010-04-21
  • 打赏
  • 举报
回复
接分。。。
zsx108 2010-04-21
  • 打赏
  • 举报
回复
压缩包里的“Picture”目录要放在“E:\Arhat”
hzybc 2010-04-21
  • 打赏
  • 举报
回复
升级到VS2008,没有图片文件
zsx108 2010-04-21
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 sxmonsy 的回复:]
能不能麻烦楼主发个C#的?
[/Quote]

C#我不会。
程序注释补充:

REM 如果Chess是个好棋子,就返回True
Function GoodMove(ByVal Chess As Byte, ByVal xy As Byte) As Boolean

Dim i As Byte

'If Chess > 0 Then Return True Else Return False 执行这一句速度慢

''现在棋软都是采用下面的程序,执行后会忽视兵。比如联众外挂苍鹰软件有时会无缘无故送兵给人吃
If (Chess > 0 And Chess < 23) Or (Chess > 31 And Chess < 38) Then Return True ''吃王、车、马、炮都是好棋

''是兵,根据兵的位置决定是不是好的走法

''如果是兵
If IsArms(Chess) Then


If Chess < 32 Then

''是黑方的兵
If i > 47 Then Return True

Else

''是红方的兵
If i < 44 Then Return True

End If

End If

Return False

End Function



REM ******************************************************************************************
REM 静态搜索:只搜索吃子走法,取代局面评价。
Public Function qSearch(ByVal Cer As Byte, ByVal Alpha As Integer, ByVal Beta As Integer, ByVal Steps As Integer) As Integer
.....





空着裁剪原理:

就好比像打架时,根据自己的能力给对手一个出击的机会,来增加自己的信心。如果任凭对手攻击也无法击倒你,那么你攻击他的时候他会输掉。
  我们不讨论这个策略了,现在来谈它是如何运用在象棋中的。在你搜索着法以前(事实上在你生成着法以前),你走棋,让对手先走,这样连同上一步是对方走棋,包括这一步,你共让了两步。如果这个搜索的结果大于或等于Beta,那么你简单地返回Beta而不需要搜索任何着法。
  这个思想就给了对手出击的机会,如果你的局面仍然好到超过Beta的程度,你就假设如果你搜索了所有的着法也会超过Beta。
liuyilin888 2010-04-21
  • 打赏
  • 举报
回复
谢谢...
sxmonsy 2010-04-21
  • 打赏
  • 举报
回复
能不能麻烦楼主发个C#的?
yifei315615 2010-04-21
  • 打赏
  • 举报
回复
谢谢...
清晨曦月 元老 2010-04-21
  • 打赏
  • 举报
回复
又出炉了,不错,呵呵。不过没时间看喽。。。。
zsx108 2010-04-21
  • 打赏
  • 举报
回复
苍鹰很强的,我在联众拿了2200多分,本来分数还可以再上去,因为很多人在骂用外挂,所以我就没用了。
加载更多回复(12)

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧