毕业设计(论文)java五子_第1页
毕业设计(论文)java五子_第2页
毕业设计(论文)java五子_第3页
毕业设计(论文)java五子_第4页
毕业设计(论文)java五子_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

重庆三峡学院毕业设计(论文)题目JAVA五子棋对弈程序的设计与实现专业计算科学与技术年级2008级学号200806024117作者罗友指导老师火善栋(讲师)完成时间2012年5月目录摘要IABSTRACTII1引言12五子棋对弈程序的可行性分析121五子棋系统设计思路122经济可行性分析123技术上的可行性124管理上的可行性23JAVA五子棋对弈现的需求分析231用户需求分析2311普通用户主要需要2312系级管理员主要需要2313系统用例图332数据字典的描述3321用户信息表的数据字典的描述3322用户每次游戏信息表的数据字典描述4323用户每盘棋信息表的数据字典描述4324用户每步棋信息表的数据字典描述433五子棋对弈系统的数据流图4331用户登录数据流图(DFD)5332普通用户界面显示数据流图(DFD)5333管理员用户界面显示数据流图(DFD)6334用户棋局回放数据流图(DFD)64JAVA五子棋对弈系统分析与设计741系统设计总体思想、目标742五子棋人机对弈系统的ER模型743JAVA五子棋对弈系统结构、功能设计9431系统结构设计9432系统功能模块设计10433设计思路1144程序设计分析1145类的设计1246五子棋对弈系统的数据库设计15461系统用户表15462用户棋局表16463用户棋盘表16464用户下棋信息表175五子棋相关基础1751五子棋相关解释1752五子棋相关规则1753五子棋常用术语186系统平台、计算模式及技术1961计算模式的进化及本系统选用的模式优越性19611集中式管理主机/终端模式19612CLIENT/SERVER模式19613BROWER/SERVER模式20614系统采用B/S三层体系结构模式的优越性2062JSP技术21621JSP简介21622JSP内建对象2263MVC设计模式2364SERVLET23641SERVLET简介23642SERVLET优势2465MYSQL数据库25651MYSQL概述25652MYSQL优势2566TOMCAT服务器工具概述2667环境的安装267系统实现2771用户登陆流程2772用户进入游戏(初始化数据库棋盘)流程2873用户玩游戏流程2974添加新用户308JAVA五子棋对弈程序设计的技术关键3081JAVASCRIPT中AJAX技术3082电脑下棋算法设计329系统试运行结果与评价4110结束语41致谢41参考文献41附件142附件243附件344附件346基于WEB的JAVA五子棋对弈程序的设计与实现罗友(重庆三峡学院计算机科学与工程学院计算机科学与技术专业2008级重庆万州404000)摘要人工智能是一门正在迅速发展的新兴的,综合性很强的交叉科学。它与生物工程、空间技术一起被并列为二十一世界三大尖端技术。它的中心任务是研究如何使计算机去做那些过去只能靠人的智力才能做的工作。目前各发达国家都把人工智能作为重点项目,列入本国的高科技发展计划当中,投入巨大的人力和物力。计算机人机对弈也是其中之一。作为人智能研究的一个重要分支,计算机博弈是检验人工水平的一个重要方面。它的研究为人工智能带来了很多重要的方法和理论,产生了广泛的社会影响和学术影响。五子棋人机对弈是计算机博弈中的一种。研究其计算机算法,可以让我们看到人工智能的稚形,也有助于我们人脑的开发。五子棋是我国发明的,研究它可以让更多的外国人了解五子棋,这有助于我国优秀文化的推广。关键词人工智能;计算人机对弈;五子棋JSPJAVARENJUPLAYCHESSPROGRAMDESIGNANDIMPLEMENTATIONBASEDONWEBLUOYOUGRADE2008,COMPUTERSCIENCEANDTECHNOLOGY,SCHOOLOFCOMPUTERSCIENCEANDENGINEERING,CHONGQINGTHREEGORGESUNIVERSITY,WANZHOU,CHONGQING404000ABSTRACTARTIFICIALINTELLIGENCEISARAPIDLYDEVELOPINGNEW,INTEGRATEDASTRONGFRONTIERSCIENCEITISWITHBIOENGINEERING,SPACETECHNOLOGYHASBEENLISTEDAS21INTHEWORLDALONGWITHTHETHREECUTTINGEDGETECHNOLOGYITSCENTRALTASKISTOSTUDYHOWTOMAKETHECOMPUTERDOTHATINTHEPASTTORELYONHUMANINTELLIGENCETODOAIISCURRENTLYREGARDEDASTHEFOCUSOFTHEDEVELOPEDCOUNTRIESINCLUDEDINTHISCARSHIGHTECHDEVELOPMENTPROJECTSINVESTEDTREMENDOUSHUMANANDMATERIALRESOURCESMANMACHINECHESSCOMPUTERISONEOFTHEMASAHUMANSTUDYOFANIMPORTANTBRANCHOFINTELLIGENCE,THECOMPUTERGAMETOTESTTHELEVELOFANIMPORTANTASPECTOFTHEMANUALITSRESEARCHINARTIFICIALINTELLIGENCEHASRESULTEDINMANYIMPORTANTMETHODSANDTHEORIESTOPRODUCEAWIDERANGEOFSOCIALIMPACTANDACADEMICIMPACTMANMACHINECHESSGAMERENJUINONEOFTHECOMPUTERTOSTUDYTHECOMPUTERALGORITHM,WECANSEETHEBEGINNINGOFARTIFICIALINTELLIGENCESHADOW,BUTALSOHELPUSTOHUMANBRAINDEVELOPMENTBACKGAMMONINVENTEDINCHINA,ANDTHERESEARCHITCANALLOWMOREFOREIGNERSTOUNDERSTANDANDHELPTOPROMOTECHINASTRADITIONALCULTUREKEYWORDSARTIFICIALINTELLIGENCE,MANMACHINECCHESSCOMPUTER,MANMACHINECHESS,ALGORITHM;JSP1引言电脑已经深入到日常工作和生活的方方面面,比如文字处理、信息管理、辅助设计、图形图像处理、教育培训以及游戏娱乐等。WINDOWS系统的推出使电脑从高雅的学术殿堂走入了寻常百姓家,各行各业的人们无须经过特别的训练就能够使用电脑完成许许多多复杂的工作。然而,虽然现在世界上已经充满了花样繁多的各种软件,但它们依然不能满足用户的各种特殊需要,人们还不得不开发适合自己特殊需求的软件。JAVA语言作为一种面向对象的编程语言,具有分布式,可移植,高性能,多线程等特点。通过系统的学习,人们就可以使用它开发出功能齐全,满足特殊需求的应用程序。JAVA语言易学易用,对学习者掌握技能,开拓思维都有很大的帮助。我作为一名学生,在系统的学习了JAVA语言之后,经常用它搞一些小程序。这次毕业设计,正好将学过的JAVA语言中的各种技术综合起来,用MYECLIPSE开发工具编写一个小游戏,既对自己学过的技能进行一次检验,也能系统地将学过的知识复习巩固。随着计算机技术的不断发展,网络技术的普及范围越来越广,网络能够提供的服务多样、便捷,已经成为人们生产生活中不可缺少的重要组成部分。如今网络休闲游戏发展迅速,它凭借健康、方便、互动性强、益智等诸多优点,成为大部分现代人休闲娱乐的首选。2五子棋对弈程序的可行性分析可行性分析是通过对项目的主要内容和配套条件,如市场需求、资源供应、建设规模、工艺路线、设备选型、环境影响、资金筹措、盈利能力等,从技术、经济、工程等方面进行调查研究和分析比较,并对项目建成以后可能取得的财务、经济效益及社会环境影响进行预测,从而提出该项目是否值得投资和如何进行建设的咨询意见,为项目决策提供依据的一种综合性的系统分析方法。21五子棋系统设计思路五子棋系统基本设计思路是把系统按照实现模块进行分解,利用JAVA进行编程。22经济可行性分析主要是对项目的经济效益进行评价,本系统开发费用对于学员在经济上是可以接受的,并且本系统实施后可以让用户很好的对五子棋进行更加深入的研究,有助于开发用户智力。23技术上的可行性技术上的可行性分析主要技术条件是否顺利完成开发工作,硬、软件是否满足开发者的需要等。该系统采用的简单的二层结构,数据库选用MYSQL,它相对于其他的数据库来说,安装简单,灵活性、安全性和易用性为数据库编程提供了良好的条件。因此,系统的软件开发平台已成熟可行。硬件方面,科技飞速发展的今天,硬件更新的速度越来越快,容量越来越大,可靠性越来越高,价格越来越低,棋硬件平台完全能满足此系统的需求。24管理上的可行性主要是管理人员是否支持,现有的管理制度和方法是否科学,规章制度是否齐全,原始数据是否正确等。规章制度和管理方法为系统的建设提供了制度保障。综上所述,此系统开发目标已明确,在技术和经济等方面都可行,并且投入少、见效快。因此系统的开发是完全可行的。3JAVA五子棋对弈现的需求分析本系统主要根据根据老师提出的要求进行的需求分析31用户需求分析根据老师提出的要求,我们把系统的用户分为两类普通用户、系统管理员用户,下面是我们对两种用户的需求进行的分析311普通用户主要需要根据分析,普通用户具有的功能(1)用户登录用户根据自己的密码登录本系统。(2)棋局回放用户根据自己的需求回放自己以前下过的棋局。(3)玩五子棋用户在点击PLAYGAME后会进入游戏界面玩游戏。(4)悔棋功能在下棋过程中,用户根据自己的需求,选择悔棋。(5)更改密码用户可以根据自己的需求更改自己的密码。312系级管理员主要需要系统管理员是本系统的最高权限的管理员,他不仅具有普通用户的各种功能,还具有他独有的功能一下是系统管理员所具备的功能(1)用户登录用户根据自己的密码登录本系统。(2)棋局回放用户根据自己的需求回放自己以前下过的棋局。(3)玩五子棋用户在点击PLAYGAME后会进入游戏界面玩游戏。(4)悔棋功能在下棋过程中,用户根据自己的需求,选择悔棋。(5)更改密码用户可以根据自己的需求更改自己的密码。(6)管理普通用户可以对普通用户进行添加和删除。313系统用例图32数据字典的描述数据字典是关于数据的信息的集合,也就是对数据流图包含的所有元素的定义的集合。任何字典最重要的用途都是供人查阅对不了解的条目的解释,数据字典的作用也正是在软件分析和设计的过程中给人提供关于数据的描述信息。在本系统中涉及到多种数据的存储,其中包括用户信息、用户每次玩游戏的信息、用户每盘棋的信息、用户每步棋的信息。下面是给出的本系统的数据字典描述321用户信息表的数据字典的描述名字用户信息表描述用户可以根据自己的密码登陆系统,系统根据用户的信息来判断用户的权限,主要存储的是用户用户信息和用户权限。定义用户名用户密码用户权限位置数据库用户信息表(USERINFO)描述用与储存用户信息,其中有用户名,当用户登录后会在用户首页上显示。用户密码用于登录本系统,用户权限是整数,1代表普通用户,既可以通过注册的用户;0代表系统用户,是系统自带的不可以通过注册获得。图313系统用例图322用户每次游戏信息表的数据字典描述名字用户每次游戏信息表描述用于记录用户每次玩游戏的信息。定义用户名用户该盘局的编号游戏时间位置数据库用户每次游戏信息表(USERDISH)描述这个表主要用于记录用户玩游戏的时间,用户棋盘编号是数据库自动生成的,游戏时间主要用于用户要回放棋局的查找。323用户每盘棋信息表的数据字典描述名字用户每盘棋信息表描述用于记录用户每盘棋棋盘的信息。定义用户该盘局编号棋盘上棋子的X轴坐标棋盘上棋子的Y轴坐标该坐标上棋子状态位置数据库用户每盘棋信息表(USERQIPAN)324用户每步棋信息表的数据字典描述名字用户每步棋信息表描述用于记录用户每步的信息。定义用户该盘棋的编号用户该步棋的编号该步棋电脑下棋的Y轴坐标该步棋电脑下棋的X轴坐标该步棋用户下棋的Y轴坐标该步棋用户下棋的X轴坐标位置数据库用户每盘棋信息表(USERSTEP)33五子棋对弈系统的数据流图数据流图(DATAFLOWDIAGRAM)简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。下面简要介绍部分需求的数据流图描述该表用户储存棋局信息,主要用于电脑下棋时通过棋局编号提取数据,从而计算出电脑该下哪一步棋,其中棋子状态分为4种,1表示该点不在棋盘上,0表示该坐标无棋子,1表示白棋2表示黑棋描述该表主要储存用户和电脑下的每一步棋,用户与棋盘回放时在数据库提取数据331用户登录数据流图(DFD)在用户登录过程当中,用户输入的信息经过加工处理后,通过对数据库的查询后返回给程序该用户的权限,数据流图(图31)如下用户接受用户信息处理信息输入信息查询信息用户信息表(USERINFO)用户产生查询结果权限信息权限信息图31用户登录数据流图332普通用户界面显示数据流图(DFD)知道用户权限后,通过查询用户游戏信息,显示用户游戏信息。数据流图(图32)如下用户接受权限信息处理信息用户每次游戏信息(USERDISH)产生结果用户权限查询信息游戏信息游戏信息图32普通用户数据显示数据流图333管理员用户界面显示数据流图(DFD)知道用户权限后,通过查询用户游戏信息和所有普通用户信息,显示用户游戏信息。数据流图(图33)如下用户接受权限信息处理信息用户每次游戏信息(USERDISH)产生结果用户权限查询信息游戏信息游戏信息用户信息表(USERINFO)334用户棋局回放数据流图(DFD)知道用户权限后,通过查询用户游戏信息和所有普通用户信息,显示用户游戏信息。数据流图(图34)如下用户接受数据处理信息用户该盘棋该步棋信息(USERSTEP)产生结果用户数据查询信息游戏信息游戏信息图33管理员用户数据显示数据流图图34用户棋局回放数据流图4JAVA五子棋对弈系统分析与设计此系统为智力游戏,适合于各类游戏爱好者。由于其经典性及其游戏的简单性,各类人士都可以也都爱玩。人们在与电脑对战享受娱乐的同时,也会体会到自己的智力也会有所提升。该款五子棋游戏功能虽然简单,但实现了人机,所以从这个角度来说,该款游戏需要电脑能准确的计算棋局。虽然系统不大,但要在满足玩家的基本要求的情况下,电脑有一定的智能,能给于新手一定的帮助。41系统设计总体思想、目标本系统在结构设计中采用JAVA的MVC模式,根据不同的功能划分不同的模块,该款五子棋游戏功能虽然简单,但实现了人机,所以从这个角度来说,该款游戏需要电脑能准确的计算棋局。虽然系统不大,但要在满足玩家的基本要求的情况下,电脑有一定的智能,能给于新手一定的帮助。42五子棋人机对弈系统的ER模型经过对系统的分析,我们将系统划分出了用户信息、用户棋局信息、用户棋盘信息、用户下棋信息等几个实体,其各个实体的属性如下用户信息用户名、用户密码、用户权限用户棋局信息用户名、棋局编号、棋局创建时间用户棋盘信息棋局编号、X轴坐标、Y轴坐标、棋子状态用户下棋信息棋局编号、用户X坐标、用户Y坐标、电脑X坐标、电脑Y坐标本系统的具体ER模型如下用户用户名用户密码用户权限图41用户ER图棋局用户名棋局编号创建时间图42用户棋局ER图棋盘棋局编号X轴坐标Y轴坐标棋子状态下棋棋局编号用户Y坐标用户X坐标电脑X坐标电脑X坐标图43用户棋盘ER图图31整体ER图图44用户棋盘ER图用户用户密码用户名用户权限棋局棋局编号创建时间创建棋盘X轴坐标Y轴坐标棋子状态下棋属于属于用户X坐标用户Y坐标电脑X坐标电脑X坐标1N1N11每步棋编号43JAVA五子棋对弈系统结构、功能设计431系统结构设计本系统主要针对用户提出的要求业务开发的系统,其结构设计情况如图(图46)所示图45整体ER图用户前台注册登录数据显示五子棋棋盘回放悔棋游戏432系统功能模块设计该款游戏主要由一下几个模块组成(图47)五子棋游戏用户登录注册人机对弈模式具有悔棋功能棋局回放功能图47五子棋功能模块图用户登录注册在玩五子棋之前,用户要先登录游戏,未注册的用户应该先注册,如果登录成功会跳到用户管理页面,登录信息错误会提示密码用户名错误。人机对弈模式选择该模式可以实现人与电脑之间的对弈,电脑会智能的选择该在哪处下子,图46系统结构图并会在每次下棋结束后判断是否有哪方已经获胜,如果获胜则结束本局游戏,并提示玩家游戏结束。悔棋功能这个功能也是根据游戏的实际需求而存在的,在现实生活中难免有失误下错了棋,那么就需要悔棋。此功能提供了悔棋功能,使得下棋的灵活性有所提高。玩家若想悔棋,则只需选择悔棋按钮便可以重新下过刚才的棋,但只能悔一步棋。棋局回放功能这个功能是更加用户需求设计的,该功能可以回放用户以前下过的棋局只要点击要回放的棋局,进入棋局回放页面,点击下一步就可以回放该棋局,点一下只能回放一步棋。433设计思路1本程序要实现五子棋的游戏功能,必须先有一个棋盘,所以,通过HTML中的表格画的,棋盘是1717,表格中是一个层,通过改变其背景图片来表示有无棋子,是白棋还是黑棋。另外还有一个按钮悔棋按钮,用于提供悔棋功能,界面还显示系统时间,用户提示用户当前时间。2对于下棋的操作,通过对该层鼠标事件监听器ONCLICK,每次当用户点击鼠标时,先取得点击的坐标值,然后换算成对应棋盘上(即棋盘数组)的位置(数组的下标)。3判断此处是否已经有棋子,如果有则用JAVASCRIPT提示玩家重新下子,否则通过AJAX把点击的数组传递给后台,通过后台处理返回给前台数据来改变样式,在此处画上棋子。4判断该颜色棋子的上下左右是否满足连续五个,是的话提醒相应玩家获胜,不是的话,更换玩家下棋。5对于玩家的更换是程序自动的,每次用户点击鼠标后,若本局还未结束则会变换玩家,从而画出对应黑方白方的棋子,直到有一方获胜程序结束。44程序设计分析1在网站的首页是登录界面,有登录和注册两个功能。2在登录成功会跳到用户信息页面,在该页面的右下角会列出该用户在最近5次,玩游戏的信息记录,点击该记录可以回放对应的棋局。在信息下方有开始游戏和更改密码两个按钮。3绘制棋盘,1717的方框,在方框处下棋子(实心黑白圆形)。4棋盘处于鼠标监听状态,当鼠标在棋盘上有点击操作的时候,程序会获得鼠标点击的坐标然后换算成对应的棋盘的位置,再判断此处是否有棋子,假如没有,那么在此处画出对应颜色的实心棋子,假如已经有棋子了,则提示玩家此处已经有棋子请重新下棋。5当用户点击表格中的层下完棋后,轮到电脑下子时,电脑会通过算法计算每个没有棋子的位置的重要性来选择最重要的位置下子。6当任何一方有五个棋子沿着横,竖,斜连在一起时,系统自动判断赢棋,并显示黑方或白方胜利。棋局结束后,会返回用户信息页面。7程序流程如下图图48登录注册开始游戏棋局回放悔棋下一步判断结果回放结束游戏结束45类的设计1)由于要用到数据库,所以设计了一个用来连接数据库的类BASEDAO,其中包括了两个方法和4个变量,类图图49如下2)下图是关于数据库中对应的表的类图图410关系图48系统结构图图49BASEDAO类图3)虽然有了用户相关类,但是无法操作数据库中的用户信息,所以设计了操作用户表的类USERDISHDAOIMPL,该类继承BASEDAO,并且实现IUSERDAO类,类图图411如下4)对于用户每次玩游戏的信息操作,用USERDISHDAOIMPL实现了各种操作。类图图412如下图410类表关系图图411USERDISHDAOIMPL类图5)对棋盘的各种信息保存操作,用类USERQIPANDAOIMPL来实现。其中类图图413如下6)对每局棋及每盘棋的各种保存操作,用USERSTEPDAOIMPL来实现,其中类图图414如下图412USERDISHDAOIMPL类图图413USERQIPANDAOIMPL类图图414USERSTEPDAOIMPL类图7)由于程序是人机对弈,电脑下棋算法用COMPUTER类来实现,其中有电脑下棋算法,还有电脑判断输赢算法,类图图415如下8本程序的时序图(图416)如下46五子棋对弈系统的数据库设计461系统用户表名称编码数据类型备注图415SERVLET类图图416时序图用户名USERNAMEVARCHAR255用户输入,NOTNULL约束,是表的主键用户密码USERPWDVARCHAR255用户输入,NOTNULL约束用户权限USERFLAGINT11系统分配,NOTNULL约束,用于判断用户权限462用户棋局表名称编码数据类型备注棋局编号DISHIDINT11系统自动分配,是该表的主键,NOTNULL约束用户名USERNAMEVARCHAR255用户输入,NOTNULL约束创建时间PLAYDATEDATE系统分配,NOTNULL约束463用户棋盘表名称编码数据类型备注棋局编号DISHIDINT(11)系统自动分配,是改变的主键,NOTNULL约束X轴坐标XINT11是棋盘的X坐标,NOTNULL约束Y轴坐标YINT11是棋盘的Y坐标,NOTNULL约束状态FINT(11)表示棋子状态,NOTNULL约束464用户下棋信息表名称编码数据类型备注下棋编号STEPIDINT(11)系统自动分配,是改变的主键,NOTNULL约束电脑X坐标PCXINT11是电脑该步棋的X坐标,NOTNULL约束电脑Y坐标PCYINT11是电脑该步棋的Y坐标,NOTNULL约束用户X坐标PSXINT(11)是电用户该步棋的X坐标,NOTNULL约束用户Y坐标PSYINT(11)是电用户该步棋的X坐标,NOTNULL约束棋局编号DISHIDINT(11)是该表的外键,NOTNULL约束5五子棋相关基础51五子棋相关解释引用辞海中所言,五子棋是“棋类游戏,棋具与围棋相同,两人对局,轮流下子,先将五子连成一行者为胜。”。五子棋的名称日文亦有“连五子、五子连、串珠、五目、五目碰、五格、五石、五法、五联、京棋”等多种称谓,英文则称之为FIRFIVEINAROW的缩写、GOMOKU日语“五目”的罗马拼音、GOBANG、CONNECT5、MORPHION。捷克语PISKVORKY,韩语OMOK、韩国人还称之为情侣棋。52五子棋相关规则1五子棋行棋时,黑棋先下第一子,由天元开始,后白棋在黑棋周围的方框的落子。接着黑方再以天元中心的25个交叉点的范围内落盘面的第三子,之后黑白双方相互顺序子。2最先在棋盘上横向,纵向,斜向形成已方的五个棋子连续的一方为胜。3出现禁手对方指出后将判负,其中包括两个或两个以上的活三,活四,长连均称之为禁手。4禁手只对黑棋有效,白棋无禁手。5黑方禁手形成时,白方需立即指出,黑方将被判负。若白方未发现黑方禁手存在而继续应子,其后指出黑方禁手不能判黑方负。6黑方连五与禁手同时形成,因黑方已连成五即黑方已获胜,故禁手规则失效。7在对局中,在盘上落下的子又拿起来,此动作称为拔子,若拔子将被判为负。8在对局中棋子掉落在棋盘上将被判负。若推子或蹭子,以盘面第一落点为准。用手将棋子推正不算违犯规则。9在对局中,一方自行中止比赛如中途退场,将被判负。10在对局中对方宣布认输,本局获胜。11超过比赛规定所用时间限制,将被判为负正式比赛期间,迟到时间超过比赛容许时间将被判负。12如下至最终一子仍不分胜负则定为平局。13中盘期间双方同意和局提议,判定为平局。53五子棋常用术语1着也称“步”。对局中把一个棋子按照规则放到某一点,称之为一着棋。一着是否完成有两种规则1在执行落子无悔规则是,以行棋者的手离开棋子为一着已完成。2在执行限时规则时,以行棋者按下棋钟作为一着已完成。2PASS五子棋中引入的英文名称,即应该行棋的一方主动放弃此次行棋的机会,由对方继续行棋。3先手对方必须应答的着法,如对方形成活三必须阻止其形成活四。4绝对先手相对先手而言,即形成同色连四或嵌五,对方必须应着,就是绝对先手。绝对先手又叫“冲”。5VCFVICTORYOFCONTINUSFOUR的缩写意思是利用连续冲四取胜之意。利用连续不断的冲四或嵌五的绝对先手,制止形成连五获得胜利的一种方法。在对局接近尾声或排局解题中一种常见的取胜技巧。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系统的软件平台WINDOWSXP/WINDOWS7IE浏览器等61计算模式的进化及本系统选用的模式优越性回顾计算机的发展史,计算模式有过三次质的飞跃611集中式管理主机/终端模式通过硬件连线把简单的终端接到主机上;所有用户的击键和光标位置传入主机,所有从主机返回的结果,显示在终端屏幕的特定位置;分时共享模式,所有的程序和数据都存储在大型的主机中(数据库、应用程序、通信程序),资源集中控制;利用主机的能力运行应用程序,利用无智能的终端来对应用进行控制;612CLIENT/SERVER模式在CLIENTSERVER模式,应用被分为前端(客户端)和后端(服务器端);客户部分运行在微机或工作站上,而服务器部分可以运行在从微机到大型机等各种计算机上。客户机和服务器分别工作在不同的逻辑实体中,并协同工作。服务器主要是运行客户机不能完成或费时的工作,比如大型数据库的管理,而客户机可以通过预先指定的语言向服务器提出请求,要求服务器去执行某项操作,并将操作结果返送给客户机。613BROWER/SERVER模式基于浏览器、WWW服务器和应用服务器的计算结构,称为浏览器/服务器(BROWSER/SERVER)的计算模式,简称B/S模式,该计算模式在20世纪90年代中期逐渐形成和发展。B/S计算模式继承和共融了传统客户机/服务器模式中的网络软、硬件平台和应用,但它具有传统C/S计算模式所不及的很多特点,比如更加开放、与软、硬件平台无关、应用开发速度快、生命周期长、应用扩充和系统维护升级方便等。614系统采用B/S三层体系结构模式的优越性三层体系结构图如图图61所示CGI,ASP,PHP等技术的出现,使得开发动态交互式的WEB应用得以实现。用户通过浏览器向服务器发送请求,WEB服务器接收客户端发送来的请求,对请浏览器WEB服务器请求响应数据库图61三层体系结构图求进行分析,如果请求是静态页面,那么就将所请求的页面发送到客户端;如果请求的是动态页面,那么就执行此动态页面,并将执行结果发送给客户端。动态页面中的脚本程序可以和数据库服务器进行交互。WEB服务器可以根据用户的请求动态更新页面上的信息,WEB信息提供者可以通过改变数据库中的数据向用户提供最新信息,而不需要逐个更改页面。用户可以通过这些动态页面向数据库中输入信息,从而增强了用户和服务器之间的交互性。与传统的CS体系结构相比,三层体系结构存在以下优点1客户端零维护在三层体系结构中,几乎所有的业务处理都是在中间件WEBSERVER上完成的,客户端只需要安装支持JAVA的浏览器即可,不用做任何其它安装和配置工作,所以也就不存在客户端维护的问题,真正实现了“客户端零维护”。处理业务时,操作员可以直接通过WEB浏览器访问WEBSERVER进行业务处理工作。2)可扩展性好三层体系结构的可扩展性好体现在以下四个方面第一,工作节点的可扩展性好。由于三层体系结构的客户端零维护的特点,使增加一个工作节点的工作简单到了只需增加一台装有WEB浏览器的PC机即可。第二,应用系统的可扩展性好。好的应用系统应该能方便地实现一定程度上业务的变化和业务单元的增加。三层体系结构采用面向对象的分析和设计模式,将业务模块都封装到了业务类和服务类中,所以,如果一个业务流程变了,或需要增加一个新的业务模块,只需替换或增加新的业务类和服务类即可。第三,业务逻辑与用户界面及数据库分离,使得当用户业务逻辑发生变化时只需更改中间层的控件组件JBEJB即可。第四,便于数据库移植。由于客户端不直接访问数据库,而是通过一个中间层进行访问,所以,在改变数据库、驱动程序或存储方式时无需改变客户端配置,只要集中改变中间件上的持久化层的数据库连接部分即可。3)安全性好在三层体系结构中,客户端只能通过WEBSERVER而不能直接访问数据库,这大大提高了系统的安全性。如果对系统提出更高的安全性要求的话,还可以通过防火墙进行屏蔽。4资源重用性好由于将业务逻辑集中到WEBSERVER统一处理,三层体系结构可以更好地利用共享资源。例如数据库连接是一项很消耗系统资源、影响响应时间的事件,在三层体系结构中可以将数据库连接放在缓冲池中统一管理,由不同应用共享,并有效控制连接的数量。62JSP技术621JSP简介JSP(JAVASERVERPAGES)是一种基于JAVA的脚本技术。在JSP的众多优点之中,其中之一是它能将HTML编码从WEB页面的业务逻辑中有效地分离出来。用JSP访问可重用的组件,如SERVLET、JAVABEAN和基于JAVA的WEB应用程序。JSP还支持在WEB页面中直接嵌入JAVA代码。可用两种方法访问JSP文件浏览器发送JSP文件请求、发送至SERVLET的请求。1JSP文件访问BEAN或其它能将生成的动态内容发送到浏览器的组件。图62说明了该JSP访问模型。当WEB服务器接收到一个JSP文件请求时,服务器将请求发送至WEBSPHERE应用服务器。WEBSPHERE应用服务器对JSP文件进行语法分析并生成JAVA源文件(被编译和执行为SERVLET)。JAVA源文件的生成和编译仅在初次调用SERVLET时发生,除非已经更新了原始的JSP文件。在这种情况下,WEBSPHERE应用服务器将检测所做的更新,并在执行它之前重新生成和编译SERVLET。图62浏览器发送JSP文件请求2发送至SERVLET的请求生成动态内容,并调用JSP文件将内容发送到浏览器。图63说明了该访问模型。该访问模型使得将内容生成从内容显示中分离出来更为方便。WEBSPHERE应用服务器支持HTTPSERVICEREQUEST对象和HTTPSERVICERESPONSE对象的一套新方法。这些方法允许调用的SERVLET将一个对象放入(通常是一个BEAN)请求对象中,并将该请求传递到另一个页面(通常是一个JSP文件)以供显示。调用的页面从请求对象中检索BEAN,并用JSP来生成客户机端的HTML。图63发送至SERVLET的请求622JSP内建对象定义可以不加声明就在JSP页面脚本(JAVA程序片和JAVA表达式)中使用的成员变量JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应)1REQUEST对象客户端的请求信息被封装在REQUEST对象中,通过它才能了解到客户的需求,然后做出响应。它是HTTPSERVLETREQUEST类的实例。2RESPONSE对象RESPONSE对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。它是HTTPSERVLETRESPONSE类的实例。3SESSION对象SESSION对象指的是客户端与服务器的一次会话,从客户端连到服务器的一个WEBAPPLICATION开始,直到客户端与服务器断开连接为止。它是HTTPSESSION类的实例4OUT对象OUT对象是JSPWRITER类的实例,是向客户端输出内容常用的对象5PAGE对象PAGE对象就是指向当前JSP页面本身,有点象类中的THIS指针,它是JAVALANGOBJECT类的实例6APPLICATION对象APPLICATION对象实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在;这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对象属性的操作,都将影响到其他用户对此的访问。服务器的启动和关闭决定了APPLICATION对象的生命。它是SERVLETCONTEXT类的实例。7EXCEPTION对象EXCEPTION对象是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象。如果一个JSP页面要应用此对象,就必须把ISERRORPAGE设为TRUE,否则无法编译。他实际上是JAVALANGTHROWABLE的对象8PAGECONTEXT对象PAGECONTEXT对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的SESSION,也可以取本页面所在的APPLICATION的某一属性值,他相当于页面中所有功能的集大成者,它的本类名也叫PAGECONTEXT。9CONFIG对象CONFIG对象是在一个SERVLET初始化时,JSP引擎向它传递信息用的,此信息包括SERVLET初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个SERVLETCONTEXT对象)63MVC设计模式MVC模式的基本形式图如图64所示。用户控制器视图模型输入显示图64MVC模式的基本形式图MVCMODELVIEWCONTROLLER模式并不是J2EE行业人士标新立异的。MVC的核心就是要做到三级甚至多级的松散耦合,MVC模式将系统分为三个部分,分别是数据模型、视图和控制器,并定义了这三个部分之间实现通信的一种模式,使每个部分不必卷入到其他部分的状态表示和方法实现的细节中去。每个部分有自己的数据管理规则,各个对象之间的通信只能使用自己定义的一个受限连接集合进行。保持这种分离性通常是面向对象编程和设计要追求的目标,让各个对象只需专注于自己的事务。模型部分代表了商业数据的访问及修改数据的操作。当数据发生改变时,要负责通知视图部分,并且提供视图查询状态的能力。另外,还向控制部分提供应用功能。视图部分以自己的方式显示模型的内容。访问模型的数据,并且当模型的数据发生变化时更新模型的显示。视图还把从用户那里得到的信息传给控制部分。控制部分定义了应用的行为。分发用户请求和选择表现视图,还负责解释用户输入,进而调用模型的功能。在WEB应用中,用户输入包括对WEB级资源的HTTP、GET和POST请求。控制部分根据用户交互和模型的状态选择要显示的视图。一个应用程序一般为相关的功能选择一个控制部分。64SERVLET641SERVLET简介SERVLET是在服务器上运行的小程序。这个词是在JAVAAPPLET的环境中创造的,JAVAAPPLET是一种当作单独文件跟网页一起发送的小程序,它通常用于在客户端运行,结果得到为用户进行运算或者根据用户互作用定位图形等服务。服务器上需要一些程序,常常是根据用户输入访问数据库的程序。这些通常是使用公共网关接口(CGICOMMONGATEWAYINTERFACE)应用程序完成的。然而,在服务器上运行JAVA,这种程序可使用JAVA编程语言实现。在通信量大的服务器上,JAVASERVLET的优点在于它们的执行速度更快于CGI程序。各个用户请求被激活成单个程序中的一个线程,而无需创建单独的进程,这意味着服务器端处理请求的系统开销将明显降低。实现过程最早支持SERVLET技术的是JAVASOFT的JAVAWEBSERVER。此后,一些其它的基于JAVA的WEBSERVER开始支持标准的SERVLETAPI。SERVLET的主要功能在于交互式地浏览和修改数据,生成动态WEB内容。这个过程为1、客户端发送请求至服务器端;2、服务器将请求信息发送至SERVLET3、SERVLET生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求4、服务器将响应返回给客户端5、SERVLET看起来像是通常的JAVA程序。SERVLET导入特定的属于JAVASERVLETAPI的包。因为是对象字节码,可动态地从网络加载,可以说SERVLET对SERVER就如同APPLET对CLIENT一样,但是,由于SERVLET运行于SERVER中,它们并不需要一个图形用户界面。从这个角度讲,SERVLET也被称为FACELESSOBJECT。一个SERVLET就是JAVA编程语言中的一个类,它被用来扩展服务器的性能,服务器上驻留着可以通过“请求响应”编程模型来访问的应用程序。虽然SERVLET可以对任何类型的请求产生响应,但通常只用来扩展WEB服务器的应用程序。642SERVLET优势JAVASERVLET与CGICOMMONGATEWAYINTERFACE公共网关接口的比较与传统的CGI和许多其他类似CGI的技术相比,JAVASERVLET具有更高的效率,更容易使用,功能更强大,具有更好的可移植性,更节省投资。在未来的技术发展过程中,SERVLET有可能彻底取代CGI。在传统的CGI中,每个请求都要启动一个新的进程,如果CGI程序本身的执行时间较短,启动进程所需要的开销很可能反而超过实际执行时间。而在SERVLET中,每个请求由一个轻量级的JAVA线程处理而不是重量级的操作系统进程。在传统CGI中,如果有N个并发的对同一CGI程序的请求,则该CGI程序的代码在内存中重复装载了N次;而对于SERVLET,处理请求的是N个线程,只需要一份SERVLET类代码。在性能优化方面,SERVLET也比CGI有着更多的选择。方便SERVLET提供了大量的实用工具例程,例如自动地解析和解码HTML表单数据、读取和设置HTTP头、处理COOKIE、跟踪会话状态等。功能强大在SERVLET中,许多使用传统CGI程序很难完成的任务都可以轻松地完成。例如,SERVLET能够直接和WEB服务器交互,而普通的CGI程序不能。SERVLET还能够在各个程序之间共享数据,使得数据库连接池之类的功能很容易实现。可移植性好SERVLET用JAVA编写,SERVLETAPI具有完善的标准。因此,为IPLANETENTERPRISESERVER写的SERVLET无需任何实质上的改动即可移植到APACHE、MICROSOFTIIS或者WEBSTAR。几乎所有的主流服务器都直接或通过插件支持SERVLET。节省投资不仅有许多廉价甚至免费的WEB服务器可供个人或小规模网站使用,而且对于现有的服务器,如果它不支持SERVLET的话,要加上这部分功能也往往是免费的或只需要极少的投资。65MYSQL数据库651MYSQL概述MYSQL是一个小型关系型数据库管理系统,开发者为瑞典MYSQLAB公司。在2008年1月16号被SUN公司收购。而2009年,SUN又被ORACLE收购。MYSQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内。这样就增加了速度并提高了灵活性。MYSQL的SQL“结构化查询语言”。SQL是用于访问数据库的最常用标准化语言。MYSQL软件采用了GPL(GNU通用公共许可证)。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MYSQL作为网站数据库。652MYSQL优势可靠性和性能MYSQLAB向公众提供所有数据库服务器软件的早期版本,利用开发源码进行为期几个月的测试,之后才发布作为生产之用。易于使用和部署MYSQL的结构体系易于定制,而且速度极快。其独特的多存储引擎结构为企业客户提供了广泛的灵活性,赋予数据库管理系统以卓越的紧致性和稳定性,并且易于部署,同时具有无与匹敌的速度。平台自由源代码随时可访问,MYSQL策略确保了自由性,以防锁定于某个公司或平台内。跨平台支持MYSQL可用于20多种不同的平台,包括主要的LINUX系统、MACOSX、UNIX和MICROSOFTWINDOWS。开发队伍庞大MYSQL是世界上最为流行的开放源码数据库,因此很容易获得高素质和有经验的开发团队。强大、简单MYSQLMYSQL结构体系简单易用,而且运行速度极快,能够处理企业数据库绝大多数的应用需求。MYSQLAB有两种许可证。无论选择哪一种,您都将会享受到MYSQL数据库所带来的巨大优势,它能够显著降低您的总成本。从许可证而言,本公司提供两种不同的产品,在使用和发行上都有所区别,尽管技术上他们具有完全相同的源代码。许可证选项包括商业许可证允许您向客户提供商业软件许可证,或仅在企业范围内发布基于MYSQL的应用程序。如果企业不希望发布应用程序的源代码,即不希望将其作为开放源码/免费软件,或者不愿遵守GNUGPL,需要选择该种许可证方案。开发源码许可证对于那些进行开放源码应用程序的开发人员而言,可以将其软件在一个开放源码/免费许可证方案下进行发布,其他人员可以对其进行使用、修改或免费发布。只要您是在重新发布的应用程序中使用MYSQL,该种许可证就允许您免费使用软件,在合理条件下,您应用程序的完全源代码必须是可用的,并且允许自由重新发布。66TOMCAT服务器工具概述TOMCAT很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。TOMCAT是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好APACHE服务器,可利用它响应对HTML页面的访问请求。实际上TOMCAT部分是APACHE服务器

温馨提示

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

评论

0/150

提交评论