关于象棋对弈程序的算法问题

纹枰老妖 2014-12-05 05:08:30
与电脑下过棋的朋友都应该明白,现在的主流软件棋力有多高——比大师更厉害!但是,看下面这个棋局【红棋先走,红胜】:

这个局面就算纯人目测都知道怎么走,第一步应该车六进一吃炮!然而实力比纯人强N倍的电脑想半天都走不出正确招法,这就是象棋对弈程序中算法的缺陷吗?难道作者就没有改良的空间吗?


顺带给大家留一道趣味象棋题【红先胜,20分】:

这幅棋局我曾发表在专业棋坛上,但棋坛里没有棋友能够破解,所以我弄到这里来,就是想看看会写代码的码农是不是比会下棋的棋友更聪明一点。

第一题二十分【其实我问这个问题因为自己想写一个简单的对弈小程序,但苦于象棋的数学模型太大,不知道怎么建立,所以,不回答问题但能推荐一些有关专业书籍的也可以得分】。第二题也是二十分,全部给予第一个破解的朋友
...全文
1776 38 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
38 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2014-12-18
  • 打赏
  • 举报
回复
引用 36 楼 wenpinglaoyao 的回复:
算了吧,虽然我不会下围棋,但我知道这是一个世界级的难题,另外,问一句:悬赏多少钱啊?
自己搜。 分享一个链接“象棋巫师-象棋百科全书”http://www.xqbase.com/
纹枰老妖 2014-12-18
  • 打赏
  • 举报
回复
引用 37 楼 zhao4zhong1 的回复:
[quote=引用 36 楼 wenpinglaoyao 的回复:] 算了吧,虽然我不会下围棋,但我知道这是一个世界级的难题,另外,问一句:悬赏多少钱啊?
自己搜。 分享一个链接“象棋巫师-象棋百科全书”http://www.xqbase.com/[/quote] 赵老师不愧是csdn的大神,这么好的链接以前不发,小气哦
纹枰老妖 2014-12-17
  • 打赏
  • 举报
回复
算了吧,虽然我不会下围棋,但我知道这是一个世界级的难题,另外,问一句:悬赏多少钱啊?
赵4老师 2014-12-17
  • 打赏
  • 举报
回复
楼主如果觉得自己够聪明的话,可以挑战用电脑实现下围棋水平能达到专业九段这一悬赏XXXX万美元的世界级难题。
纹枰老妖 2014-12-15
  • 打赏
  • 举报
回复
引用 24 楼 u012421456 的回复:
算法不懂,
不过,车五平三,士4退5,再车三平七,应该也可以

正解在此——
纹枰老妖 2014-12-13
  • 打赏
  • 举报
回复
到现在还没人能解第二个棋局,唉,程序员并不是多聪明嘛
纹枰老妖 2014-12-13
  • 打赏
  • 举报
回复
引用 27 楼 breezylee2009 的回复:
我只想知道,图片上的象棋是什么软件,我也要去玩一玩,背景很好
是倚天软件。,。。
人称饼哥 2014-12-08
  • 打赏
  • 举报
回复
我只想知道,图片上的象棋是什么软件,我也要去玩一玩,背景很好
莫_问 2014-12-08
  • 打赏
  • 举报
回复
引用 30 楼 lsldd 的回复:
棋类博弈一般都是启发式搜索+ alpha-beta剪枝。 你说的这个残局,程序之所以得不到最优解,很有可能是前几步的局势估计被认为太差,被过早剪掉了。 你可以试试暴力把每一种可能走法都加入搜索中,肯定能得到最优解。不过速度肯定不行。
现在的博弈算法还用这个嘛?
lsldd 2014-12-08
  • 打赏
  • 举报
回复
棋类博弈一般都是启发式搜索+ alpha-beta剪枝。 你说的这个残局,程序之所以得不到最优解,很有可能是前几步的局势估计被认为太差,被过早剪掉了。 你可以试试暴力把每一种可能走法都加入搜索中,肯定能得到最优解。不过速度肯定不行。
赵4老师 2014-12-08
  • 打赏
  • 举报
回复
和局和禁着的情况很复杂的。
  • 打赏
  • 举报
回复
开源的象棋引擎就不少,但是大家的算法总还是有些许不同的。一个象棋引擎解不出来,不能否定所有的引擎。一个成熟的引擎不会犯这种错误
bear234 2014-12-06
  • 打赏
  • 举报
回复
象棋算法不是深度优先搜索吗??? 有这么复杂?
bear234 2014-12-06
  • 打赏
  • 举报
回复
引用 21 楼 wenpinglaoyao 的回复:
[quote=引用 20 楼 bear234 的回复:] 象棋算法不是深度优先搜索吗??? 有这么复杂?
据我所知是裁剪搜索。而且我很好奇如果搜索到已经被计算过的局面【比如:1炮二平五,马8进7。 2马八进七,炮2平5.。。。和1马八进七,炮2平5。 2炮二平五,马8进7 它们是一样的局面】,会怎么办[/quote] 我也不太清楚 只是印象中学算法的时候有人这样说过
百曉生 2014-12-06
  • 打赏
  • 举报
回复
算法不懂, 不过,车五平三,士4退5,再车三平七,应该也可以
纹枰老妖 2014-12-06
  • 打赏
  • 举报
回复
用那个黑卒关死黑车,然后为红车换取自由活动空间
纹枰老妖 2014-12-06
  • 打赏
  • 举报
回复
引用 19 楼 u012421456 的回复:
[quote=引用 16 楼 wenpinglaoyao 的回复:] [quote=引用 14 楼 u012421456 的回复:] 车五平七或平八或平九,楼主你下一步怎么走? 你如果车五平三,那黑棋士4退5,你怎么办
1车五平七,将5平6 2车七进七,将6进1 3车七退八,马7退6。。。 至于红棋车五平三,黑退士的应法,只会让黑棋更快落败 1车五平三,士4退5 2车三进六,卒3进1 3帅六平五,马7退6 4帅五进一,马6退4, 5帅五平四。。。至此,红棋已经大优![/quote] 是我想错了[/quote] 要不,我公布解法?【其实很简单,红棋先通过不断让先,最后在争先】
纹枰老妖 2014-12-06
  • 打赏
  • 举报
回复
引用 20 楼 bear234 的回复:
象棋算法不是深度优先搜索吗??? 有这么复杂?
据我所知是裁剪搜索。而且我很好奇如果搜索到已经被计算过的局面【比如:1炮二平五,马8进7。 2马八进七,炮2平5.。。。和1马八进七,炮2平5。 2炮二平五,马8进7 它们是一样的局面】,会怎么办
百曉生 2014-12-05
  • 打赏
  • 举报
回复
引用 16 楼 wenpinglaoyao 的回复:
[quote=引用 14 楼 u012421456 的回复:] 车五平七或平八或平九,楼主你下一步怎么走? 你如果车五平三,那黑棋士4退5,你怎么办
1车五平七,将5平6 2车七进七,将6进1 3车七退八,马7退6。。。 至于红棋车五平三,黑退士的应法,只会让黑棋更快落败 1车五平三,士4退5 2车三进六,卒3进1 3帅六平五,马7退6 4帅五进一,马6退4, 5帅五平四。。。至此,红棋已经大优![/quote] 是我想错了
纹枰老妖 2014-12-05
  • 打赏
  • 举报
回复
引用 15 楼 zhao4zhong1 的回复:
七星聚会 跨海征东 尺蚓降龙 野马操田 炮打两狼关 ……
哈哈,看不出来啊赵老师,我们竟有共同的爱好!实不相瞒,我算得上一个排局“家”,这种带有陷阱的江湖局也排拟过不少,在华工、弘毅和大师网上都有我的“倩影”,我所用的网名都是一致的,叫纹枰老妖,有缘见!
加载更多回复(17)

33,322

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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