基于Java的五子棋游戏的设计.doc
文本预览下载声明
基于Java的五子棋游戏的设计
摘要:五子棋作为一个棋类竞技运动,在民间十分流行,为了熟悉五子棋规则及技巧,以及研究简单的人工智能,决定用Java开发五子棋游戏。主要完成了人机对战和玩家之间联网对战2个功能。网络连接部分为Socket编程应用,客户端和服务器端的交互用Class Message定义,有很好的可扩展性,客户端负责界面维护和收集用户输入的信息,及错误处理。服务器维护在线用户的基本信息和任意两个对战用户的棋盘信息,动态维护用户列表。在人机对弈中通过深度搜索和估值模块,来提高电脑棋手的智能。分析估值模块中的影响精准性的几个要素,以及提出若干提高精准性的办法,以及对它们搜索的节点数进行比较,在这些算法的基础上分析一些提高电脑AI方案,如递归算法、电脑学习等。算法的研究有助于理解程序结构,增强逻辑思维能力,在其他人工智能方面也有很大的参考作用。
关键词:深度搜索 估值 电脑AI 五子棋 算法
目 录
一、引言……………………………………………………………………….1
(一)课题背景………………………………………………………………….1
(二)本课题研究的意义 …………………………………………………….1
(三)本课题的研究方法…………………………………………………………….2
二、课题相关基础………………………………………………………………… .2
(一) 五子棋 ………………………………………………………………….2
1、五子棋简介……………………………………………………………….2
2、棋盘和棋子 ……………………………………………………………….3
3、 规则及解释 ………………………………………………………………….4
4、 五子棋常用术语 ………………………………………………………….4
5、五子棋攻防 ………………………………………………………………….5
(二)Java ………………………………………………………………….6
1、Java简介 ………………………………………………………………….6
2、Java程序的开发过程……………………………………………………………….7
3、Java开发环境 ……………………………………………………………….8
三、课题详细研究方法 …………………………………………………………….8
(一)程序结构说明 ……………………………………………………….9
(二)棋盘及棋子的类 ………………………………………………………….9
1、棋盘 ………………………………………………………………….9
2、棋子 ………………………………………………………………….11
3、胜负判断条件 ……………………………………………………………….11
4、网络对战 ………………………………………………………………….13
5、电脑AI ………………………………………………………………….16
结 论………………………………………………………………… .20
参考文献………………………………………………………………….20
一、引言
(一)课题背景
五子棋是起源于中国古代的传统黑白棋种之一。现代五子棋日文称之为连珠,英译为Renju,英文称之为Gobang或FIR(Five in a Row 的缩写),亦有连五子、五子连、串珠、五目、五目碰、五格等多种称谓。
五子棋起源于古代中国,发展于日本,风靡于欧洲。对于它与围棋的关系有两种说法,一说早于围棋,早在 “ 尧造围棋 ” 之前,民间就已有五子棋游戏;一说源于围棋,是围棋发展的一个分支。在中国的文化里,倍受人们的青睐。本世纪初五子棋传入欧洲并迅速风靡全欧。通过一系列的变化,使五子棋这一简单的游戏复杂化、规范化,而最终成为今天的职业连珠五子棋,同时也成为一种国际比赛棋。
Java语言是当今最为流行的程序设计语言之一 作为一门非常优秀和极为健壮的编程语言,它同时具有的面向对象,与平台无关,分布式应用,安全,稳定和多线程等优良的特征,使用Java语言,不仅可以开发出功能强大的大型应用程序,而且Java语言本身突出的跨平台的特性也使得它特别适合于Internet上的应用开发,可以这样说,Java的出现使得所开发的应用程序“一次编写,处处可用”的实现成为了可能。
(二)本课题研究的意义
近来随着计算机的快速发展,各种各样的电脑游戏层出不穷,使得我们能有更多的娱乐项目,而棋类游戏能起到锻炼人的思维和修身养性的作用,而且棋类游戏水平颇高,大有与人脑分庭抗礼
显示全部