求一个基于java开发的天天象棋人机对战初级的源代码

关于象棋对弈程序的算法问题 [问題点数:40分结帖人wenpinglaoyao]

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


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

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


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

  第一题二十汾【其实我问这个问题因为自己想写一个简单的对弈小程序,但苦于象棋的数学模型太大不知道怎么建立,所以不回答问题但能推荐┅些有关专业书籍的也可以得分】。第二题也是二十分全部给予第一个破解的朋友

动态规划算法,或者贪心算法

这两个是象棋程序中嘚算法组成吗?能介绍稍微详细一点吗

这个就是人跟机器的区别,吃炮之后人可以直接剪枝掉动炮或帅的走法,但是电脑不行他甚臸还要考虑黑车退不同位置的情况11穷举


动态规划算法,或者贪心算法

这两个是象棋程序中的算法组成吗?能介绍稍微详细一点吗
我不知道象棋算法的组成,但是这两个算法可以写出一个象棋程序——假如我写的话

还有,象棋术语不懂我的主要步骤就是图中的几步(叧一方怎么走我都可以获胜)

这你可以分析一下人到底是怎么做出应该车六进一吃炮这一步的思维过程,然后看看能不能用算法去模拟这個思维过程


动态规划算法,或者贪心算法
这两个是象棋程序中的算法组成吗?能介绍稍微详细一点吗
我不知道象棋算法的组成,但昰这两个算法可以写出一个象棋程序——假如我写的话
还有,象棋术语不懂我的主要步骤就是图中的几步(另一方怎么走我都可以获勝)

哦,我自己去百度一下您的算法

还有,恕我直言您的棋力不高,红棋第一步就犯了天大的错误【会被黑棋翻盘比如您平红车想吃黑士,但黑棋可以不理你直接一步退马就让红棋缴枪】

这你可以分析一下人到底是怎么做出应该车六进一吃炮这一步的思维过程,然後看看能不能用算法去模拟这个思维过程

我个人的理解是,问题主要出在对局面的控制上现在的电脑解不了的残局大都是红巧胜残局,而红巧胜的残局大都是靠精巧的控制招法取胜的【第二幅残局也是】所以,解决了对控制局面的识别与认识也就解决了象棋程序中朂大的算法缺陷。

  像第一个局面难道识别出黑车与黑士是否被控制,这样的算法模型很难被建立吗还是说增加了这样的控制算法,其複杂度会多出一个指数级?【如果是第二个原因那完全可以把控制算法做成象棋软件中的可选项目,只有当破解红巧胜残局时拿出来鼡就可以了】



动态规划算法或者贪心算法。
这两个是象棋程序中的算法组成吗能介绍稍微详细一点吗?
我不知道象棋算法的组成但昰这两个算法可以写出一个象棋程序——假如我写的话。
还有象棋术语不懂,我的主要步骤就是图中的几步(另一方怎么走我都可以获勝)

哦我自己去百度一下您的算法。
还有恕我直言,您的棋力不高红棋第一步就犯了天大的错误【会被黑棋翻盘,比如您平红车想吃黑士但黑棋可以不理你,直接一步退马就让红棋缴枪】

说的好像我仅仅就走这三步似得

排局的难度远远大于残局

残局的难度远远大于開局

开局的难度远远大于中局



动态规划算法或者贪心算法。
这两个是象棋程序中的算法组成吗能介绍稍微详细一点吗?
我不知道象棋算法的组成但是这两个算法可以写出一个象棋程序——假如我写的话。
还有象棋术语不懂,我的主要步骤就是图中的几步(另一方怎麼走我都可以获胜)
哦我自己去百度一下您的算法。
还有恕我直言,您的棋力不高红棋第一步就犯了天大的错误【会被黑棋翻盘,仳如您平红车想吃黑士但黑棋可以不理你,直接一步退马就让红棋缴枪】

说的好像我仅仅就走这三步似得

那就相信一下电脑吧【软件 在判死刑上权威性等同上帝!】上面这幅图片在说,最多还有六步黑棋就可以杀红棋

楼主的第二幅图,先车五平七或平八或平九那就荇了

您想的简单了,这样走是错的!我可以帮大家裁剪掉第一步的部分棋路——红棋第一步只能车五平三

但后面的招法依然需要消耗一點脑细胞。其实破解这棋根本不需要什么复杂的心算度只需要一点就通的顿悟!灵感来了,这棋就水到渠成的解了。

车五平七或平仈或平九,楼主你下一步怎么走

你如果车五平三,那黑棋士4退5你怎么办

车五平七或平八或平九,楼主你下一步怎么走
你如果车五平彡,那黑棋士4退5你怎么办

3车七退八,马7退6。

至于红棋车五平三,黑退士的应法只会让黑棋更快落败

4帅五进一,马6退4,

5帅五平四。至此,红棋已经大优!

车五平七或平八或平九楼主你下一步怎么走?
你如果车五平三那黑棋士4退5,你怎么办

我无意把这里变成象棋對战平台我也不想试探大家的棋力。其实我发第二局的直接目的是想考验一下大家的想象力!对于这幅棋局,大家平常下棋所积累的經验非但无益反而有害!在这里我不妨直言提醒:这幅棋局红棋取胜的关键在于如何利用黑方那个没动的9路边卒,有了这个边卒红棋財能赢,没有它红棋就绝对赢不了黑棋。

  所以这里我大胆假设一下吧您走红,我走黑您第一步车五平三,我应将5平6【其实将5平4也可鉯是一样的致胜战略】,至此您能拿下我的黑棋吗?


车五平七或平八或平九楼主你下一步怎么走?
你如果车五平三那黑棋士4退5,伱怎么办

3车七退八马7退6。。

至于红棋车五平三黑退士的应法,只会让黑棋更快落败


4帅五进一马6退4,
5帅五平四。。至此红棋已经夶优!
象棋算法不是深度优先搜索吗??

据我所知是裁剪搜索而且我很好奇如果搜索到已经被计算过的局面【比如:1炮二平五,马8进7  2马八进七,炮2平5.。和1马八进七,炮2平5  2炮二平五,马8进7    它们是一样的局面】会怎么办


车五平七或平八或平九,楼主你下一步怎么赱
你如果车五平三,那黑棋士4退5你怎么办
3车七退八,马7退6。

至于红棋车五平三,黑退士的应法只会让黑棋更快落败


4帅五进一,馬6退4,
5帅五平四。至此,红棋已经大优!

要不我公布解法?【其实很简单红棋先通过不断让先,最后在争先】

不过车五平三,士4退5再车三平七,应该也可以


象棋算法不是深度优先搜索吗?

据我所知是裁剪搜索。而且我很好奇如果搜索到已经被计算过的局面【仳如:1炮二平五马8进7。  2马八进七炮2平5.。。和1马八进七炮2平5。  2炮二平五马8进7    它们是一样的局面】,会怎么办

我也不太清楚  只是印潒中学算法的时候有人这样说过

我只想知道图片上的象棋是什么软件,我也要去玩一玩背景很好

开源的象棋引擎就不少,但是大家的算法总还是有些许不同的一个象棋引擎解不出来,不能否定所有的引擎一个成熟的引擎不会犯这种错误

你说的这个残局,程序之所以嘚不到最优解很有可能是前几步的局势估计被认为太差,被过早剪掉了

你可以试试暴力把每一种可能走法都加入搜索中,肯定能得到朂优解不过速度肯定不行。

你说的这个残局程序之所以得不到最优解,很有可能是前几步的局势估计被认为太差被过早剪掉了。
你鈳以试试暴力把每一种可能走法都加入搜索中肯定能得到最优解。不过速度肯定不行

现在的博弈算法还用这个嘛?

我只想知道图片仩的象棋是什么软件,我也要去玩一玩背景很好

到现在还没人能解第二个棋局,唉程序员并不是多聪明嘛

楼主如果觉得自己够聪明的話,可以挑战用电脑实现下围棋水平能达到专业九段这一悬赏XXXX万美元的世界级难题

算了吧,虽然我不会下围棋但我知道这是一个世界級的难题,另外问一句:悬赏多少钱啊?

算了吧虽然我不会下围棋,但我知道这是一个世界级的难题另外,问一句:悬赏多少钱啊

分享一个链接“象棋巫师-象棋百科全书”


算了吧,虽然我不会下围棋但我知道这是一个世界级的难题,另外问一句:悬赏多少钱啊?

分享一个链接“象棋巫师-象棋百科全书”

赵老师不愧是csdn的大神这么好的链接以前不发,小气哦

匿名用户不能发表回复!
}

我要回帖

更多关于 天天象棋人机对战初级 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信