【毕业学位论文】(Word原稿)五子棋对弈小游戏程序设计-计算机科学与技术_第1页
【毕业学位论文】(Word原稿)五子棋对弈小游戏程序设计-计算机科学与技术_第2页
【毕业学位论文】(Word原稿)五子棋对弈小游戏程序设计-计算机科学与技术_第3页
【毕业学位论文】(Word原稿)五子棋对弈小游戏程序设计-计算机科学与技术_第4页
【毕业学位论文】(Word原稿)五子棋对弈小游戏程序设计-计算机科学与技术_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

毕 业 论 文(设计) 题 目: 对弈小游戏 学 号: 姓 名: 许东 年 级: 07计算机科学与技术 2 班 学 院: 信息科学技术学院 系 别: 计算机系 专 业: 计算机科学与技术 指导教师: 张晋 完成日期: 2011 年 04月 9 日 目 录 摘 要 . 1 关键词 :. 1 . 1 . 1 第一章:绪论 . 2 言 . 2 第二章 五子棋的相关基础 . 2 . 2 . 3 . 3 第三章 开发工具、环境及其技术 . 5 . 5 程环境: . 7 第四章 程序具体研究方法 . 7 . 7 . 9 . 17 结 语 . 18 参考文献 . 19 致 谢 . 19 1 摘 要 五子棋作为一个棋类竞技运动,在民间十分流行,为了熟悉五子棋规则及技巧,以及研究简单的人工智能,决定用 要完成了人机对战和玩家之间联网对战 2个功能。网络连接部分为 户端和服务器端的交互用 义,有很好的可扩展性,客户端负责界面维护和收 集用户输入的信息,及错误处理。服务器维护在线用户的基本信息和任意两个对战用户的棋盘信息,动态维护用户列表。在人机对弈中通过深度搜索和估值模块,来提高电脑棋手的智能。分析估值模块中的影响精准性的几个要素,以及提出若干提高精准性的办法,以及对它们搜索的节点数进行比较,在这些算法的基础上分析一些提高电脑 递归算法、电脑学习等。算法的研究有助于理解程序结构,增强逻辑思维能力,在其他人工智能方面也有很大的参考作 用。 关键词 : 深度搜索;估值;电脑 子棋;算法 s a is in in to of I to to is is a is of of of it of of as as a of I on of as of to of In of I; 第一章:绪论 前 言 电脑已经深入到日常工作和生活的方方面面,比如文字处理、信息管理、辅助设计、图形图像处理、教育培训以及游戏娱乐等。 行各业的人们无须经过特别的训练就能够使用电脑完成许许多多复杂的工作。然而,虽然现在世界上已经充满了花样繁多的各种软件,但它们依然不能满足用户的各种特殊需要,人们还不得不开发适合自己特殊需求的软件。 有分布式,可移植,高性能,多线程等特点。通过系统的学 习,人们就可以使用它开发出功能齐全,满足特殊需求的应用程序。 学习者掌握技能,开拓思维都有很大的帮助。 我作为一名学生,在系统的学习了 言之后,经常用它搞一些小程序。这次 毕业 设计, 正好 将学过的 用 个小游戏,既对自己学过的技能进行一次检验,也能系统地将学过的知识复习巩固。 随着计算机技术的不断发展,网络技术的普及范围越来越广,网络能够提供的服务多样、便捷,已经成为人们生产生活中不可缺少的重要组成部分。 如今网络休闲游戏发展迅速,它凭借健康、方便、互动性强、益智等诸多优点,成为大部分现代人休闲娱乐的首选。 网络五子棋游戏是使用 使用 线程处理数据,以及可嵌入网络浏览器的 为客户端,这些特点使这款游戏无论是服务器还是客户端的实现都相对容易。通过对该软件的编写,还可以巩固我们对以上各种知识的掌握和理解。 第二章 五子棋的相关基础 子棋 解释 引用辞海中所言,五子棋是 “ 棋类游戏,棋具与围棋相同,两人对局,轮流下子,先将五子连成一行者为胜。 ” 。五 子棋的名称:日文亦有 “ 连五子、五子连、串珠、五目、五目碰、五格、五石、五法、五联、京棋 ” 等多种称谓,英文则称之为 n A 缩写 )、 语 “ 五目 ” 的罗马拼音 )、 克语 语 国人还称之为情侣棋 3 子棋基本规则 棋先下第一子,由天元开始,后白棋在黑棋周围的交叉点的落子。接着黑方再以天元中心的 25个交叉点的范围内落盘面的第三子,之后黑白双方相互顺序子。 向,斜向形成已方的五个棋子连续的一方为胜。 中包括两个或两个以上的活三,活四,长连均称之为禁手。 棋无禁手。 方需立即指出,黑方将被判负。若白方未发现黑方禁手存在而继续应子,其后指出黑方禁手不能判黑方负。 黑方已连成五即黑方已获胜,故禁手规则失效。 盘上落下的子又拿起来,此动作称为拔子,若拔子将被判为负。 推子或蹭子,以盘面第一落点为准。用手将棋子推正不算违犯规则。 方自行中止比赛如:中途退场,将被判负。 局获胜。 被判为负:正式比赛期间,迟到时间超过比赛容许时间将被判负。 同意和局提议,判定为平局。 子棋常用术语 称 “ 步 ” 。对局中把一个棋子按照规则放到某一交叉点,称之为 一着棋。一着是否完成有两种规则: 4 (1)在执行落子无悔规则是,以行棋者的手离开棋子为一着已完成。 (2)在执行限时规则时,以行棋者按下棋钟作为一着已完成。 五子棋中引入的英文名称,即应该行棋的一方主动放弃此次行棋的机会,由对方继续行棋。 方必须应答的着法,如对方形成活三必须阻止其形成活四。 对先手而言,即形成同色连四或嵌五,对方必须应着,就是绝对先手。绝对先手又叫 “ 冲 ” 。 缩写 ) 意思是利用连续冲四取胜之意。利用连续不断的冲四或嵌五的绝对先手,制止形成连五获得胜利的一种方法。在对局接近尾声或排局解题中一种常见的取胜技巧。 指白棋利用黑棋禁手取胜的战术。白 1 冲四,迫使黑 2 形成 “ 四、四 ” 禁手 ( 即冲四,活四禁手 ), 这种取胜方法叫做追下取胜。 下取胜以外的取胜方法,即未利用黑棋禁手战术而取胜。 指对局中一方落子后出现两个叫杀点即两个获胜点,而使对方无法防守的情形。一般是有两个冲四活三 点,白棋的双活三,双四均可称为一子双杀。 盘上可见的横线与直线的总称。 10. 阴线:也称 “ 斜线 ” 。是棋盘上不可见的斜行线。 11. “ 四、三 ” :指同时具备两个先手,其中一个四,另一个是活三。 12. “ 活三 ” 、 “ 嵌五 ” 、 “ 冲四 ” :参见五子棋重要棋形讲座。 13. 禁手:对局中禁止使用的战术或被判为负的行棋手段。 14. 开局:也称 “ 布局 ” 。布局阶段大体为七至十几着之内。种类繁多,职业连珠五子棋有二十四种开局。 15. 局面:亦称 “ 局势 ” 。 为对局中某一段时间内双方子力的配置情况。 16. 优势:是指足以取胜的优势局面,其对方即为败势。 17. 妙着:对局中走出的一步精妙的着法。既合乎逻辑又出人意料,有使局面顿时改观的效果,对局势的发展及对局的质量都有重大影响。 18. 好着:也称 “ 佳着 ” 。对局中成功的某一步。 5 19. 正着:对局的某一局面中的正确着法。 20. 劣着:对局中,导致严重不利后果的一步错误着法。 21. 败着:也称 “ 失着 ”“ 漏着 ” 。对局中造成局面恶化的一步严重错误着法。 22. 等着:对局中具有等待性的一步着法,主要意图是等待有利时机。 23. 废着:也称 “ 空着 ” 。对局中不起作用的着法。实际上指浪费时间毫无疑义的错着。 24. 抢先:对局中利用反活三或冲四的强制手段夺取主动权的着法。 25. 打谱:按照棋谱演练着法,是提高棋艺水平的重要方法之一。 26. 复局:也叫 “ 复着 ” 。对局结束又重演对局的过程。一般用以研究、比较双方的成败得失和着法的优劣。 第三章 开发工具、环境及其技术 语言,也是一个平台,它基于 助这个东西建立了跨平台的优势。(题外话: 跨平台类似跨浏览器的好处也是如此,这也是现在 术流行的原因之一。另外现在热炒的 还有软的 人更看好因是 最近流行的一个统计数据上来说,目前世界上编程语 言 C 、 C+依次排名前 4位,这排名本身不说明什么,至少也是工业界对编程语言使用上一个侧面的反映吧。 序既是编译型的(转换为一种称为 又是解释型的( 字节码进行解析和运行)。编译只进行一次,而解释在每次运行程序时都会进行。编译后的字节码采用一种针对 化过的机器码形式;解释器是 实现。这段是摘自网上的,编译原理学的不是很好,对这门语言的背后运行机制理解到这样了。 有三 个版本 E、 E。 6 E( 个版本以前叫做 来版本号从 实也就是 以就叫成 E 前 然还有 E 允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 用程序。 为 E 这个版本提供基础。 虽说 桌面应用程序, 也稍微提一下,负责桌面 可以使用 个第三方类库。开发工具我了解的有: 近已经是 了,做 以对 持的也不错)。 E( 个版本 以前叫做 就是大家可能听得比较多的,也是 种流行的所谓 根据项目大小、应用领域,技术平台的选择面还是很多的,除了 E,还有 相对来说比较新框架应用,后两者可能在相对来说比较轻量级的 重量的企业级潜力还有待 挖掘。 E( 个版本以前叫做 用领域像各种移动设备和嵌入式设备,比如:手机、 视机顶盒和打印机。 过移动设备和嵌入式设备的开发个人觉得算是比较有意思的领域,最近比较瞩目的业界新闻有一个就是 就是前一阵子炒得很火的 来 是一个手机操作系统开发平台)。这个平台貌似会对 照网上的 消息, 1、高度定制的 作系统内核及智能手机硬件驱动支持; 2、经过 改过的 里的性能比 持大部分 3、大量智能手机开发核心类库; 4、大量现成的智能手机应用软件; 5、基于 开发环境。也是按照网上的说法, 不能调用操作系统的资源;而 直达操作系统,上直达应用软件,如:浏览器、日历、地图等。 人使用的 较流行,各种插件也多,当然用起来也不错; 绍这两个 然还有其它工具如 些 有优势劣势,根据你开发的项目来选择了。 7 程环境: 境变量 (1) M) (2)设置环境变量 右击 我的电脑 -属性 -高级 -环境变量 统在任何路径下都可以识别 ;C: 载类 (包括 路径,只有类在 , .; 件 (1) 辑 下载地址为 (2) 包插件 ,可以方便的完成各种打包任务,可以包含外部的包等 ; (3) 供各种与 (4) 一个 以 将很多 以帮助 试和 部署 用。支持 括语法着色和语法检查 : (5) 发插件,支持 据库操作 ; (6) 持 第四章 程序具体研究方法 序设计思路 序设计思想 须先有一个棋盘,所以,通过继承后在 画出一个 18*18 的棋盘,另外还有三个按钮:重新开局、请黑方下子和请白方下子,提醒用户进行相应的操作。当然, 须放在,所以,又通过继承 到一个实例 ; 8 过对 加鼠标事件监听器 次当用户点击鼠标时,先取得点击的坐标值,然后取整得到一个对应棋盘的最近的一个坐标值 ; 如果不是,记录下该坐标值以进行下一步操作。 有的话用类 出棋子,并记录下棋盘的状态; 的话提醒相应玩家获胜,不是的话,更换玩家,监听事件处理结束。 次用户点击鼠标后,都会变换玩家,从而画出对应黑方白方的棋子供玩家查看。 序设计分析 1. 键盘上事先设定 8 个按键,分作两组,每组四个,分别代表两个人用来控制棋子的上下左右键。 2. 绘制棋盘, 15 条横线, 15 条竖线,在直线交点处下棋子(实心圆形)。 3. 黑子先行,黑白交替下子,在棋盘上设定一个与棋盘格大 小边长相等的正方形,初始状态,正方形的中心位于期盼的中心点。当一方欲走棋的时候,应用四个按键来控制所要下棋的位置,每按一次按键,正方形都要向相应方向移动一个格,并且让喇叭发出某种声音,将要移出边界时,发出另一种警告声音并不让其移出边界。当按下回车键时,应在正方形所在位置放下一个棋子,然后此组按键不能操作,换另一个人下棋,用另一组按键,规则同前。 4. 当任何一方有五个棋子沿着横,竖,斜连在一起时,系统自动判断赢棋,并显示黑方或白方胜利。棋局结束后,任何一方均不能继续操作。 图 4序流程图 9 程序设计 ; ; 430; 470; 五子棋游戏 ); ; ; ; ; ( ; ( ; 10 0, 60); / 棋盘坐标 818;/ 棋盘状态 i = 0;/ 横坐标 j = 0;/ 纵坐标 5;/ 五子棋的规定棋子数 , 黑方 );/ 黑方棋子 , 白方 );/ 白方棋子 (, 5);/ 黑方文本提示框对象和文本长度设置 , 5);/ 白方文本提示框 对象和文本长度设置 ; 请黑方下子 ;/ 黑方提示文本 请白方下子 ;/ 白方提示文本 ; 重新开局 ); 0, 14, 100, 26); ; 50, 14, 110, 26); 90, 14, 110, 26); ; 11 / 设置第一个 请黑方下棋 ,坐标为 (40,60) i = 0, j; i = 0 & j = 0 & i = 0; j += i += / 更换当前玩家 = / 重新开局监听器 ; ; ; x = ( / *20); 15 y = ( / *20); x = 40 & x = 60 & y = 400) x; y; !) ; ; ; ;/ 判定当前落子后是否赢棋 ; 20; c) c; 16 c, c); ; 17 序的运行 结果 下面是游戏运行后的结果截图 如下图 4 图 4戏运行结束黑方获胜 18 结 语 论文行文至此,已基本完成。本论文研究主要完成了如下工作: 回顾了 ( 1) 对“五子棋游戏”进行了分析设计。 对此该游戏的算法进行了设计。算法是在每个项目中都会出现的都需要去设计的,故一个好的算法设计是必不可少的。 ( 2) 介绍了此游戏的功能模块。 网络游戏正在讯速发展,作为其中一种简单休闲的游戏也在不断地前进。 总结制作过程中的经验和教训,有几点体会: ( 1) 要准备充分,在系统分析于设计阶段 要做的尽可能详细、全面,以免 在后阶段返工,浪费人力、物力、财力。 ( 2) 做好版本控制和备份,一旦出现故障,能尽快恢复到最近最新的版本 中,再在此基础上修改。 19 参 考 文 献 1朱福喜,唐晓军 人民邮电出版社 2004 2程序员

温馨提示

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

评论

0/150

提交评论