基于web的java五子棋对弈程序的设计与实现_毕业设计内容摘要:
创建 棋盘 X轴坐标 Y轴坐标 棋子状态 下棋 属于 属于 用户 X坐标 用户 Y坐标 电脑 X坐标 电脑 X坐标 1 N 1 N 1 1 每步棋编号 图 45 整体 ER图 2020 届计算机科学与技术专业毕业设计(论文) 第 13 页 共 47 页 系统功能模块设计 该款游戏主要由一下几个模块组成(图 47): 用户登录注册:在玩五子棋之前,用户要先登录游戏,未注册的用户用户前台 注册 登录 数据显示 五子棋 棋盘回放 悔棋 游戏 五子棋游戏 用户登录注册 人机对弈模式 具有悔棋功能 棋局回放功能 图 47 五子棋功能模块图 图 46 系统结构图 罗友:基于 Web 的 JAVA 五子棋对弈程序的设计与实现 第 14 页 共 47 页 应该先注册,如果登录成功会跳到用户管理页面,登录信息错误会提示密码用户名错误。 人机对弈模式:选择该模式可以实 现人与电脑之间的对弈,电脑会智能的选择该在哪处下子,并会在每次下棋结束后判断是否有哪方已经获胜,如果获胜则结束本局游戏,并提示玩家游戏结束。 悔棋功能:这个功能也是根据游戏的实际需求而存在的,在现实生活中难免有失误下错了棋,那么就需要悔棋。 此功能提供了悔棋功能,使得下棋的灵活性有所提高。 玩家若想悔棋,则只需选择悔棋按钮便可以重新下过刚才的棋,但只能悔一步棋。 棋局回放功能:这个功能是更加用户需求设计的,该功能可以回放用户以前下过的棋局只要点击要回放的棋局,进入棋局回放页面,点击下一步就可以回放该棋局,点一下 只能回放一步棋。 设计思路 ,必须先有一个棋盘,所以,通过html 中的表格画的,棋盘是 17*17,表格中是一个层,通过改变其背景图片来表示有无棋子,是白棋还是黑棋。 另外还有一个按钮:悔棋按钮,用于提供悔棋功能,界面还显示系统时间,用户提示用户当前时间。 ,通过对该层鼠标事件监听器 onclick,每次当用户点击鼠标时,先取得点击的坐标值,然后换算成对应棋盘上(即棋盘数组)的位置(数组的下标)。 ,如果有则用 javascript 提示玩家重新下子,否则通过 ajax 把点击的数组传递给后台,通过后台处理返回给前台2020 届计算机科学与技术专业毕业设计(论文) 第 15 页 共 47 页 数据来改变样式,在此处画上棋子。 ,是的话提醒相应玩家获胜,不是的话,更换玩家下棋。 ,每次用户点击鼠标后,若本局还未结束则会变换玩家,从而画出对应黑方白方的棋子,直到有一方获胜程序结束。 程序设计分析 1. 在网站的首页是登录界面,有登录和注册两个功能。 2.在登录成功会跳到用户信息页面,在该页面的右下角会列出该用户在最近 5 次,玩游戏的信息记录 ,点击该记录可以回放对应的棋局。 在信息下方有开始游戏和更改密码两个按钮。 3. 绘制棋盘, 17*17 的方框,在方框处下棋子(实心黑白圆形)。 4. 棋盘处于鼠标监听状态,当鼠标在棋盘上有点击操作的时候,程序会获得鼠标点击的坐标然后换算成对应的棋盘的位置,再判断此处是否有棋子,假如没有,那么在此处画出对应颜色的实心棋子,假如已经有棋子了,则提示玩家此处已经有棋子请重新下棋。 5. 当用户点击表格中的层下完棋后,轮到电脑下子时,电脑会通过算法计算每个没有棋子的位置的重要性来选择最重要的位置下子。 6. 当任何一 方有五个棋子沿着横,竖,斜连在一起时,系统自动判断赢棋,并显示黑方或白方胜利。 棋局结束后,会返回用户信息页面。 7.程序流程如下图 (图 48): 罗友:基于 Web 的 JAVA 五子棋对弈程序的设计与实现 第 16 页 共 47 页 登 录注 册开 始 游 戏 棋 局 回 放悔 棋 下 一 步判 断 结 果 回 放 结 束游 戏 结 束 类的设计 1)由于要用到数据库,所以设计了一个用来连接数据库的类 BaseDao,其中包括了两个方法和 4 个变量 ,类图 (图 49)如下: 图 48 系统结构图 图 49 BaseDao 类图 2020 届计算机科学与技术专业毕业设计(论文) 第 17 页 共 47 页 2)下图是关于数据库中对应的表的类图 (图 410)关系: 3)虽然有了用户相关类,但是无法操作数据库中的用户信息,所以设计了操作用户表的类 UserDishDaoImpl,该类继承 BaseDao,并且实现IUserDao 类,类图 (图 411)如下: 图 410 类表关系图 图 411 UserDishDaoImpl类图 罗友:基于 Web 的 JAVA 五子棋对弈程序的设计与实现 第 18 页 共 47 页 4)对于用户每次玩游戏的信息操作,用 UserDishDaoImpl 实现了各种操作。 类图 (图 412)如下: 5)对棋盘的各种信息保存操作,用类 UserQipanDaoImpl 来实现。 其中类图 (图 413)如下 6)对每局棋及每盘棋的各种保存操作,用 UserStepDaoImpl 来实现,其中类图 (图 414)如下: 图 412 UserDishDaoImpl类图 图 413 UserQipanDaoImpl类图 2020 届计算机科学与技术专业毕业设计(论文) 第 19 页 共 47 页 7)由于程序是人机对弈,电脑下棋算法用 Computer 类来实现,其中有电脑下棋算法,还有电脑判断输赢算法,类图 (图 415)如下: 8)本程序的时序图 (图 416)如下 : 图 414 UserStepDaoImpl类图 图 415 Servlet类图 罗友:基于 Web 的 JAVA 五子棋对弈程序的设计与实现 第 20 页 共 47 页 五子棋对弈系统的数据库设计 系统用户表 名称 编码 数据类型 备注 用户名 userName varchar(255) 用户输入, Not null 约束,是表的主键 用户密码 userPwd varchar(255) 用户输入, Not null 约束 用户权限 userFlag Int(11) 系统分配, Not null 约束,用于判断 用户权限 图 416 时序 图 2020 届计算机科学与技术专业毕业设计(论文) 第 21 页 共 47 页 用户棋局表 名称 编码 数据类型 备注 棋局编号 dishId Int(11) 系统自动分配,是该表的主键,Not null 约束 用户名 userName varchar(255) 用户输入, Not null 约束 创建时间 playDate Date 系统分配, Not null 约束 用户棋盘表 名称 编码 数据类型 备注 棋局编号 dishId Int( 11) 系统自动分配,是改变的主键,Not null 约束 X 轴坐标 X Int(11) 是棋盘的 X 坐标, Not null 约束 Y 轴坐标 Y Int(11) 是棋盘的 Y 坐标, Not null 约束 状态 F Int( 11) 表示棋子状态,Not null 约束 罗友:基于 Web 的 JAVA 五子棋对弈程序的设计与实现 第 22 页 共 47 页 用户下棋信息表 名称 编码 数据类型 备注 下棋编号 stepId Int( 11) 系统自动分配,是改变的主键,Not null 约束 电脑 X 坐标 pcX Int(11) 是电脑该步棋的X 坐标, Not null约束 电脑 Y 坐标 pcY Int(11) 是电脑该步棋的Y 坐 标, Not null约束 用户 X 坐标 psX Int( 11) 是电用户该步棋的 X 坐标, Not null 约束 用户 Y 坐标 psY Int( 11) 是电用户该步棋的 X 坐标, Not null 约束 棋局编号 dishId Int( 11) 是该表的外键,Not null 约束 2020 届计算机科学与技术专业毕业设计(论文) 第 23 页 共 47 页 5 五子棋相关基础 五子棋相关解释 引用《辞海》中所言,五子棋是“棋类游戏,棋具与围棋相同,两人对局,轮流下子,先将五子连成一行者为胜。 ”。 五子棋的名称:日文亦有“连五子、五子连、串珠、五目、五目碰、五格、五石、 五法、五联、京棋”等多种称谓,英文则称之为 FIR (Five In A Row 的缩写 )、 Gomoku(日语“五目”的罗马拼音 )、 Gobang、 connect morphion。 捷克语 piskvorky,韩语 omok、韩国人还称之为情侣棋。 五子棋相关规则 ,黑棋先下第一子,由天元开始,后白棋在黑棋周围的方框的落子。 接着黑方再以天元中心的 25 个交叉点的范围内落盘面的第三子,之后黑白双方相互顺序子。 ,纵向,斜向形成已方的五个棋子连续的一方为胜。 对方指出后将判负,其中包括两个或两个以上的活三,活四,长连均称之为禁手。 ,白棋无禁手。 ,白方需立即指出,黑方将被判负。 若白方未发现黑方禁手存在而继续应子,其后指出黑方禁手不能判黑方负。 ,因黑方已连成五即黑方已获胜,故禁手规则失效。 ,在盘上落下的子又拿起来,此动作称为拔子,若拔子将罗友:基于 Web 的 JAVA 五子棋对弈程序的设计与实现 第 24 页 共 47 页 被判为负。 若推子或蹭子,以盘面第一落点为准。 用手将棋子推正不算违犯规则。 ,一方自行中止比赛如 :中途退场,将被判负。 ,本局获胜。 ,将被判为负:正式比赛期间,迟到时间超过比赛容许时间将被判负。 同意和局提议,判定为平局。 五子棋常用术语 :也称“步”。 对局中把一个棋子按照规则放到某一点,称之为一着棋。 一着是否完成有两种规则: 1)在执行落子无悔规则是,以行棋者的手离开棋子为一着已完成。 2)在执行限时规则时,以行棋者按下棋钟作为一着已完成。 : 五子棋中引入的英文名称,即应该行棋的一方主动放弃此次行棋的机会,由对方继续行棋。 :对方必须应答的着法,如对方形成活三必须阻止其形成活四。 :相对先手而言,即形成同色连四或嵌五,对方必须应着,就是绝对先手。 绝对先手又叫“冲”。 :(Victory of Continus Four 的缩写 ) 意思是利用连续冲四取胜之意。 利用连续不断的冲四或嵌五的绝对先手,制止形成连五获得胜利2020 届计算机科学与技术专业毕业设计(论文) 第 25 页 共 47 页 的一种方法。 在对局接近尾声或排局解题中一种常见的取胜技巧。 :是指白棋利用黑棋禁手取胜的战术。 白 1 冲四,迫使黑2 形成“四、四”禁手 ( 即冲四,活四禁手 ), 这种取胜方法叫做追下取胜。 :追下取胜以外的取胜方法,即未利用黑棋禁手战术而取胜。 :是指对局中一方落子后出现两个叫杀点即两个获胜点,而使对方无法防守的情形。 一般是有两个冲四活三点,白棋的双活三,双四均可称为一子双杀。 :棋盘上可见的横线与直线的总称。 :也称“斜线”。 是棋盘上不可见的斜行线。 11.“四、三”:指同时具备两个先手,其中一个四,另一个是活三。 12.“活三”、“嵌五”、“冲四”:参见五 子棋重要棋形讲座。 13. 禁手:对局中禁止使用的战术或被判为负的行棋手段。 14. 开局:也称“布局”。 布局阶段大体为七至十几着之内。 种类繁多,职业连珠五子棋有二十四种开局。 15. 局面:亦称“局势”。 为对局中某一段时间内双方子力的配置情况。 16. 优势:是指足以取胜的优势局面,其对方即为败势。 17. 妙着:对局中走出的一步精妙的着法。 既合乎逻辑又出人意料,有使局面顿时改观的效果,对局势的发展及对局的质量都有重大影响。 18. 好着:也称“佳着”。 对局中成功的某一步。 罗友:基于 Web 的 JAVA 五子棋对弈程序的设计与实现 第 26 页。基于web的java五子棋对弈程序的设计与实现_毕业设计
相关推荐
analysis。 spillway design includes profiles drawn up, checking discharge capacity, hydraulic calculation of energy dissipation, stability analysis and stress analysis. Late work detailing and ground
01100011,1111100001111100001111100001111110001111110001111110001111110001bA AES算法基于排列和置换运算。 排列是对数据重新进行安排,置换是将一个数据单元替换为另一个。 AES使用几种不同的方法来执行排列和置换运算。 AES是一个迭代的
天津大学仁爱学院 2020届本科生毕业设计(论文) 13 冷却塔壳体和计算方法很多,有的很复杂,但都不能完全精确的计算出准确结果。 为简化设计,仅考虑拼接处局部区域承载 [6],而其余部分只考虑失稳而不承载。 承载局部是由两块壳体翻边法兰拼接成 ―T‖形肋。 肋的宽度为 16t( t 为壳体厚度)。 共 8条肋,法兰翻边的厚度为 12mm。 上塔体的惯性矩表示如下 222 2 2 2[] I x
望,开发企业将会迎来一轮 “ 洗牌 ” ,房价面临进一步回调。 在从紧的货币政策作用下, “ 断供 ” 、 “ 烂尾楼 ” 等风险出现的可能性加大。 此外,随着住房结构调整及各项住房保障政策的落实,中低收入家庭住房困难问题将得到进一步解决。 需求方短期内难以走出观望,开发企业会迎来一轮 “ 洗牌 ” ,在供需双方作用下,短期内房价面临进一步回调 在从紧的货币政策作用下, “ 断供 ” 、 “
模块( )登录模块( )修改个人资料( )教程浏览( )提问浏览( )在线测试( ) 图 功能模块图 系统模块设计 教师模块 ① 注册模块。 首先申请用户名,这个用户名是唯一的,然后填写姓名、密码、第 2 章 需求分析 2 E— mail 等用户信息。 填好后提交资料就会被保存到教师数据表中。 ② 登录模块。 已经注册的用户进入系统,必须先进行登录。 ③ 修改个人资料模块。