JAVA五子棋对弈程序的设计与实现毕业论文.docx

您所在的位置:网站首页 java五子棋小程序 JAVA五子棋对弈程序的设计与实现毕业论文.docx

JAVA五子棋对弈程序的设计与实现毕业论文.docx

2023-04-14 20:17| 来源: 网络整理| 查看: 265

JAVA五子棋对弈程序的设计与实现毕业论文.docx

《JAVA五子棋对弈程序的设计与实现毕业论文.docx》由会员分享,可在线阅读,更多相关《JAVA五子棋对弈程序的设计与实现毕业论文.docx(63页珍藏版)》请在冰豆网上搜索。

JAVA五子棋对弈程序的设计与实现毕业论文.docx

JAVA五子棋对弈程序的设计与实现毕业论文

 

三峡学院毕业设计(论文)

 

题目:

JAVA五子棋对弈程序的设计与实现

 

毕业设计(论文)原创性声明和使用授权说明

原创性声明

本人重承诺:

所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作与取得的成果。

尽我所知,除文中特别加以标注和致的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得与其它教育机构的学位或学历而使用过的材料。

对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了意。

作者签名:

 日 期:

指导教师签名:

日  期:

使用授权说明

本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:

按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部容。

作者签名:

 日 期:

学位论文原创性声明

本人重声明:

所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。

除了文中特别加以标注引用的容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。

对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。

本人完全意识到本声明的法律后果由本人承担。

作者签名:

日期:

年月日

学位论文使用授权书

本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。

本人授权大学可以将本学位论文的全部或部分容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。

涉密论文按学校规定处理。

作者签名:

日期:

年月日

导师签名:

日期:

年月日

 

指导教师评阅书

指导教师评价:

一、撰写(设计)过程

1、学生在论文(设计)过程中的治学态度、工作精神

□优□良□中□与格□不与格

2、学生掌握专业知识、技能的扎实程度

□优□良□中□与格□不与格

3、学生综合运用所学知识和专业技能分析和解决问题的能力

□优□良□中□与格□不与格

4、研究方法的科学性;技术线路的可行性;设计方案的合理性

□优□良□中□与格□不与格

5、完成毕业论文(设计)期间的出勤情况

□优□良□中□与格□不与格

二、论文(设计)质量

1、论文(设计)的整体结构是否符合撰写规?

□优□良□中□与格□不与格

2、是否完成指定的论文(设计)任务(包括装订与附件)?

□优□良□中□与格□不与格

三、论文(设计)水平

1、论文(设计)的理论意义或对解决实际问题的指导意义

□优□良□中□与格□不与格

2、论文的观念是否有新意?

设计是否有创意?

□优□良□中□与格□不与格

3、论文(设计说明书)所体现的整体水平

□优□良□中□与格□不与格

建议成绩:

□优□良□中□与格□不与格

(在所选等级前的□画“√”)

指导教师:

(签名)单位:

(盖章)

年月日

评阅教师评阅书

评阅教师评价:

一、论文(设计)质量

1、论文(设计)的整体结构是否符合撰写规?

□优□良□中□与格□不与格

2、是否完成指定的论文(设计)任务(包括装订与附件)?

□优□良□中□与格□不与格

二、论文(设计)水平

1、论文(设计)的理论意义或对解决实际问题的指导意义

□优□良□中□与格□不与格

2、论文的观念是否有新意?

设计是否有创意?

□优□良□中□与格□不与格

3、论文(设计说明书)所体现的整体水平

□优□良□中□与格□不与格

建议成绩:

□优□良□中□与格□不与格

(在所选等级前的□画“√”)

评阅教师:

(签名)单位:

(盖章)

年月日

教研室(或答辩小组)与教学系意见

教研室(或答辩小组)评价:

一、答辩过程

1、毕业论文(设计)的基本要点和见解的叙述情况

□优□良□中□与格□不与格

2、对答辩问题的反应、理解、表达情况

□优□良□中□与格□不与格

3、学生答辩过程中的精神状态

□优□良□中□与格□不与格

二、论文(设计)质量

1、论文(设计)的整体结构是否符合撰写规?

□优□良□中□与格□不与格

2、是否完成指定的论文(设计)任务(包括装订与附件)?

□优□良□中□与格□不与格

三、论文(设计)水平

1、论文(设计)的理论意义或对解决实际问题的指导意义

□优□良□中□与格□不与格

2、论文的观念是否有新意?

设计是否有创意?

□优□良□中□与格□不与格

3、论文(设计说明书)所体现的整体水平

□优□良□中□与格□不与格

评定成绩:

□优□良□中□与格□不与格

(在所选等级前的□画“√”)

教研室主任(或答辩小组组长):

(签名)

年月日

教学系意见:

系主任:

(签名)

年月日

 

 

基于Web的JAVA五子棋对弈程序的设计与实现

罗友

(三峡学院计算机科学与工程学院计算机科学与技术专业2008级万州404000)

摘要:

人工智能是一门正在迅速发展的新兴的,综合性很强的交叉科学。

它与生物工程、空间技术一起被并列为二十一世界三大尖端技术。

它的中心任务是研究如何使计算机去做那些过去只能靠人的智力才能做的工作。

目前各发达国家都把人工智能作为重点项目,列入本国的高科技发展计划当中,投入巨大的人力和物力。

计算机人机对弈也是其中之一。

作为人智能研究的一个重要分支,计算机博弈是检验人工水平的一个重要方面。

它的研究为人工智能带来了很多重要的方法和理论,产生了广泛的社会影响和学术影响。

五子棋人机对弈是计算机博弈中的一种。

研究其计算机算法,可以让我们看到人工智能的稚形,也有助于我们人脑的开发。

五子棋是我国发明的,研究它可以让更多的外国人了解五子棋,这有助于我国优秀文化的推广。

关键词:

人工智能;计算人机对弈;五子棋;JSP

JAVArenjuplaychessprogramdesignandimplementationBasedonWeb

Luoyou

(Grade2008,ComputerScienceandTechnology,SchoolofComputerScienceandEngineering,

ChongqingThreeGorgesUniversity,Wanzhou,Chongqing404000)

Abstract:

Artificialintelligenceisarapidlydevelopingnew,integratedastrongFrontierScience.Itiswithbio-engineering,spacetechnologyhasbeenlistedas21intheworldalongwiththethreecutting-edgetechnology.Itscentraltaskistostudyhowtomakethecomputerdothatinthepasttorelyonhumanintelligencetodo.AIiscurrentlyregardedasthefocusofthedevelopedcountriesincludedinthiscar'shigh-techdevelopmentprojectsinvestedtremendoushumanandmaterialresources.

Man-machinechesscomputerisoneofthem.Asahumanstudyofanimportantbranchofintelligence,thecomputergametotestthelevelofanimportantaspectofthemanual.Itsresearchinartificialintelligencehasresultedinmanyimportantmethodsandtheoriestoproduceawiderangeofsocialimpactandacademicimpact.

Man-machinechessgameRenjuinoneofthecomputer.Tostudythecomputeralgorithm,wecanseethebeginningofartificialintelligenceshadow,butalsohelpustohumanbraindevelopment.BackgammoninventedinChina,andtheresearchitcanallowmoreforeignerstounderstandandhelptopromoteChina'straditionalculture.

Keywords:

ArtificialIntelligence,Man-machineCchessComputer,Man-machineChess,Algorithm;JSP

1引言

电脑已经深入到日常工作和生活的方方面面,比如文字处理、信息管理、辅助设计、图形图像处理、教育培训以与游戏娱乐等。

Windows系统的推出使电脑从高雅的学术殿堂走入了寻常百姓家,各行各业的人们无须经过特别的训练就能够使用电脑完成许许多多复杂的工作。

然而,虽然现在世界上已经充满了花样繁多的各种软件,但它们依然不能满足用户的各种特殊需要,人们还不得不开发适合自己特殊需求的软件。

Java语言作为一种面向对象的编程语言,具有分布式,可移植,高性能,多线程等特点。

通过系统的学习,人们就可以使用它开发出功能齐全,满足特殊需求的应用程序。

Java语言易学易用,对学习者掌握技能,开拓思维都有很大的帮助。

我作为一名学生,在系统的学习了Java语言之后,经常用它搞一些小程序。

这次毕业设计,正好将学过的Java语言中的各种技术综合起来,用myeclipse开发工具编写一个小游戏,既对自己学过的技能进行一次检验,也能系统地将学过的知识复习巩固。

随着计算机技术的不断发展,网络技术的普与围越来越广,网络能够提供的服务多样、便捷,已经成为人们生产生活中不可缺少的重要组成部分。

如今网络休闲游戏发展迅速,它凭借健康、方便、互动性强、益智等诸多优点,成为大部分现代人休闲娱乐的首选。

2五子棋对弈程序的可行性分析

可行性分析是通过对项目的主要容和配套条件,如市场需求、资源供应、建设规模、工艺路线、设备选型、环境影响、资金筹措、盈利能力等,从技术、经济、工程等方面进行调查研究和分析比较,并对项目建成以后可能取得的财务、经济效益与社会环境影响进行预测,从而提出该项目是否值得投资和如何进行建设的咨询意见,为项目决策提供依据的一种综合性的系统分析方法。

2.1五子棋系统设计思路

五子棋系统基本设计思路是把系统按照实现模块进行分解,利用java进行编程。

2.2经济可行性分析

主要是对项目的经济效益进行评价,本系统开发费用对于学员在经济上是可以接受的,并且本系统实施后可以让用户很好的对五子棋进行更加深入的研究,有助于开发用户智力。

2.3技术上的可行性

技术上的可行性分析主要技术条件是否顺利完成开发工作,硬、软件是否满足开发者的需要等。

该系统采用的简单的二层结构,数据库选用MySQL,它相对于其他的数据库来说,安装简单,灵活性、安全性和易用性为数据库编程提供了良好的条件。

因此,系统的软件开发平台已成熟可行。

硬件方面,科技飞速发展的今天,硬件更新的速度越来越快,容量越来越大,可靠性越来越高,价格越来越低,棋硬件平台完全能满足此系统的需求。

2.4管理上的可行性

主要是管理人员是否支持,现有的管理制度和方法是否科学,规章制度是否齐全,原始数据是否正确等。

规章制度和管理方法为系统的建设提供了制度保障。

综上所述,此系统开发目标已明确,在技术和经济等方面都可行,并且投入少、见效快。

因此系统的开发是完全可行的。

3JAVA五子棋对弈现的需求分析

本系统主要根据根据老师提出的要求进行的需求分析:

3.1用户需求分析

根据老师提出的要求,我们把系统的用户分为两类:

普通用户、系统管理员用户,下面是我们对两种用户的需求进行的分析:

3.1.1普通用户主要需要:

根据分析,普通用户具有的功能:

(1)用户登录:

用户根据自己的密码登录本系统。

(2)棋局回放:

用户根据自己的需求回放自己以前下过的棋局。

(3)玩五子棋:

用户在点击playgame后会进入游戏界面玩游戏。

(4)悔棋功能:

在下棋过程中,用户根据自己的需求,选择悔棋。

(5)更改密码:

用户可以根据自己的需求更改自己的密码。

3.1.2系级管理员主要需要:

系统管理员是本系统的最高权限的管理员,他不仅具有普通用户的各种功能,还具有他独有的功能一下是系统管理员所具备的功能:

(1)用户登录:

用户根据自己的密码登录本系统。

(2)棋局回放:

用户根据自己的需求回放自己以前下过的棋局。

(3)玩五子棋:

用户在点击playgame后会进入游戏界面玩游戏。

(4)悔棋功能:

在下棋过程中,用户根据自己的需求,选择悔棋。

(5)更改密码:

用户可以根据自己的需求更改自己的密码。

(6)管理普通用户:

可以对普通用户进行添加和删除。

3.1.3系统用例图:

3.2数据字典的描述

数据字典是关于数据的信息的集合,也就是对数据流图包含的所有元素的定义的集合。

任何字典最重要的用途都是供人查阅对不了解的条目的解释,数据字典的作用也正是在软件分析和设计的过程中给人提供关于数据的描述信息。

在本系统中涉与到多种数据的存储,其中包括用户信息、用户每次玩游戏的信息、用户每盘棋的信息、用户每步棋的信息。

下面是给出的本系统的数据字典描述:

3.2.1用户信息表的数据字典的描述:

3.2.2用户每次游戏信息表的数据字典描述:

3.2.3用户每盘棋信息表的数据字典描述:

3.2.4用户每步棋信息表的数据字典描述:

3.3五子棋对弈系统的数据流图

数据流图(DataFlowDiagram):

简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具与用于表示软件模型的一种图示方法。

下面简要介绍部分需求的数据流图:

3.3.1用户登录数据流图(DFD)

在用户登录过程当中,用户输入的信息经过加工处理后,通过对数据库的查询后返回给程序该用户的权限,数据流图(图3-1)如下:

3.3.2普通用户界面显示数据流图(DFD)

知道用户权限后,通过查询用户游戏信息,显示用户游戏信息。

数据流图(图3-2)如下:

3.3.3管理员用户界面显示数据流图(DFD)

知道用户权限后,通过查询用户游戏信息和所有普通用户信息,显示用户游戏信息。

数据流图(图3-3)如下

3.3.4用户棋局回放数据流图(DFD)

知道用户权限后,通过查询用户游戏信息和所有普通用户信息,显示用户游戏信息。

数据流图(图3-4)如下:

图3-4用户棋局回放数据流图

4JAVA五子棋对弈系统分析与设计

此系统为智力游戏,适合于各类游戏爱好者。

由于其经典性与其游戏的简单性,各类人士都可以也都爱玩。

人们在与电脑对战享受娱乐的同时,也会体会到自己的智力也会有所提升。

该款五子棋游戏功能虽然简单,但实现了人机,所以从这个角度来说,该款游戏需要电脑能准确的计算棋局。

虽然系统不大,但要在满足玩家的基本要求的情况下,电脑有一定的智能,能给于新手一定的帮助。

4.1系统设计总体思想、目标

本系统在结构设计中采用java的MVC模式,根据不同的功能划分不同的模块,该款五子棋游戏功能虽然简单,但实现了人机,所以从这个角度来说,该款游戏需要电脑能准确的计算棋局。

虽然系统不大,但要在满足玩家的基本要求的情况下,电脑有一定的智能,能给于新手一定的帮助。

4.2五子棋人机对弈系统的ER模型

经过对系统的分析,我们将系统划分出了用户信息、用户棋局信息、用户棋盘信息、用户下棋信息等几个实体,其各个实体的属性如下:

用户信息:

用户名、用户密码、用户权限

用户棋局信息:

用户名、棋局编号、棋局创建时间

用户棋盘信息:

棋局编号、X轴坐标、Y轴坐标、棋子状态

用户下棋信息:

棋局编号、用户X坐标、用户Y坐标、电脑X坐标、电脑Y坐标

本系统的具体ER模型如下:

图4-2用户棋局ER图

 

图4-3用户棋盘ER图

 

图4-4用户棋盘ER图

4.3JAVA五子棋对弈系统结构、功能设计

4.3.1系统结构设计

本系统主要针对用户提出的要求业务开发的系统,其结构设计情况如图(图4-6)所示:

图4-6系统结构图

4.3.2系统功能模块设计

该款游戏主要由一下几个模块组成(图4-7):

用户登录注册:

在玩五子棋之前,用户要先登录游戏,未注册的用户应该先注册,如果登录成功会跳到用户管理页面,登录信息错误会提示密码用户名错误。

人机对弈模式:

选择该模式可以实现人与电脑之间的对弈,电脑会智能的选择该在哪处下子,并会在每次下棋结束后判断是否有哪方已经获胜,如果获胜则结束本局游戏,并提示玩家游戏结束。

悔棋功能:

这个功能也是根据游戏的实际需求而存在的,在现实生活中难免有失误下错了棋,那么就需要悔棋。

此功能提供了悔棋功能,使得下棋的灵活性有所提高。

玩家若想悔棋,则只需选择悔棋按钮便可以重新下过刚才的棋,但只能悔一步棋。

棋局回放功能:

这个功能是更加用户需求设计的,该功能可以回放用户以前下过的棋局只要点击要回放的棋局,进入棋局回放页面,点击下一步就可以回放该棋局,点一下只能回放一步棋。

4.3.3设计思路

1.本程序要实现五子棋的游戏功能,必须先有一个棋盘,所以,通过html中的表格画的,棋盘是17*17,表格中是一个层,通过改变其背景图片来表示有无棋子,是白棋还是黑棋。

另外还有一个按钮:

悔棋按钮,用于提供悔棋功能,界面还显示系统时间,用户提示用户当前时间。

2.对于下棋的操作,通过对该层鼠标事件监听器onclick,每次当用户点击鼠标时,先取得点击的坐标值,然后换算成对应棋盘上(即棋盘数组)的位置(数组的下标)。

3.判断此处是否已经有棋子,如果有则用javascript提示玩家重新下子,否则通过ajax把点击的数组传递给后台,通过后台处理返回给前台数据来改变样式,在此处画上棋子。

4.判断该颜色棋子的上下左右是否满足连续五个,是的话提醒相应玩家获胜,不是的话,更换玩家下棋。

5.对于玩家的更换是程序自动的,每次用户点击鼠标后,若本局还未结束则会变换玩家,从而画出对应黑方白方的棋子,直到有一方获胜程序结束。

4.4程序设计分析

1.在的首页是登录界面,有登录和注册两个功能。

2.在登录成功会跳到用户信息页面,在该页面的右下角会列出该用户在最近5次,玩游戏的信息记录,点击该记录可以回放对应的棋局。

在信息下方有开始游戏和更改密码两个按钮。

3.绘制棋盘,17*17的方框,在方框处下棋子(实心黑白圆形)。

4.棋盘处于鼠标监听状态,当鼠标在棋盘上有点击操作的时候,程序会获得鼠标点击的坐标然后换算成对应的棋盘的位置,再判断此处是否有棋子,假如没有,那么在此处画出对应颜色的实心棋子,假如已经有棋子了,则提示玩家此处已经有棋子请重新下棋。

5.当用户点击表格中的层下完棋后,轮到电脑下子时,电脑会通过算法计算每个没有棋子的位置的重要性来选择最重要的位置下子。

6.当任何一方有五个棋子沿着横,竖,斜连在一起时,系统自动判断赢棋,并显示黑方或白方胜利。

棋局结束后,会返回用户信息页面。

7.程序流程如下图(图4-8):

4.5类的设计

1)由于要用到数据库,所以设计了一个用来连接数据库的类BaseDao,其中包括了两个方法和4个变量,类图(图4-9)如下:

2)下图是关于数据库中对应的表的类图(图4-10)关系:

3)虽然有了用户相关类,但是无法操作数据库中的用户信息,所以设计了操作用户表的类UserDishDaoImpl,该类继承BaseDao,并且实现IUserDao类,类图(图4-11)如下:

4)对于用户每次玩游戏的信息操作,用UserDishDaoImpl实现了各种操作。

类图(图4-12)如下:

5)对棋盘的各种信息保存操作,用类UserQipanDaoImpl来实现。

其中类图(图4-13)如下

6)对每局棋与每盘棋的各种保存操作,用UserStepDaoImpl来实现,其中类图(图4-14)如下:

7)由于程序是人机对弈,电脑下棋算法用Computer类来实现,其中有电脑下棋算法,还有电脑判断输赢算法,类图(图4-15)如下:

8)本程序的时序图(图4-16)如下:

4.6五子棋对弈系统的数据库设计

4.6.1系统用户表

名称

编码

数据类型

备注

用户名

userName

varchar(255)

用户输入,Notnull约束,是表的主键

用户密码

userPwd

varchar(255)

用户输入,Notnull约束

用户权限

userFlag

Int(11)

系统分配,Notnull约束,用于判断用户权限

4.6.2用户棋局表

名称

编码

数据类型

备注

棋局编号

dishId

Int(11)

系统自动分配,是该表的主键,Notnull约束

用户名

userName

varchar(255)

用户输入,Notnull约束

创建时间

playDate

Date

系统分配,Notnull约束

4.6.3用户棋盘表

名称

编码

数据类型

备注

棋局编号

dishId

Int(11)

系统自动分配,是改变的主键,Notnull约束

X轴坐标

X

Int(11)

是棋盘的X坐标,Notnull约束

Y轴坐标

Y

Int(11)

是棋盘的Y坐标,Notnull约束

状态

F

Int(11)

表示棋子状态,Notnull约束

4.6.4用户下棋信息表

名称

编码

数据类型

备注

下棋编号

stepId

Int(11)

系统自动分配,是改变的主键,Notnull约束

电脑X坐标

pcX

Int(11)

是电脑该步棋的X坐标,Notnull约束

电脑Y坐标



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3