回 帖 发 新 帖 刷新版面

主题:如何编写棋类软件。

本人一超级菜鸟,喜好围棋,想制作一款围棋打谱软件,怎奈能力有限。请高手给详细的指点一、二。不胜感激!!!

回复列表 (共8个回复)

沙发

围棋太博大精深了,别的不说,光AI部分就够你受的了

板凳

不用太担心, 电脑的AI也不是很难,穷举多少步,然后选择最优策略而已.
网上有很多资料的, 在一些编程竞赛题里也有出现过这一类的算法的.

3 楼

呵呵问题就是这个最优策略怎么选啊,对围棋没有一定的功力的话根本没法下手

4 楼

刚查了一下,至今最优秀的围棋软件还未及业余一段的水平

还看到这句,"围棋AI是软件工程师的终极挑战"
-_-!

5 楼

那是编程水平的问题,但要做一个出来还是可以试试的.

我的对围棋没什么验研,对象棋倒是做过,只是是用C++在DOS上作的,没怎么图形化.
从编程角度看,复杂了些而已. 
至于难度,那是算法范畴. 
算法的高低与编程水平的高低并不等同的. 算法可能是一时顿悟,是智慧的喷发,而编程却是一种长期锻炼下出来的技能. 

围棋的具体编程手法建议如下:
先刻画棋盘, 并把下棋的规律定义下来. (这部份里,你不用考虑AI部份,你只想着是在编两个人下棋里的环境)
其次, 设定下棋的次序, 流程.(还是不用考虑AI部份, 依然当成是两个人在下棋)
第三, 把其中一人换成电脑控制(这部分也不是很难, 就是在下每一步棋时,添加一个判断函数,判断可不可下)
第四, 这时才开始编写判断函数,也就是AI部份.最好把它集合成一个AI类,便于以后修改.(你可以自已设计算法, 若然不行, 把网上那些围棋所谓的核心算法直复制过来都行).
第五, 就是最后测试部份喽.

退一步说, 即使你进行到第四步就走不下去了, 也做成了一个双人玩的围棋了:)



6 楼

4楼有那种一编就要编出高难度的程序的激情很好,我十分赞赏.

不过对于新手, 可能那样的要求有些高点....

7 楼

楼上的朋友好刻苦,4点多了还在奋战呢

[\quote]算法的高低与编程水平的高低并不等同的. 算法可能是一时顿悟,是智慧的喷发,而编程却是一种长期锻炼下出来的技能. [\quote]

这两方面我都还未够水平,所以就不评论了.

Make it right before you make it faster.
Keep it right when you make it faster.
Make it clear before you make it faster.
Do not sacrifice clarity for small gains in efficiency.
                    --Brian Kernighan 
大家共勉吧

8 楼

编写我是不懂.
但我们公司是开发棋牌游戏的.
我是做市场子滴~
嘿嘿

[em12]

我来回复

您尚未登录,请登录后再回复。点此登录或注册