五子棋规则简单,黑白棋子只要在棋盘上连成五颗就算赢,不需要太复杂算法,程序用最简单的枚举法就能战胜人类。</P>
曾凡修改了代码错误,编译后运行起来,快速的和程序对战了几局,然后切换到代码编辑页面,找到某一行代码,添加了一个字母,重新编译运行。</P>
连续下了三局,都是程序获胜,曾凡把位置让给薛燕:“你自己试试吧!”</P>
“果然是高手啊,我昨天研究了整天都没找到错在哪呢!”薛燕试过后赞叹道。</P>
“熟能生巧,经验多了就不再是问题,以后多练习!那我回去了!”曾凡站起身说道。</P>
“别急着走呀,不是这一个问题,还有呢!”薛燕说着又打开一个代码文件,这个代码量比五子棋多了几倍。</P>
“你野心不小呀,围棋程序,这个我指点不了,我不会下围棋!”曾凡扫了一眼说道。</P>
“那不一定,程序也不会围棋,你也不会围棋,没有先入为主的成见,或许对算法设计更加有利呢!”薛燕双眼闪亮的说道。</P>
不得不说,她这个想法有一定的道理,没有传统围棋观念的束缚,只按照基本规则来设定程序算法,判断局势行棋,或许更加客观一些。</P>
薛燕的围棋程序已经具备了基本的功能,可以和人进行对弈,只是算法太弱,她自己让两个子还能轻松赢。</P>
曾凡在她原先代码的基础上,按照自己对围棋规则的理解重新写了一套对弈算法,薛燕第一次见识他写代码的样子,噼里啪啦的两只手连续不断的敲击键盘,不到五分钟就写了几百行代码出来。</P>
当然,按照编程语法规则,很多时候一个括号,一个判断语句,几个字母就独占一行,几百行代码实际字符没多少,更多的是逻辑规则。</P>
即便这样,这样的编程速度也堪称恐怖了,写完最后一行,习惯性的存盘后,曾凡解释道:“我加入的算法和你原先的写到一起,对战一下看看效果怎么样!”</P>
编译后运行,开始前多了三个选项:算法A,算法b,算法A对战算法b。</P>
默认的双方行棋时间是十秒钟,对两段程序来说,这时间也差不多了,每分钟可以各走三步棋。</P>
对战开始后,前面几步还规规矩矩,三步以后曾凡的算法b就不按套路走了,根本不理程序A怎么下,开始按自己的思路码格子占地盘。</P>
“你这算法b也太赖皮了,这样下棋还有什么意思?”薛燕一看不乐意了。</P>
“程序下棋只计算输赢,符合规则的前提下,占最多的地盘才能赢,别的都不重要!”</P>
围棋比象棋慢多了,尤其程序不会认输,只要棋盘上还有落子的地方,就会一直下,十几分钟后,薛燕结束了对弈,她的算法A没有获胜希望,继续下也是浪费时间了。</P>
“那我试试它能不能赢我!”薛燕和曾凡换座位,选择和算法b人机对战。</P>
曾凡不懂围棋,看着也感觉没意思,转过头打量书架上面的书籍,靠墙的书架从桌面往上分为五层,摆着都是耳熟能详的文学名着,还有一些名人传记,新闻报刊转载过的热门书籍,没想到薛燕的阅读面还挺宽。</P>
想起自己过去只知道沉迷于武侠小说,曾凡顿时觉得惭愧无比,人与人的差距或许就是这样拉开的吧!