摘 要
五子棋作为一个棋类竞技运动,在民间十分流行,为了熟悉五子棋规则及技巧,以及研究简单的人工智能,决定用Java开发五子棋游戏。主要完成了人机对战和玩家之间联网对战2个功能。网络连接部分为Socket编程应用,客户端和服务器端的交互用Class Message定义,有很好的可扩展性,客户端负责界面维护和收集用户输入的信息,及错误处理。服务器维护在线用户的基本信息和任意两个对战用户的棋盘信息,动态维护用户列表。在人机对弈中通过深度搜索和估值模块,来提高电脑棋手的智能。分析估值模块中的影响精准性的几个要素,以及提出若干提高精准性的办法,以及对它们搜索的节点数进行比较,在这些算法的基础上分析一些提高电脑AI方案,如递归算法、电脑学习等。算法的研究有助于理解程序结构,增强逻辑思维能力,在其他人工智能方面也有很大的参考作用。
关键词:深度搜索;估值;电脑AI;五子棋;算法
目 录
论文总页数:23页
1 引言 1
1.1 课题背景 1
1.2 本课题研究的意义 1
1.3 本课题的研究方法 2
2 课题相关基础 2
2.1 五子棋 2
2.1.1 棋盘和棋子 2
2.1.2 规则及解释 3
2.1.3 五子棋常用术语 4
2.1.4 五子棋攻防 7
3 JAVA 8
3.1 JAVA简介 8
3.2 JAVA开发环境 9
4 课题详细研究方法 10
4.1 程序结构说明 10
4.2 棋盘及棋子的类 11
4.2.1 棋盘 11
4.2.2 棋子 13
4.3 胜负判断条件 13
4.4 网络对战 15
4.5 电脑AI 17
结 论 21
参考文献 21
致 谢 22
声 明 23
1 引言
1.1 课题背景
五子棋是起源于中国古代的传统黑白棋种之一。现代五子棋日文称之为连珠,英译为Renju,英文称之为Gobang或FIR(Five in a Row 的缩写),亦有连五子、五子连、串珠、五目、五目碰、五格等多种称谓。
五子棋起源于古代中国,发展于日本,风靡于欧洲。对于它与围棋的关系有两种说法,一说早于围棋,早在 “ 尧造围棋 ” 之前,民间就