基于Java的黑白棋游戏的设计
摘 要
黑白棋作为一个棋类竞技运动,在民间十分流行,为了熟悉黑白棋规则及技巧,以及研究简单的人工智能,决定用Java开发黑白棋游戏。主要完成了人机对战和玩家之间联网对战2个功能。网络连接部分为Socket编程应用,客户端和服务器端的交互用Class Message定义,有很好的可扩展性,客户端负责界面维护和收集用户输入的信息,及错误处理。服务器维护在线用户的基本信息和任意两个对战用户的棋盘信息,动态维护用户列表。在人机对弈中通过深度搜索和估值模块,来提高电脑棋手的智能。分析估值模块中的影响精准性的几个要素,以及提出若干提高精准性的办法,以及对它们搜索的节点数进行比较,在这些算法的基础上分析一些提高提高电脑AI方案,如递归算法、电脑学习等。算法的研究有助于理解程序结构,增强逻辑思维能力,在其他人工智能方面也有很大的参考作用。
关键词:深度搜索;估值;电脑AI;黑白棋;算法
Gobang Java-based games design
Abstract
Gobang chess as a sport, is very popular in civil, in order to become familiar with gobang rules and techniques, and the study of simple artificial intelligence, decided to use the Java Development gobang games. Completed a major man-machine war and the war gamers interconnection between the two functions. Network Connection Socket Programming for some applications, client and server interaction with Class Message definition, a very good scalability, Client interface is responsible for the collection and maintenance of user input information, and error handling. Server users maintain online basic information and arbitrary two-time users of the chessboard of information, dynamic maintenance user list. The man-machine players through depth search and valuation module, the computer players to improve intelligence. Analysis Module valuation of the precise elements, as well as a number of increased precision, and on their search for nodes, In these algorithms on the basis of analysis to raise some computer AI programs, such as recursive algorithm, computer learning. Algorithm of procedures contribute to the understanding of the structure, logical thinking ability, In other areas of artificial intelligence have great references.
.
Key words: Search depth; Valuation; Computer AI; Gobang ; Algorithm
目 录
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 的缩写),亦有连黑白、黑白连、串珠、五目、五目碰、五格等多种称谓。
黑白棋起源于古代中国,发展于日本,风靡于欧洲。对于它与围棋的关系有两种说法,一说早于围棋,早在 “ 尧造围棋 ” 之前,民间就已有黑白棋游戏;一说源于围棋,是围棋发展的一个分支。在中国的文化里,倍受人们的青睐。本世纪初黑白棋传入欧洲并迅速风靡全欧。通过一系列的变化,使黑白棋这一简单的游戏复杂化、规范化,而最终成为今天的职业连珠黑白棋,同时也成为一种国际比赛棋。
Java语言是当今最为流行的程序设计语言之一作为一门非常优秀和极为健壮的编程语言,它同时具有的面向对象,与平台无关,分布式应用,安全,稳定和多线程等优良的特征,使用Java语言,不仅可以开发出功能强大的大型应用程序,而且Java语言本身突出的跨平台的特性也使得它特别适合于Internet上的应用开发,可以这样说,Java的出现使得所开发的应用程序“一次编写,处处可用”的实现成为了可能。