《一字棋函数说明剖析》由会员分享,可在线阅读,更多相关《一字棋函数说明剖析(9页珍藏版)》请在金锄头文库上搜索。
1、人工智能 一字棋程序说明 主函数main 程序输出当前棋盘并提示判断是否玩家先走步; 然后玩家电脑依次走步; 当当前棋盘能够判断输赢时,游戏结束,否则 直到棋盘下满,游戏结束。 打印函数PrintQP 打印二维数组,即当前棋盘。 玩家走步函数User Input 实现玩家的走步,并判断玩家的走步是否有误, 返回结果。 计算机走步函数AutoDone 该函数是整个程序实现智能的关键所在,函数 中定义两个临时棋盘,一个是给计算机试探走 步使用,另一个是计算机替玩家走步使用,并 结合其他的判断语句和评价函数e_fun,得出一 个最佳的走步坐标,并实现。 评价函数e_fun 采用极大极小函数的思想,该
2、函数对当前棋盘 直接计算count的值。count的值等于所有空格上 都放上计算机的棋子后,计算机的三个棋子所 组成的行、列及对角线的总数减去所有空格上 都放上人的棋子后,人的三个棋子所组成的 行、列及对角线的总数。返回该值。 极大极小策略思想 判定输赢函数IsWin 因为每次导致输赢的只会是当前放置的棋子,输 赢算法中只需从当前点开始扫描判断是否已经 形成三子。对于这个子的八个方向判断是否已 经形成三子。如果有,则说明有一方胜利,如 果没有则继续搜索,直到有一方胜利或者搜索 完整个棋盘。 总结 在人机对垒中,分别编 写了计算机走步函数,人走步函数,评 分函数,判定输赢函数,以及打印函数和主函数。计算机在走步之 前先将当前棋盘复制给临时棋盘,在此我定义了两个临时棋盘,在 临时棋盘1中计算机试探性地走了一步,相应地在临时棋盘2中的相 同位置计算机帮人走了一步,最后计算机再将临时棋盘2送入评价函 数,并记录评分。重置临时棋盘1和2,依次对所有空缺位置进行试 探。 本次设计在对极大极小分析法理解的基础之上,结合自己的一些 想法编写而成,在程序实现初期,出现了很多BUG,例如计算机不 能准确地判断对自己构成危险的走步,还有就是计算机在可以获胜 情况下,没有走对棋子等等。还好这些问题在接下来对程序的不断 完善中得以解决。