JAVA五子棋对弈程序的设计与实现毕业设计论文_.doc_第1页
JAVA五子棋对弈程序的设计与实现毕业设计论文_.doc_第2页
JAVA五子棋对弈程序的设计与实现毕业设计论文_.doc_第3页
JAVA五子棋对弈程序的设计与实现毕业设计论文_.doc_第4页
JAVA五子棋对弈程序的设计与实现毕业设计论文_.doc_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

重庆三峡学院毕业设计(论文)题目:JAVA五子棋对弈程序的设计与实现 毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。矚慫润厲钐瘗睞枥庑赖。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。聞創沟燴鐺險爱氇谴净。作者签名: 日 期: 学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。残骛楼諍锩瀨濟溆塹籟。作者签名: 日期: 年 月 日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。酽锕极額閉镇桧猪訣锥。涉密论文按学校规定处理。作者签名:日期: 年 月 日导师签名: 日期: 年 月 日指导教师评阅书指导教师评价:一、撰写(设计)过程1、学生在论文(设计)过程中的治学态度、工作精神 优 良 中 及格 不及格2、学生掌握专业知识、技能的扎实程度 优 良 中 及格 不及格3、学生综合运用所学知识和专业技能分析和解决问题的能力 优 良 中 及格 不及格4、研究方法的科学性;技术线路的可行性;设计方案的合理性 优 良 中 及格 不及格5、完成毕业论文(设计)期间的出勤情况 优 良 中 及格 不及格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范? 优 良 中 及格 不及格2、是否完成指定的论文(设计)任务(包括装订及附件)? 优 良 中 及格 不及格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义 优 良 中 及格 不及格2、论文的观念是否有新意?设计是否有创意? 优 良 中 及格 不及格3、论文(设计说明书)所体现的整体水平 优 良 中 及格 不及格建议成绩: 优 良 中 及格 不及格(在所选等级前的内画“”)指导教师: (签名) 单位: (盖章)年 月 日评阅教师评阅书评阅教师评价:一、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范? 优 良 中 及格 不及格2、是否完成指定的论文(设计)任务(包括装订及附件)? 优 良 中 及格 不及格二、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义 优 良 中 及格 不及格2、论文的观念是否有新意?设计是否有创意? 优 良 中 及格 不及格3、论文(设计说明书)所体现的整体水平 优 良 中 及格 不及格建议成绩: 优 良 中 及格 不及格(在所选等级前的内画“”)评阅教师: (签名) 单位: (盖章)年 月 日教研室(或答辩小组)及教学系意见教研室(或答辩小组)评价:一、答辩过程1、毕业论文(设计)的基本要点和见解的叙述情况 优 良 中 及格 不及格2、对答辩问题的反应、理解、表达情况 优 良 中 及格 不及格3、学生答辩过程中的精神状态 优 良 中 及格 不及格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范? 优 良 中 及格 不及格2、是否完成指定的论文(设计)任务(包括装订及附件)? 优 良 中 及格 不及格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义 优 良 中 及格 不及格2、论文的观念是否有新意?设计是否有创意? 优 良 中 及格 不及格3、论文(设计说明书)所体现的整体水平 优 良 中 及格 不及格评定成绩: 优 良 中 及格 不及格(在所选等级前的内画“”)教研室主任(或答辩小组组长): (签名)年 月 日教学系意见:系主任: (签名)年 月 日目 录摘要I彈贸摄尔霁毙攬砖卤庑。AbstractII謀荞抟箧飆鐸怼类蒋薔。1 引言1厦礴恳蹒骈時盡继價骚。2五子棋对弈程序的可行性分析1茕桢广鳓鯡选块网羈泪。2.1 五子棋系统设计思路1鹅娅尽損鹌惨歷茏鴛賴。2.2 经济可行性分析1籟丛妈羥为贍偾蛏练淨。2.3技术上的可行性1預頌圣鉉儐歲龈讶骅籴。2.4 管理上的可行性2渗釤呛俨匀谔鱉调硯錦。3 JAVA五子棋对弈现的需求分析2铙誅卧泻噦圣骋贶頂廡。3.1 用户需求分析2擁締凤袜备訊顎轮烂蔷。3.1.1 普通用户主要需要:2贓熱俣阃歲匱阊邺镓騷。3.1.2 系级管理员主要需要:2坛摶乡囂忏蒌鍥铃氈淚。3.1.3 系统用例图:3蜡變黲癟報伥铉锚鈰赘。3.2 数据字典的描述3買鲷鴯譖昙膚遙闫撷凄。3.2.1用户信息表的数据字典的描述:3綾镝鯛駕櫬鹕踪韦辚糴。3.2.2用户每次游戏信息表的数据字典描述:4驅踬髏彦浃绥譎饴憂锦。3.2.3 用户每盘棋信息表的数据字典描述:4猫虿驢绘燈鮒诛髅貺庑。3.2.4 用户每步棋信息表的数据字典描述:4锹籁饗迳琐筆襖鸥娅薔。3.3五子棋对弈系统的数据流图4構氽頑黉碩饨荠龈话骛。3.3.1 用户登录数据流图(DFD)5輒峄陽檉簖疖網儂號泶。3.3.2普通用户界面显示数据流图(DFD)5尧侧閆繭絳闕绚勵蜆贅。3.3.3管理员用户界面显示数据流图(DFD)6识饒鎂錕缢灩筧嚌俨淒。3.3.4用户棋局回放数据流图(DFD)6凍鈹鋨劳臘锴痫婦胫籴。4 JAVA五子棋对弈系统分析与设计7恥諤銪灭萦欢煬鞏鹜錦。4.1 系统设计总体思想、目标7鯊腎鑰诎褳鉀沩懼統庫。4.2 五子棋人机对弈系统的ER模型7硕癘鄴颃诌攆檸攜驤蔹。4.3 JAVA五子棋对弈系统结构、功能设计9阌擻輳嬪諫迁择楨秘騖。4.3.1 系统结构设计9氬嚕躑竄贸恳彈瀘颔澩。4.3.2 系统功能模块设计10釷鹆資贏車贖孙滅獅赘。4.3.3设计思路11怂阐譜鯪迳導嘯畫長凉。4.4 程序设计分析11谚辞調担鈧谄动禪泻類。4.5 类的设计12嘰觐詿缧铴嗫偽純铪锩。4.6五子棋对弈系统的数据库设计15熒绐譏钲鏌觶鷹緇機库。4.6.1 系统用户表15鶼渍螻偉阅劍鲰腎邏蘞。4.6.2 用户棋局表16纣忧蔣氳頑莶驅藥悯骛。4.6.3 用户棋盘表16颖刍莖蛺饽亿顿裊赔泷。4.6.4 用户下棋信息表17濫驂膽閉驟羥闈詔寢賻。5五子棋相关基础17銚銻縵哜鳗鸿锓謎諏涼。5.1 五子棋相关解释17挤貼綬电麥结鈺贖哓类。5.2 五子棋相关规则17赔荊紳谘侖驟辽輩袜錈。5.3 五子棋常用术语18塤礙籟馐决穩賽釙冊庫。6 系统平台、计算模式及技术19裊樣祕廬廂颤谚鍘羋蔺。6.1 计算模式的进化及本系统选用的模式优越性19仓嫗盤紲嘱珑詁鍬齊驁。6.1.1 集中式管理主机/终端模式19绽萬璉轆娛閬蛏鬮绾瀧。6.1.2 Client/Server模式19骁顾燁鶚巯瀆蕪領鲡赙。6.1.3 Brower/Server模式20瑣钋濺暧惲锟缟馭篩凉。6.1.4 系统采用B/S三层体系结构模式的优越性20鎦诗涇艳损楼紲鯗餳類。6.2 JSP技术21栉缏歐锄棗鈕种鵑瑶锬。6.2.1 JSP简介21辔烨棟剛殓攬瑤丽阄应。6.2.2 JSP内建对象22峴扬斕滾澗辐滠兴渙藺。6.3 MVC设计模式23詩叁撻訥烬忧毀厉鋨骜。6.4 Servlet23则鯤愜韋瘓賈晖园栋泷。6.4.1 Servlet简介23胀鏝彈奥秘孫戶孪钇賻。6.4.2 Servlet 优势24鳃躋峽祷紉诵帮废掃減。6.5 MYSQL 数据库25稟虛嬪赈维哜妝扩踴粜。6.5.1 MYSQL 概述25陽簍埡鲑罷規呜旧岿錟。6.5.2 MYSQL 优势25沩氣嘮戇苌鑿鑿槠谔應。6.6 TomCat服务器工具概述26钡嵐縣緱虜荣产涛團蔺。6.7 环境的安装26懨俠劑鈍触乐鹇烬觶騮。7 系统实现27謾饱兗争詣繚鮐癞别瀘。7.1 用户登陆流程27呙铉們欤谦鸪饺竞荡赚。7.2 用户进入游戏(初始化数据库棋盘)流程28莹谐龌蕲賞组靄绉嚴减。7.3 用户玩游戏流程29麸肃鹏镟轿騍镣缚縟糶。7.4添加新用户30納畴鳗吶鄖禎銣腻鰲锬。8 JAVA五子棋对弈程序设计的技术关键30風撵鲔貓铁频钙蓟纠庙。8.1 javascript中 AJAX技术30灭嗳骇諗鋅猎輛觏馊藹。8.2 电脑下棋算法设计32铹鸝饷飾镡閌赀诨癱骝。9 系统试运行结果与评价41攙閿频嵘陣澇諗谴隴泸。10 结束语41趕輾雏纨颗锊讨跃满賺。致 谢41夹覡闾辁駁档驀迁锬減。参考文献41视絀镘鸸鲚鐘脑钧欖粝。附件1:42偽澀锟攢鴛擋緬铹鈞錠。附件2:43緦徑铫膾龋轿级镗挢廟。附件3:44騅憑钶銘侥张礫阵轸蔼。附件3:46疠骐錾农剎貯狱颢幗騮。 99级信息与计算科学毕业论文基于Web的JAVA五子棋对弈程序的设计与实现镞锊过润启婭澗骆讕瀘。罗友(重庆三峡学院计算机科学与工程学院计算机科学与技术专业2008级 重庆万州 404000)摘要:人工智能是一门正在迅速发展的新兴的,综合性很强的交叉科学。它与生物工程、空间技术一起被并列为二十一世界三大尖端技术。它的中心任务是研究如何使计算机去做那些过去只能靠人的智力才能做的工作。目前各发达国家都把人工智能作为重点项目,列入本国的高科技发展计划当中,投入巨大的人力和物力。榿贰轲誊壟该槛鲻垲赛。计算机人机对弈也是其中之一。作为人智能研究的一个重要分支,计算机博弈是检验人工水平的一个重要方面。它的研究为人工智能带来了很多重要的方法和理论,产生了广泛的社会影响和学术影响。邁茑赚陉宾呗擷鹪讼凑。五子棋人机对弈是计算机博弈中的一种。研究其计算机算法,可以让我们看到人工智能的稚形,也有助于我们人脑的开发。五子棋是我国发明的,研究它可以让更多的外国人了解五子棋,这有助于我国优秀文化的推广。嵝硖贪塒廩袞悯倉華糲。关键词: 人工智能; 计算人机对弈;五子棋;JSPJAVA renju play chess program design and implementation Based on Web该栎谖碼戆沖巋鳧薩锭。Luoyou (Grade 2008, Computer Science and Technology, School of Computer Science and Engineering, 劇妆诨貰攖苹埘呂仑庙。Chongqing Three Gorges University, Wanzhou, Chongqing 404000 )臠龍讹驄桠业變墊罗蘄。Abstract:Artificial intelligence is a rapidly developing new, integrated a strong Frontier Science. It is with bio-engineering, space technology has been listed as 21 in the world along with the three cutting-edge technology. Its central task is to study how to make the computer do that in the past to rely on human intelligence to do. AI is currently regarded as the focus of the developed countries included in this cars high-tech development projects invested tremendous human and material resources. Man-machine chess computer is one of them. As a human study of an important branch of intelligence, the computer game to test the level of an important aspect of the manual. Its research in artificial intelligence has resulted in many important methods and theories to produce a wide range of social impact and academic impact. Man-machine chess game Renju in one of the computer. To study the computer algorithm, we can see the beginning of artificial intelligence shadow, but also help us to human brain development. Backgammon invented in China, and the research it can allow more foreigners to understand and help to promote Chinas traditional culture.鰻順褛悦漚縫冁屜鸭骞。Key words: Artificial Intelligence, Man-machine Cchess Computer, Man-machine Chess, Algorithm; JSP穑釓虚绺滟鳗絲懷紓泺。第51页 共47 页2012届计算机科学与技术专业毕业设计(论文)1 引言 电脑已经深入到日常工作和生活的方方面面,比如文字处理、信息管理、辅助设计、图形图像处理、教育培训以及游戏娱乐等。Windows系统的推出使电脑从高雅的学术殿堂走入了寻常百姓家,各行各业的人们无须经过特别的训练就能够使用电脑完成许许多多复杂的工作。然而,虽然现在世界上已经充满了花样繁多的各种软件,但它们依然不能满足用户的各种特殊需要,人们还不得不开发适合自己特殊需求的软件。Java语言作为一种面向对象的编程语言,具有分布式,可移植,高性能,多线程等特点。通过系统的学习,人们就可以使用它开发出功能齐全,满足特殊需求的应用程序。Java语言易学易用,对学习者掌握技能,开拓思维都有很大的帮助。 我作为一名学生,在系统的学习了Java语言之后,经常用它搞一些小程序。这次毕业设计,正好将学过的Java语言中的各种技术综合起来,用myeclipse开发工具编写一个小游戏,既对自己学过的技能进行一次检验,也能系统地将学过的知识复习巩固。隶誆荧鉴獫纲鴣攣駘賽。随着计算机技术的不断发展,网络技术的普及范围越来越广,网络能够提供的服务多样、便捷,已经成为人们生产生活中不可缺少的重要组成部分。如今网络休闲游戏发展迅速,它凭借健康、方便、互动性强、益智等诸多优点,成为大部分现代人休闲娱乐的首选。浹繢腻叢着駕骠構砀湊。2五子棋对弈程序的可行性分析 可行性分析是通过对项目的主要内容和配套条件,如市场需求、资源供应、建设规模、工艺路线、设备选型、环境影响、资金筹措、盈利能力等,从技术、经济、工 程等方面进行调查研究和分析比较,并对项目建成以后可能取得的财务、经济效益及社会环境影响进行预测,从而提出该项目是否值得投资和如何进行建设的咨询意 见,为项目决策提供依据的一种综合性的系统分析方法。 鈀燭罚櫝箋礱颼畢韫粝。2.1 五子棋系统设计思路 五子棋系统基本设计思路是把系统按照实现模块进行分解,利用java进行编程。2.2 经济可行性分析主要是对项目的经济效益进行评价,本系统开发费用对于学员在经济上是可以接受的,并且本系统实施后可以让用户很好的对五子棋进行更加深入的研究,有助于开发用户智力。惬執缉蘿绅颀阳灣熗鍵。2.3技术上的可行性 技术上的可行性分析主要技术条件是否顺利完成开发工作,硬、软件是否满足开发者的需要等。该系统采用的简单的二层结构,数据库选用MySQL,它相对于其他的数据库来说,安装简单,灵活性、安全性和易用性为数据库编程提供了良好的条件。因此,系统的软件开发平台已成熟可行。硬件方面,科技飞速发展的今天,硬件更新的速度越来越快,容量越来越大,可靠性越来越高,价格越来越低,棋硬件平台完全能满足此系统的需求。贞廈给鏌綞牵鎮獵鎦龐。2.4 管理上的可行性 主要是管理人员是否支持,现有的管理制度和方法是否科学,规章制度是否齐全,原始数据是否正确等。规章制度和管理方法为系统的建设提供了制度保障。嚌鲭级厨胀鑲铟礦毁蕲。 综上所述,此系统开发目标已明确,在技术和经济等方面都可行,并且投入少、见效快。因此系统的开发是完全可行的。薊镔竖牍熒浹醬籬铃騫。3 JAVA五子棋对弈现的需求分析 齡践砚语蜗铸转絹攤濼。本系统主要根据根据老师提出的要求进行的需求分析: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-1-3 系统用例图3.2 数据字典的描述数据字典是关于数据的信息的集合,也就是对数据流图包含的所有元素的定义的集合。任何字典最重要的用途都是供人查阅对不了解的条目的解释,数据字典的作用也正是在软件分析和设计的过程中给人提供关于数据的描述信息。烴毙潜籬賢擔視蠶贲粵。在本系统中涉及到多种数据的存储,其中包括用户信息、用户每次玩游戏的信息、用户每盘棋的信息、用户每步棋的信息。鋝岂涛軌跃轮莳講嫗键。下面是给出的本系统的数据字典描述:3.2.1用户信息表的数据字典的描述:描述:用与储存用户信息,其中有用户名,当用户登录后会在用户首页上显示。用户密码用于登录本系统,用户权限是整数,1代表普通用户,既可以通过注册的用户;0代表系统用户,是系统自带的不可以通过注册获得。名字:用户信息表描述:用户可以根据自己的密码登陆系统,系统根据用户的信息来判断用户的权限,主要存储的是用户用户信息和用户权限。定义:用户名+用户密码+用户权限位置:数据库用户信息表(UserInfo)撷伪氢鱧轍幂聹諛詼庞。3.2.2用户每次游戏信息表的数据字典描述:名字:用户每次游戏信息表描述:用于记录用户每次玩游戏的信息。定义:用户名+用户该盘局的编号+游戏时间位置:数据库用户每次游戏信息表(UserDish)描述:这个表主要用于记录用户玩游戏的时间,用户棋盘编号是数据库自动生成的,游戏时间主要用于用户要回放棋局的查找。踪飯梦掺钓貞绫賁发蘄。3.2.3 用户每盘棋信息表的数据字典描述:描述:该表用户储存棋局信息,主要用于电脑下棋时通过棋局编号提取数据,从而计算出电脑该下哪一步棋,其中棋子状态分为4种,-1表示该点不在棋盘上,0表示该坐标无棋子,1表示白棋2表示黑棋 名字:用户每盘棋信息表描述:用于记录用户每盘棋棋盘的信息。定义:用户该盘局编号+棋盘上棋子的X轴坐标+棋盘上棋子的Y轴坐标+该坐标上棋子状态位置:数据库用户每盘棋信息表(UserQipan)婭鑠机职銦夾簣軒蚀骞。3.2.4 用户每步棋信息表的数据字典描述:描述:该表主要储存用户和电脑下的每一步棋,用户与棋盘回放时在数据库提取数据 名字:用户每步棋信息表描述:用于记录用户每步的信息。定义:用户该盘棋的编号+用户该步棋的编号+该步棋电脑下棋的Y轴坐标+该步棋电脑下棋的X轴坐标+该步棋用户下棋的Y轴坐标+该步棋用户下棋的X轴坐标位置:数据库用户每盘棋信息表(UserStep)譽諶掺铒锭试监鄺儕泻。3.3五子棋对弈系统的数据流图数据流图(Data Flow Diagram):简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。俦聹执償閏号燴鈿膽賾。下面简要介绍部分需求的数据流图:3.3.1 用户登录数据流图(DFD)在用户登录过程当中,用户输入的信息经过加工处理后,通过对数据库的查询后返回给程序该用户的权限,数据流图(图3-1)如下:缜電怅淺靓蠐浅錒鵬凜。用户接受用户信息处 理信 息输入信息查询信息用户信息表(UserInfo)用户产生查询结果权限信息权限信息图3-1 用户登录数据流图骥擯帜褸饜兗椏長绛粤。3.3.2普通用户界面显示数据流图(DFD)知道用户权限后,通过查询用户游戏信息,显示用户游戏信息。数据流图(图3-2)如下:用户接受权限信息处理信息用户每次游戏信息(UserDish)产生结果用户权限查询信息游戏信息游戏信息图3-2 普通用户数据显示数据流图癱噴导閽骋艳捣靨骢鍵。3.3.3管理员用户界面显示数据流图(DFD)知道用户权限后,通过查询用户游戏信息和所有普通用户信息,显示用户游戏信息。数据流图(图3-3)如下用户接受权限信息处理信息用户每次游戏信息(UserDish)产生结果用户权限查询信息游戏信息游戏信息用户信息表(UserInfo)鑣鸽夺圆鯢齙慫餞離龐。图3-3 管理员用户数据显示数据流图3.3.4用户棋局回放数据流图(DFD)知道用户权限后,通过查询用户游戏信息和所有普通用户信息,显示用户游戏信息。数据流图(图3-4)如下:用户接受数据处理信息用户该盘棋该步棋信息(UserStep)产生结果用户数据查询信息游戏信息游戏信息图3-4 用户棋局回放数据流图4 JAVA五子棋对弈系统分析与设计此系统为智力游戏,适合于各类游戏爱好者。由于其经典性及其游戏的简单性,各类人士都可以也都爱玩。人们在与电脑对战享受娱乐的同时,也会体会到自己的智力也会有所提升。榄阈团皱鹏緦寿驏頦蕴。该款五子棋游戏功能虽然简单,但实现了人机,所以从这个角度来说,该款游戏需要电脑能准确的计算棋局。虽然系统不大,但要在满足玩家的基本要求的情况下,电脑有一定的智能,能给于新手一定的帮助。逊输吴贝义鲽國鳩犹騸。4.1 系统设计总体思想、目标本系统在结构设计中采用java的MVC模式,根据不同的功能划分不同的模块,该款五子棋游戏功能虽然简单,但实现了人机,所以从这个角度来说,该款游戏需要电脑能准确的计算棋局。虽然系统不大,但要在满足玩家的基本要求的情况下,电脑有一定的智能,能给于新手一定的帮助。幘觇匮骇儺红卤齡镰瀉。4.2 五子棋人机对弈系统的ER模型经过对系统的分析,我们将系统划分出了用户信息、用户棋局信息、用户棋盘信息、用户下棋信息等几个实体,其各个实体的属性如下:誦终决懷区馱倆侧澩赜。用户信息:用户名、用户密码、用户权限用户棋局信息:用户名、棋局编号、棋局创建时间用户棋盘信息:棋局编号、X轴坐标、Y轴坐标、棋子状态用户下棋信息:棋局编号、用户X坐标、用户Y坐标、电脑X坐标、电脑Y坐标本系统的具体ER模型如下:用户用户名用户密码用户权限图4-1用户ER图 图4-2用户棋局ER图 棋局用户名棋局编号创建时间图4-3用户棋盘ER图 棋盘棋局编号X轴坐标Y轴坐标棋子状态图4-4用户棋盘ER图 下棋棋局编号用户Y坐标用户X坐标电脑X坐标电脑X坐标图3-1整体ER图 用户用户密码用户名用户权限棋局棋局编号创建时间创建棋盘X轴坐标Y轴坐标棋子状态下棋属于属于用户X坐标用户Y坐标电脑X坐标电脑X坐标1N1N11每步棋编号医涤侣綃噲睞齒办銩凛。图4-5 整体ER图 4.3 JAVA五子棋对弈系统结构、功能设计4.3.1 系统结构设计本系统主要针对用户提出的要求业务开发的系统,其结构设计情况如图(图4-6)所示:图4-6 系统结构图用户前台注册登录数据显示五子棋棋盘回放悔棋游戏4.3.2 系统功能模块设计该款游戏主要由一下几个模块组成(图4-7):五子棋游戏用户登录注册人机对弈模式具有悔棋功能棋局回放功能图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-8 系统结构图4.5 类的设计1)由于要用到数据库,所以设计了一个用来连接数据库的类BaseDao,其中包括了两个方法和4个变量,类图(图4-9)如下:餑诎鉈鲻缥评缯肃鮮驃。图4-9 BaseDao类图2)下图是关于数据库中对应的表的类图(图4-10)关系:图4-10 类表关系图3)虽然有了用户相关类,但是无法操作数据库中的用户信息,所以设计了操作用户表的类UserDishDaoImpl,该类继承BaseDao,并且实现IUserDao类,类图(图4-11)如下:爷缆鉅摯騰厕綁荩笺潑。图4-11 UserDishDaoImpl类图4)对于用户每次玩游戏的信息操作,用UserDishDaoImpl实现了各种操作。类图(图4-12)如下:锞炽邐繒萨蝦窦补飙赝。图4-12 UserDishDaoImpl类图5)对棋盘的各种信息保存操作,用类UserQipanDaoImpl来实现。其中类图(图4-13)如下图4-13 UserQipanDaoImpl类图6)对每局棋及每盘棋的各种保存操作,用UserStepDaoImpl来实现,其中类图(图4-14)如下:曠戗輔鑽襉倆瘋诌琿凤。图4-14 UserStepDaoImpl类图7)由于程序是人机对弈,电脑下棋算法用Computer类来实现,其中有电脑下棋算法,还有电脑判断输赢算法,类图(图4-15)如下:轉厍蹺佥诎脚濒谘閥糞。图4-15 Servlet类图8)本程序的时序图 (图4-16)如下 :图4-16 时序图4.6五子棋对弈系统的数据库设计4.6.1 系统用户表名称编码数据类型备注用户名userNamevarchar(255)用户输入,Not null约束,是表的主键用户密码userPwdvarchar(255)用户输入,Not null约束用户权限userFlagInt(11)系统分配,Not null约束,用于判断用户权限4.6.2 用户棋局表 名称编码数据类型备注棋局编号dishIdInt(11)系统自动分配,是该表的主键,Not null约束用户名userNamevarchar(255)用户输入,Not null约束创建时间playDateDate系统分配,Not null约束 4.6.3 用户棋盘表 名称编码数据类型备注棋局编号dishIdInt(11)系统自动分配,是改变的主键,Not null约束X轴坐标XInt(11)是棋盘的X坐标,Not null约束Y轴坐标YInt(11)是棋盘的Y坐标,Not null约束状态FInt(11)表示棋子状态,Not null约束 4.6.4 用户下棋信息表 名称编码数据类型备注下棋编号stepIdInt(11)系统自动分配,是改变的主键,Not null约束电脑X坐标pcXInt(11)是电脑该步棋的X坐标,Not null约束电脑Y坐标pcYInt(11)是电脑该步棋的Y坐标,Not null约束用户X坐标psXInt(11)是电用户该步棋的X坐标,Not null约束用户Y坐标psYInt(11)是电用户该步棋的X坐标,Not null约束棋局编号dishIdInt(11)是该表的外键,Not null约束5五子棋相关基础5.1 五子棋相关解释引用辞海中所言,五子棋是“棋类游戏,棋具与围棋相同,两人对局,轮流下子,先将五子连成一行者为胜。”。五子棋的名称:日文亦有“连五子、五子连、串珠、五目、五目碰、五格、五石、五法、五联、京棋”等多种称谓,英文则称之为FIR (Five In A Row的缩写)、Gomoku(日语“五目”的罗马拼音)、Gobang、connect 5、mo-rphion。捷克语piskvorky,韩语omok、韩国人还称之为情侣棋。嬷鯀賊沣謁麩溝赉涞锯。5.2 五子棋相关规则1.五子棋行棋时,黑棋先下第一子,由天元开始,后白棋在黑棋周围的方框的落子。接着黑方再以天元中心的25个交叉点的范围内落盘面的第三子,之后黑白双方相互顺序子。讯鎬謾蝈贺綜枢辄锁廪。 2.最先在棋盘上横向,纵向,斜向形成已方的五个棋子连续的一方为胜。3.出现禁手对方指出后将判负,其中包括两个或两个以上的活三,活四,长连均称之为禁手。4.禁手只对黑棋有效,白棋无禁手。5.黑方禁手形成时,白方需立即指出,黑方将被判负。若白方未发现黑方禁手存在而继续应子,其后指出黑方禁手不能判黑方负。兒躉讀闶軒鲧擬钇標藪。6.黑方连五与禁手同时形成,因黑方已连成五即黑方已获胜,故禁手规则失效。7.在对局中,在盘上落下的子又拿起来,此动作称为拔子,若拔子将被判为负。 8.在对局中棋子掉落在棋盘上将被判负。若推子或蹭子,以盘面第一落点为准。用手将棋子推正不算违犯规则。9.在对局中,一方自行中止比赛如:中途退场,将被判负。10.在对局中对方宣布认输,本局获胜。11.超过比赛规定所用时间限制,将被判为负:正式比赛期间,迟到时间超过比赛容许时间将被判负。12.如下至最终一子仍不分胜负则定为平局。13.中盘期间双方 同意和局提议,判定为平局。5.3 五子棋常用术语1.着:也称“步”。对局中把一个棋子按照规则放到某一点,称之为一着棋。一着是否完成有两种规则:1)在执行落子无悔规则是,以行棋者的手离开棋子为一着已完成。2)在执行限时规则时,以行棋者按下棋钟作为一着已完成。2.PASS :五子棋中引入的英文名称,即应该行棋的一方主动放弃此次行棋的机会,由对方继续行棋。3.先手:对方必须应答的着法,如对方形成活三必须阻止其形成活四。4.绝对先手:相对先手而言,即形成同色连四或嵌五,对方必须应着,就是绝对先手。绝对先手又叫“冲”。5.VCF:(Victory of Continus Four 的缩写) 意思是利用连续冲四取胜之意。利用连续不断的冲四或嵌五的绝对先手,制止形成连五获得胜利的一种方法。在对局接近尾声或排局解题中一种常见的取胜技巧。繅藺詞嗇适篮异铜鑑骠。6.追下取胜:是指白棋利用黑棋禁手取胜的战术。白1 冲四,迫使黑2 形成“四、四”禁手( 即冲四,活四禁手), 这种取胜方法叫做追下取胜。鮒簡觸癘鈄餒嬋锵户泼。7.自由取胜:追下取胜以外的取胜方法,即未利用黑棋禁手战术而取胜。8.一子双杀:是指对局中一方落子后出现两个叫杀点即两个获胜点,而使对方无法防守的情形。一般是有两个冲四活三点,白棋的双活三,双四均可称为一子双杀。眯毆蠐謝银癩唠阁跷贗。9.阳线:棋盘上可见的横线与直线的总称。10.阴线:也称“斜线”。是棋盘上不可见的斜行线。11.“四、三”:指同时具备两个先手,其中一个四,另一个是活三。12.“活三”、“嵌五”、“冲四”:参见五子棋重要棋形讲座。13. 禁手:对局中禁止使用的战术或被判为负的行棋手段。14. 开局:也称“布局”。布局阶段大体为七至十几着之内。种类繁多,职业连珠五子棋有二十四种开局。 15. 局面:亦称“局势”。为对局中某一段时间内双方子力的配置情况。16. 优势:是指足以取胜的优势局面,其对方即为败势。17. 妙着:对局中走出的一步精妙的着法。既合乎逻辑又出人意料,有使局面顿时改观的效果,对局势的发展及对局的质量都有重大影响。闵屢螢馳鑷隽劍颂崗鳳。18. 好着:也称“佳着”。对局中成功的某一步。19. 正着:对局的某一局面中的正确着法。20. 劣着:对局中,导致严重不利后果的一步错误着法。21. 败着:也称“失着”“漏着”。对局中造成局面恶化的一步严重错误着法。22. 等着:对局中具有等待性的一步着法,主要意图是等待有利时机。23. 废着:也称“空着”。对局中不起作用的着法。实际上指浪费时间毫无疑义的错着。24. 抢先:对局中利用反活三或冲四的强制手段夺取主动权的着法。25. 打谱:按照棋谱演练着法,是提高棋艺水平的重要方法之一。26. 复局:也叫“复着”。对局结束又重演对局的过程。一般用以研究、比较双方的成败得失和着法的优劣。6 系统平台、计算模式及技术1) 系统的硬件平台:一台台式计算机2) 系统的软件平台:Windows xp/windows 7 IE浏览器等6.1 计算模式的进化及本系统选用的模式优越性回顾计算机的发展史,计算模式有过三次质的飞跃:6.1.1 集中式管理主机/终端模式通过硬件连线把简单的终端接到主机上;所有用户的击键和光标位置传入主机,所有从主机返回的结果,显示在终端屏幕的特定位置;分时共享模式,所有的程序和数据都存储在大型的主机中(数据库、应用程序、通信程序),资源集中控制;利用主机的能力运行应用程序,利用无智能的终端来对应用进行控制;6.1.2 Client/Server模式在Client-Server模式,应用被分为前端(客户端)和后端(服务器端);客户部分运行在微机或工作站上,而服务器部分可以运行在从微机到大型机等各种

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论