基于JAVA的五子棋游戏的设计—毕业设计论文.docx

上传人:b****1 文档编号:148911 上传时间:2022-10-04 格式:DOCX 页数:33 大小:554.79KB
下载 相关 举报
基于JAVA的五子棋游戏的设计—毕业设计论文.docx_第1页
第1页 / 共33页
基于JAVA的五子棋游戏的设计—毕业设计论文.docx_第2页
第2页 / 共33页
基于JAVA的五子棋游戏的设计—毕业设计论文.docx_第3页
第3页 / 共33页
基于JAVA的五子棋游戏的设计—毕业设计论文.docx_第4页
第4页 / 共33页
基于JAVA的五子棋游戏的设计—毕业设计论文.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

基于JAVA的五子棋游戏的设计—毕业设计论文.docx

《基于JAVA的五子棋游戏的设计—毕业设计论文.docx》由会员分享,可在线阅读,更多相关《基于JAVA的五子棋游戏的设计—毕业设计论文.docx(33页珍藏版)》请在冰豆网上搜索。

基于JAVA的五子棋游戏的设计—毕业设计论文.docx

毕业设计 (论文 )

基于Java的五子棋游戏的设计

论文作者姓名:

申请学位类别:

申请学位类别:

指导教师姓名(职称

论文提交日期:

基于Java的五子棋游戏的设计摘 要

五子棋作为一个棋类竞技运动,在民间十分流行,为了熟悉五子棋规则及技巧,以及研究简单的人工智能,决定用Java开发五子棋游戏。

主要完成了人机对战和玩家之间联网对战2个功能。

网络连接部分为Socket编程应用,客户端和服务器端的交互用ClassMessage定义,有很好的可扩展性,客户端负责界面维护和收集用户输入的信息,及错误处理。

服务器维护在线用户的基本信息和任意两个对战用户的棋盘信息,动态维护用户列表。

在人机对弈中通过深度搜索和估值模块,来提高电脑棋手的智能。

分析估值模块中的影响精准性的几个要素,以及提出若干提高精准性的办法,以及对它们搜索的节点数进行比较,在这些算法的基础上分析一些提高电脑AI方案,如递归算法、电脑学习等。

算法的研究有助于理解程序结构,增强逻辑思维能力,在其他人工智能方面也有很大的参考作用。

关键词:

深度搜索;估值;电脑AI;五子棋;算法

GobangJava-basedgamesdesign

Abstract

Asasport,gobangisverypopularincivil,inordertobecomefamiliarwithgobangrulesandtechniques,andthestudyofsimpleartificialintelligence,IdecidetousetheJavatodevelopegobanggamesandcompletethetwofunctionsincludingman-machinewarandman-manwar.NetworkConnectionisSocketProgrammingforsomeapplications,clientandserverinteractionisdefinitedbyClassMessage,whichisaverygoodscalability,Clientinterfaceisresponsibleforthecollectionandmaintenanceofuserinputinformation,anderrorhandling.Serverusersmaintainonlinebasicinformationandarbitrarytwo-timeusersofthechessboardofinformation,dynamicmaintenanceuserlist.Duringtheman-machineplayers,itimprovesintelligenceofthecomputerplayersthroughdepthsearchandvaluationmodule.AnalyzesModulevaluationofthepreciseelements,aswellasanumberofincreasedprecision,andcomparestheirsearchfornodes,whichraisessomecomputerAIprogramsonthebasisofanalysis,suchasrecursivealgorithm,computerlearning.Algorithmofprocedurescontributetotheunderstandingofthestructure,logicalthinkingability,Inotherareasofartificialintelligencehasgreatreferences.

.

Keywords:

Searchdepth;Valuation;ComputerAI;Gobang;Algorithm

目 录

论文总页数:

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

3JAVA 8

3.1JAVA简介 8

3.2JAVA开发环境 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(FiveinaRow的缩写),亦有连五子、五子连、串珠、五目、五目碰、五格等多种称谓。

五子棋起源于古代中国,发展于日本,风靡于欧洲。

对于它与围棋的关系有两种说法,一说早于围棋,早在“尧造围棋”之前,民间就已有五子棋游戏;一说源于围棋,是围棋发展的一个分支。

在中国的文化里,倍受人们的青睐。

本世纪初五子棋传入欧洲并迅速风靡全欧。

通过一系列的变化,使五子棋这一简单的游戏复杂化、规范化,而最终成为今天的职业连珠五子棋,同时也成为一种国际比赛棋。

Java语言是当今最为流行的程序设计语言之一 作为一门非常优秀和极为健壮的编程语言,它同时具有的面向对象,与平台无关,分布式应用,安全,稳定和多线程等优良的特征,使用Java语言,不仅可以开发出功能强大的大型应用程序,而且Java语言本身突出的跨平台的特性也使得它特别适合于

Internet上的应用开发,可以这样说,Java的出现使得所开发的应用程序“一次编写,处处可用”的实现成为了可能。

1.2本课题研究的意义

近来随着计算机的快速发展,各种各样的电脑游戏层出不穷,使得我们能有更多的娱乐项目,而棋类游戏能起到锻炼人的思维和修身养性的作用,而且棋类游戏水平颇高,大有与人脑分庭抗礼之势。

其中战胜过国际象棋世界冠军-卡斯帕罗夫的“深蓝”便是最具说服力的代表;其它像围棋的“手淡”、象棋的

“将族”等也以其优秀的人工智能深受棋迷喜爱。

越来越多的具有智能的机器进入了人类的生活,人工智能的重要性如今显而易见。

自己对人工智能比较感兴趣,而五子棋游戏程序的开发实现这个课题,正好提供给我这样一个研究的机会,通过对人工智能中博弈方面的研究(人机对弈),让我在简单的人机对弈全局设计,以及具体到相关算法上有了深入的了解。

人工智能属于计算机科学的领域,它以计算机技术为基础,近几十年来,它的理论和技术已经日益成熟,应用领域也正在不断扩大,显示出强大的生命力。

人工智能大致可以分成几个学科,它们每一个都是独特的,但是它们常常又互相结合起来完成设计任务,这时,这些学科之间的差别就变的很模糊。

人工智能在专家系统,自然语言理解,自动定理证明,自动程序设计,人工智能在机器人学、模式识别、物景分析、数据库的智能检索、机器下棋(实质上是博弈论问题)和家用电器智能化等领域都有广泛的应用。

而这个课题就是和人

第15页共23页

工智能中的博弈论领域紧密相关的。

这个题目核心是人工智能和Socekt编程,。

并且人工智能中的博弈部分,由于采用了大量的搜索算法,其中很多被利用到各方面。

它的概念、方法和技术,正在各行各业广泛渗透。

智能已经成为当今各种新产品、新装备的发展方向。

所以,趁着这个机会,对人工智能中比较容易实现的人机博弈进行了解研究学习,也是很实用且很有必要的。

1.3本课题的研究方法

在进行游戏设计之前,首先决定的第一个问题就是,使用什么开发环境来编写环境?

自己虽然比较熟悉Java语言,但是实际开发项目经验很少,所以决定用Jcreator,其拥有高亮语法编辑、使用向导以及完全定制的用户界面,最主要的是能够自动查找文件于Main方法或Html文件以支持Java小应用程序,然后启动相应的工具。

其次确定整个程序的结构框架。

由于Applet运行速度较慢,如果在加上算法搜索时间,显然不符合程序的设计要求,决定用Java应用程序开发.整个程序的功能实现流程是这样的:

网络对战涉及算法较少,所以先实现网络部分,实现基本的棋盘和棋子的类,添加判断胜负条件,这部是基础,也是很重要的,电脑AI也在这些基础上添加上来的。

这个题目的2个功能包括2个重要算法,电脑AI和胜负条件,胜负条件运算量不大,有固定的模式。

难点是人工智能,可以这样说,人工智能的好坏决定了这个题目的完成深度。

所以,大部份时间花在AI算法的研究和改进上,对于算法我掌握的不多,研究了一些国内的五子棋算法,参考了一些游戏设计算法,详细比较各种算法的优缺点,而且参考了现代五子棋比赛的各种规则和技巧,尽量联系实际,努力提高电脑AI。

2课题相关基础

2.1五子棋

2.1.1棋盘和棋子

现代五子棋棋盘,经过国际棋联的多次修改,最终定为15X15路,即

棋盘由横竖各15条平行线交叉组成,共有225个交叉点;棋盘上共有五个星

位,中间的星位称为天元,周围四点为小星,与围棋盘略有不同。

见图 1

图1棋盘

五子棋的棋子和围棋相同,分黑白2种颜色,通常为散圆形,有一面凸

起或二面凸起等形状,一副棋子总数为225枚,其中黑子113枚,白子112

枚。

关于计时,正规比赛按不同级别设置了不同的时间限制,一般的玩家都没有这个限制。

2.1.2规则及解释

1:

黑棋先行,白棋随后。

从天元开始相互顺序落子。

2:

最先在棋盘的横向、竖向、斜向形成连续的相同色五个棋子的一方为胜利。

3:

黑棋禁手判负、白棋无禁手。

黑棋禁手包括“三、三”;“四、四”;

“长连”。

黑方只能用“四、三”去取胜。

4:

如分不出胜负,则定位平局。

5:

对局中拔子、中途退场均判为负

6:

五连与禁手同时形成,先五为胜。

7:

黑方禁手形成时,白方应立即指出。

若白方未发现或发现后不立即指正,反而继续落子,则不能判黑方负。

五子棋是由两个人在一盘棋上进行对抗的竞技运动。

在对局开始时,先由

执黑棋的一方将一枚棋子的落在“天元”上,然后由执白棋的一方在黑棋周围的交叉点上落子。

如此轮流落子直到某一方首先在棋盘的直线横线或斜线上形成连续的五子或五子以上,则该方就算获胜。

但是五子棋的特点是先行的一方优势很大。

因此,在职业比赛种对黑方做了种种限制,以利公平竞争。

黑白双方的胜负结果必须按照职业五子棋的规则要求来决定。

2.1.3五子棋常用术语

二:

二是五子棋的一切进攻的基础;又分为活二和死二。

活二:

即再下一子可形成活三的二,见图2。

死二:

即再下一子可形成死三的二,见图3。

图2 活二 图3 死二

三:

三是五子棋最常见的攻击手段。

三分为活三、死三、眠三。

活三:

为再下一子即可变成活四的三(活四介绍见后)。

或三分为连三、跳三。

见图4。

我们通常所说的“三”。

就是指活三而言。

如果是死三,将特别指

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 党团建设

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1