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

下载本文档

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

文档简介

岿幛妞工 西安科技大学高新学院岿幛妞工 毕毕 业业 设设 计 论计 论 文 文 岿幛妞工 岿幛妞工 岿幛妞工 题题 目 目 五子棋的设计与实现 岿幛妞工 岿幛妞工 岿幛妞工 学学 院 院 机电信息学院 岿幛妞工 岿幛妞工 岿幛妞工 专专 业 业 计算机科学与技术 岿幛妞工 岿幛妞工 岿幛妞工 姓姓 名 名 岿幛妞工 岿幛妞工 岿幛妞工 班级班级 学号学号 计科 1101 岿幛妞工 岿幛妞工 岿幛妞工 指导老师 指导老师 岿幛妞工 岿幛妞工 岿幛妞工 起止时间 起止时间 2014 年 6 月 23 日 至 2014 年 12 月 30 日岿幛妞工 岿幛妞工 岿幛妞工 岿幛妞工 I岿幛妞工 岿岿幛幛妞妞工工 摘 要岿岿幛幛妞妞工工 岿幛妞工 现如今是一个激烈并且而又快节奏的社会 一些打工族为了解决完成自己的必需任 务 伴随着现在社会的飞速日新月异激烈发展以及激烈的竞争 而我们作为学生为了一 个好的工作日日夜夜也是废寝忘食学习钻研 天天超负担的努力学习工作 加重身心疲惫 至此为了缓和大家的学习工作压力 使得大家在学习 工作之后缓解压力 有利学习和 工作效率 多活动活动大脑 我自己细心设计了这个有趣五子棋游戏 岿幛妞工 本系统会以五子棋游戏为中心思想 在 Windows7 环境下 使用 Dreamweaver Editplus 等开发工具 并且运用所学的网页编程 Html 语言 层叠样式表 css 以及直译式脚本语言 Javascript 等知识设计出一个可以完成人机对拼具有思维能力 的简单小游戏 岿幛妞工 因此 本系统 采用 Html 语言结合面向用户的软件界面设计创建出游戏的界面 在搭配层叠样式表 css 技术进行对界面的美化 加入颜色 图片 字体 布局等样式 对界面进一步的美化与调动 最后在已经创建好的界面上通过译式脚本语言 Javascript 创建电脑对象 棋子对象等等一系列需要使用的对象 再结合人工智能技术编写电脑对 象的智能 使得电脑具有人的思维方式 最后给整个游戏贯穿起来 岿幛妞工 此系统涉及了到我学的大量的知识 包括有人工智能导论 编译原理 数据结构 web 开发技术 程序设计 面向用户的软件界面设计等中许多相关的知识 而计算机博弈 其实就是人工智能需要研究的其中重要分支 包含了一些重要的算法以及构造 通过这 些了解我觉得必需要努力学习查阅资料 才能实现我所要的这些功能 岿幛妞工 岿幛妞工 关键字 计算机博弈 人工智能 五子棋 人机对战岿幛妞工 岿幛妞工 岿幛妞工 岿幛妞工 II岿幛妞工 Abstrict 岿岿幛幛妞妞工工 岿幛妞工 Along with modern society the rapid development and fierce competition changing and is now a fierce and the fast pace of society Some workers in order to solve their essential task super burden study hard work every day And we as a student for a good work day and night also neglect their study study increase the exhaustion of body and mind At this point in order to ease everyone study work stress relieve pressure after the study work make exercise the brain the more favorable learning and work efficiency I carefully designed the gobang game fun 岿幛妞工 This system will be centered on gobang game ideas under the Windows environment the use of development tools such as Dreamweaver Editplus and apply what they have learned web programming cascading style sheets CSS and Html language translation type scripting languages such as Javascript knowledge can design a complete man machine to spell a simple little game of thinking ability 岿幛妞工 Therefore this system USES Html language user oriented software interface design to create the interface of the game the collocation of cascading style sheets CSS technology of interface beautification add color graphics fonts layout style to further beautify and mobilize interface and finally on the already created good interface through Javascript scripting language create computer object pieces and so on a series of need to use the object combined with artificial intelligence technology to write the object s intelligence makes the computer has a way of thinking Throughout the entire game up finally 岿幛妞工 This system involves to I learn a lot of knowledge including an introduction to artificial intelligence compiling principle data structure programming web development technology user oriented software interface design and so on many related knowledge and the computer game is the need to study one of the important branch of artificial intelligence contains some important algorithms and structure So far I only after a lot of research and practice is likely to finish in the gobang man machine function 岿幛妞工 岿幛妞工 Key words computer game artificial intelligence gobang man machine data structur岿幛妞工 岿幛妞工 目录 岿幛妞工 岿幛妞工 岿幛妞工III 岿幛妞工 目录目录岿岿幛幛妞妞工工 岿岿幛幛妞妞工工 I 摘摘 要要岿岿幛幛妞妞工工 I ABSTRICTABSTRICT 岿岿幛幛妞妞工工 II 岿岿幛幛妞妞工工 1 1 概述概述岿岿幛幛妞妞工工 1 1 1 开发背景岿幛妞工 1 1 2 课题意义岿幛妞工 2 1 3 人工智能介绍岿幛妞工 2 1 4 五子棋规则岿幛妞工 3 1 4 2 五子棋的发展与现状岿幛妞工 4 1 5 研究内容岿幛妞工 5 2 五子棋程序的介绍五子棋程序的介绍岿岿幛幛妞妞工工 6 2 1 五子棋程序基本功能岿幛妞工 6 2 2 开发运行环境岿幛妞工 6 2 3 本软件开发的工具以及开发语言的介绍岿幛妞工 6 2 3 1 开发工具 Dreamweaver岿幛妞工 6 2 3 2 开发工具的安装与破解岿幛妞工 7 2 3 3 开发工具使用岿幛妞工 7 2 3 4 主要的开发语言 javascript js 岿幛妞工 8 2 4 五子棋的程序功能设计岿幛妞工 8 岿岿幛幛妞妞工工 8 岿岿幛幛妞妞工工 8 3 五子棋总体的设计五子棋总体的设计岿岿幛幛妞妞工工 9 3 1 人机界面的实现以及鼠标事件的监听岿幛妞工 9 3 1 1 应用程序的界面生成岿幛妞工 9 3 1 2 人机界面的生成岿幛妞工 11 3 1 3 鼠标事件的监听岿幛妞工 12 3 2 按钮的功能的实现岿幛妞工 12 3 2 1 开始游戏功能按钮岿幛妞工 13 3 2 2 我要悔棋功能按钮岿幛妞工 13 3 2 3 游戏认输功能按钮岿幛妞工 13 3 2 4 游戏帮助功能按钮岿幛妞工 14 3 3 棋子的表示岿幛妞工 15 3 3 1 五子棋的棋子属性表示岿幛妞工 15 3 3 2 绘制棋子岿幛妞工 15 3 4 下棋表示岿幛妞工 16 4 五子棋的五子棋的 AI 算法算法岿岿幛幛妞妞工工 17 4 1 电脑的智能下棋岿幛妞工 17 岿幛妞工 17 4 2 游戏的胜负的判断岿幛妞工 18 5 软件测试软件测试岿岿幛幛妞妞工工 19 目录 岿幛妞工 岿幛妞工 岿幛妞工IV 岿幛妞工 5 1 软件的测试定义岿幛妞工 19 5 2 界面测试岿幛妞工 19 5 3 数据的测试岿幛妞工 22 5 4 用户的验收测试岿幛妞工 22 总结总结岿岿幛幛妞妞工工 23 致谢致谢岿岿幛幛妞妞工工 24 参考文献参考文献岿岿幛幛妞妞工工 25 岿幛妞工 五子棋游戏的设计与实现 岿幛妞工 岿幛妞工 岿幛妞工 1岿幛妞工 岿岿幛幛妞妞工工 1 概述概述岿岿幛幛妞妞工工 岿幛妞工 此章会详细的描述我所选题目的开发背景 介绍人工智能的重要原理 还有课题的 意义 也会有所牵连五子棋游戏设计与实现的现状 我这次选这个题目的研究内容和方 向 岿幛妞工 岿幛妞工 1 1 开发背景岿幛妞工 随着互联网和现在计算机技术快速发展 游戏程序现如今各地发展是最快速 最为有 震慑力 最为有发展力以及活力领域之一 计算机的游戏的问世为大众们提供了这个全新 娱乐平台 扩展了我们自由支配的时间 为此和 Game 有关程序软件将受到了无数人追捧 伴随着几年来程序软件的开发技术不断进步与不断发展 现游戏软件操作要求也是越来 越简易多样化 但是绝大多数游戏的爱好者摸索一点时间便可以随心所欲玩耍 甚至连 有些老年人也慢慢开始一点点喜欢上了它 岿幛妞工 二战结束以后 计算机技术得了空前绝后发展空间 无数国家中美国计算机技术发展 得最为快速 1946 第一台电计算机 ENIAC 在美国宾夕法尼亚大学得到制造完成 刚出世的 ENIAC 一个新的时代也意味着降临那就是计算机电子时代的到来 对也这个重 大意义的时代是时代的里程碑 对于我们的科技时代也是有着重大的足迹一个旗杆 地 球上伟大的东方国度 中国也是不会甘于落后 我国也在 1956 年也制出了我们自己的 电脑 在过后的几年里东方国度 中国完美的做出了电子管计算机包含大型和小型等 集成的电路的计算机在不就得后被制造出来 与此同时和大规模集成的电路的电脑也被开 发出来 自此以后各种各样的计算机就层出不穷 各种综合能力也是不断变好 同时不管 是计算速度还是运行效率也是得到发展 集中了大多计算机软件设计人才的美国 在工作 之后 他们也时常编写一种可以和人拼智的 游戏 为此来增强自己编程能力 这种 游 戏 也是各式各样 但是万变不离其宗它们特点都是通过计算机中的软件事先设计好 判断 和 分析 能力反来和人比斗的 由于它们不断的创新更改 使计算机的 智力 的水平与人难解高下啊 到了上一个世纪中的九十年代 游戏软件便早已成为世界各地人 玩耍 所谓的游戏软件是指利用各种各样的程序跟动画效果组合一起的产品 我们便把 他叫做作为 游戏软件 到目前 互联网上我们也是可以看到的各种各样大型 3D 网络的 游戏和 WEBGAME 的网页游戏等等它们都是大多是通过 3DMAX MAYA FLASH 动画软件和 面向对象 JAVA C VB 等等语言开发出来 所以我们才叫游戏软件 中国的一些组合 给我国也是贡献很大很大的促进 中国起到了巨大作用工作组便是洛河工作室 他们让 也越来越多人喜欢上了游戏 敲开了广阔的市场 到如今的游戏已经受到了很大关注 它年轻而又具有潜力的并且吸引人 让人们生活日益丰富起来 岿幛妞工 而五子棋游戏诞生是吸引着各个不同年龄段的人群 这是一个老少皆宜的好游戏 而当前微型的计算机成为广大人群流行的时候 用电脑下五子棋便更是一种时尚 现如 五子棋游戏的设计与实现 岿幛妞工 岿幛妞工 岿幛妞工 2岿幛妞工 今网络上出现了的各式各样五子棋游戏 有难 有简单的等等 而这些所有的都满足了 我们各个人群的需要 所以当前的五子棋越来越被更多人熟悉 随着时代的发展各种有 游戏快速的起步 其中包括我所涉及的游戏 得到很多人的喜爱 岿幛妞工 岿幛妞工 1 2 课题意义岿幛妞工 从古至今 人们从四只脚落地行走 发展到现在两足落地 发现火 和制造房子来 居住 不仅从捕猎到圈养 等等现象 人类都是不管变得聪明岿幛妞工 漫长人类史中 人类不断思考和积累经验 使得人们智力水平不断提高 而五子棋 不仅仅需要人们思考 而且还可以借助提高记忆力水平 并且这个是富含哲理 可以助 人们修身养性的 锻炼人的意志的 五子棋既夹杂着现代大量元素又蕴含着这古典哲学 它既有简单易学特性 又是有高深知识内涵 它会是一个人人喜爱把玩的智力物品 有 是蕴含人类几千年的思维行动 它源渊流长着棋文化的内涵 结合中西方的补给以及吸 收这世间的文化 它即是这全球文化交流河又会是从原始到现代哲理冰晶 岿幛妞工 五子棋游戏会是一个极易上手的 游戏 但又会是一个很难走深游戏 它有区别于其 它游戏 五子棋游戏它不仅仅可以使人娱乐这 这些更是可以使人头脑变得越来越聪明 五子棋决斗模式中两种 一种便是 人机对战 另一种便是 双人对战 这些都给人无限 的乐趣它的用途正是人工智能的杰作 正因为这样优异各个方面知识人们不断的研究 知识极大促进了人工智能发展 反过来的人工智能理论与技术上突破也是使得五子棋的 程序越来越完美以及受欢迎 岿幛妞工 五子棋不断开发研究知识 五子棋推广速度飞快 这使得全球个地都慢慢了解了五 子棋 也是正因为这样个越来越多人喜欢这五子棋 伴随着这互联网络的技术的不断发 展下去 更多更多的人可以在这网络上和更广泛更广泛的人对决交流 岿幛妞工 岿幛妞工 1 3 人工智能介绍岿幛妞工 人工智能 在外国语言中有称作 A I 在开发和研究的道路上使得我们人类的智 慧有所挖掘 探寻我们智慧理论以及方法和技术 人工智能也成为一科孕育而生的萌芽 科学 人工智能是可以计算机科学的一个很重要的分支 它的主要的目的是为了诠释这 智 的实在内质 以这个的理念为核心我们创造出一个个和人一摸一样的电脑机器 这个领域研究包含着机器人和语言识别和图像识别 自然的语言处理以及专家系统等 在历史中人工智能被得意提出 不同领域也对他开始研究和不同的见解 慢慢的得到了 发展 以至于它被利用于世间不同的地方 AI 人工智能它是一个包容着十分广泛科学 人工智能也是一个用不同领域的组合而成 比如说机器学习 计算机的视觉等等 概括 来说 人工智能的研究的一个主要的目标是使得机器如同人一般具有人智能 每一个时 代每一个阶段我们对于一个技术理解是不一样的 人工智能也是一样的 在历史的长河 中它不断吸收着得以发展和步进 因为人工智能是出生于计算机时代 以计算机作为媒 介 因此电脑的发展进步直接的关系到这门科学 人工智能是包含这科学计算机 心理 五子棋游戏的设计与实现 岿幛妞工 岿幛妞工 岿幛妞工 3岿幛妞工 学论控制 自动化 仿生学 论信息 语言学 生物学 逻辑数理 医学还有哲学等多 门科学的 它研究包含了许多许多的内容 比如说像人的推理思考以及联想 还有认知 能力 联想搜索以及学习记忆 岿幛妞工 岿幛妞工 1 4 五子棋规则岿幛妞工 首先是由执黑棋方的将一枚棋子落子到天元点上面 接着是由执白棋的一方会在黑 棋周围的交叉的点上下子 可是 在礼貌的人与人之间会在黑子落子后将白子落入己方 地界 即是斜止 直止这些地方 接着下棋黑白双方便轮流的落子 直到下棋中其中一 方先在下子棋盘中横 纵 斜线上使形成连续不断五子或者是五子以上的 只对白棋有 效 则视该方就算是获胜的一方 对于持黑子的玩家来说在对局中是占尽了很大很大的 便宜 在这中情况下 就会采取一定的措施 这样可以使得游戏更为公平公正 当前的 五子棋对决的规则如下 岿幛妞工 1 执黑的先行 天元中落子 岿幛妞工 2 先会在横 竖 斜线的任意形成的五子相连着 胜利 岿幛妞工 3 执黑的禁手判负 白棋的无禁手 黑棋的禁手有三个 岿幛妞工 三 三 岿幛妞工 四 四 岿幛妞工 长连 执黑的只能通过 四 三 取得胜 岿幛妞工 4 如果分不出胜与负 则视为是平一局 岿幛妞工 5 五连和禁手要是同时出现的话 则判为胜 岿幛妞工 6 如果黑方在下棋的时候落子禁手 对方应该立马提出 如果没有看到 或者看到岿幛妞工 了不说 则禁手失败 岿幛妞工 7 在五子棋中拿黑子棋子的选手是一定先下棋的 为了公平采取摇色子 大的执岿幛妞工 黑子 如果大小一样 就重新来过一次 岿幛妞工 岿幛妞工 禁手的例子 岿幛妞工 岿幛妞工 岿幛妞工 岿幛妞工 岿幛妞工 岿幛妞工 为三 三禁手岿幛妞工 岿幛妞工 岿幛妞工 岿幛妞工 岿幛妞工 五子棋游戏的设计与实现 岿幛妞工 岿幛妞工 岿幛妞工 4岿幛妞工 岿幛妞工 岿幛妞工 为四 四禁手岿幛妞工 岿幛妞工 岿幛妞工 岿幛妞工 为长的连禁手岿幛妞工 岿幛妞工 1 4 2 五子棋的发展与现状岿幛妞工 五子棋的起源国家是我国 在日本他们把我国的五子棋叫做 连珠 Renju 这 个是翻译英文 G0bang 这个是英文国家的称谓 这是说 FIR Five in a Row 缩 写 有 连五子 五子连 珠串 目五 碰五目 格 五 等等多种多样的称谓 岿幛妞工 到了这 21 世纪便已经出现了很多很多棋类 这以棋类属性划分如下的几个类 岿幛妞工 1 按照参与的人数作为分类 Player 岿幛妞工 a 单人的挑战游戏 比如如华容道等等块状滑动类的游戏 岿幛妞工 b 双人的挑战游戏 比如中国象棋 围棋 五子棋等等 岿幛妞工 c 多人的挑战游戏 比如跳棋之类 岿幛妞工 岿幛妞工 通常的来说 竞参的人数越多的话 对手就会越多 情况也就是越为的复杂 岿幛妞工 2 按照兵种的多少作为分类 Pieces Materials 岿幛妞工 a 单一的兵种 比如围棋 五子棋等等 岿幛妞工 b 多 兵 种的 比如国际象棋 中国象棋 日本将棋等等 岿幛妞工 兵种的不断的增加 意味着我们玩法的复杂程度也是不断增加 岿幛妞工 3 按照着法的分类 Move 岿幛妞工 a 走子一类 比如象棋 国际象棋 跳棋等等 岿幛妞工 b 添子一类 比如围棋 五子棋 六子棋等等 岿幛妞工 c 吃子一类 比如象棋 国际象棋 围棋等等 岿幛妞工 d 混合一类 比如围棋 将棋等等 岿幛妞工 4 按照胜负判决的分类 Win Lose Draw 岿幛妞工 a 擒获首领的 比如象棋 国际象棋等等 岿幛妞工 b 摆成形状的 比如连珠类 井字棋 五子棋 六子棋等等 岿幛妞工 c 占领地域的 比如围棋 点格棋等等 岿幛妞工 d 剩余子粒的 比如黑白棋 苏拉卡尔塔等等 岿幛妞工 e 活动余地的 比如亚马逊等等 岿幛妞工 f 到 目标 地 比如跳棋 一字棋 牛角棋等等 岿幛妞工 这些年 全世界有很多五子棋联盟的成立以将五子棋深入群众 不同的联盟他们的 五子棋游戏的设计与实现 岿幛妞工 岿幛妞工 岿幛妞工 5岿幛妞工 规则也是不一样 有些的会和其他组织一起组织活动 参加的人也是四方各地 从我们 国内比赛来看看 如 北京 镇江 上海 吉林 黑龙江 天津 安徽 浙江 等等 这些省份都不同时间举行比赛 应为各种五子棋联盟的诞生 人与人之间也是交 流频繁 京津冀对抗赛在 1997 年举办了五子棋 我国的团体赛在 2000 年举行 中 行杯 在辽宁于 2000 举办 一品梅杯 在江苏镇江哪里举办等等 岿幛妞工 到如今 互联网愈来愈发达 于是将五子棋挪到了互联网上 五子棋在互联网上也 是很多人参与 各种优越性的五子棋 随时间的推移 我想一定会越来越多人参与 岿幛妞工 1 5 研究内容岿幛妞工 本游戏采用 win764 位系统环境下编写 人工智能在五子棋上也是很好的体现出来了 它是涉及到计算机的博弈理论 和棋盘表示 走法生成的以及搜索算法等等知识 最终 为实现人机的对战 完成后 要可以提交演示的系统和相关的程序 提交毕业论文本 演示系统要能正确的运行 能够进行有效的人机对战 并且通过本次毕业设计 要对 计算机博弈的理论有了更加深层次 更加透彻了解 一个暑假的研究学习 真真正正的体 现了五子棋的魅力 使得我学习不断提高 岿幛妞工 五子棋游戏的设计与实现 岿幛妞工 岿幛妞工 岿幛妞工 6岿幛妞工 2 五子棋程序的介绍五子棋程序的介绍岿岿幛幛妞妞工工 岿幛妞工 本章重点会提及本游戏的设计思想 思维模式 结构 还有开发的工具 调试的环 境等等做一一描述 岿幛妞工 岿幛妞工 2 1 五子棋程序基本功能岿幛妞工 1 显示一个 15X15 的五子棋盘 岿幛妞工 2 轮到玩家落子时 鼠标下出现一个棋子 靠近某个交叉点时会有闪烁提示 当鼠 标点击时能岿幛妞工 准确落子 岿幛妞工 3 玩家为执黑先行 可以任意落子 岿幛妞工 4 能够智能的判断游戏是否已经结束 识别黑方还是白方获得胜 并且有着明显的 提示 岿幛妞工 5 在界面中有提示准备落子的一方作为提示岿幛妞工 6 有重新开始游戏和认输功能 点击认输时提示 电脑色赢 岿幛妞工 7 本游戏有一定的提示功能 岿幛妞工 岿幛妞工 2 2 开发运行环境岿幛妞工 1 中央处理器 CPU 处理器AMD A4 3305M APU with Radeon HD Graphics 双核岿幛妞工 2 内存 4 00GB岿幛妞工 3 硬盘 500GB岿幛妞工 4 操作系统 Windows 7 64 位 岿幛妞工 5 开发工具 Dreamweaver 8岿幛妞工 6 编程语言 html css js岿幛妞工 岿幛妞工 2 3 本软件开发的工具以及开发语言的介绍岿幛妞工 2 3 1 开发工具 Dreamweaver岿幛妞工 Dreamweaver 设计页面使用的人特别的多 在这个领域名声特别的大 使用也是一样 功能最为彪悍的一个软件 伴随着 Dreamweaver 8 软件的发布 这更坚定了 Dreamweaver 在这个领域地位的坚立 Dreamware 包含了横多功能 有网页开发 开发 网站 管理站点的功能于一体 是一个可是化工具 在不同的操作系统系也可以使用 不同的浏览器也是兼容等特性 所有的这方面开发首先就会想到 Dreamweaver 软件 岿幛妞工 五子棋游戏的设计与实现 岿幛妞工 岿幛妞工 岿幛妞工 7岿幛妞工 岿幛妞工 2 3 2 开发工具的安装与破解岿幛妞工 下载 Macromedia Dreamweaver8 中文版 文件如下图 2 1 岿幛妞工 岿幛妞工 图 2 1岿幛妞工 岿幛妞工 下载完之后通过键盘选中软件按下回车键 打开之后按 Enter 键或者鼠标下一步 然 后鼠标点击条款圈圈 选完后 Enter 一下 接着在这个界面可以选择开发工具安装的位 置 我们做开发的最好不要把工具安装到 c 盘下 所以我选择了 D 盘下 点击两次下一 步 再点击安装 等待安装完成后点击完成 岿幛妞工 下载 Macromedia Studio v8 0keygen 文件如下图 2 2岿幛妞工 岿幛妞工 图 2 2岿幛妞工 岿幛妞工 下载完之后双击下载好的文件 打开已经安装好的 Macromedia Dreamweaver8 中文版 选择那个号码我有 我要启动 Macromedia Dreamweaver Enter 一下 将 Macromedia Studio v8 0keygen 中生成的序列号复制到 Macromedia Dreamweaver 中序列号中 然后 点击继续 接着输入姓名和电子邮件以及地点 地点选择中国 最后点击注册 到此开 发工具就已经安装破解完成 岿幛妞工 岿幛妞工 2 3 3 开发工具使用岿幛妞工 1 首先建立一个网站站点 并且在网站站点里再新建子文件夹主要用于分类存放不 同文件 岿幛妞工 2 创建 html css js 文件并保存到相应目录中 岿幛妞工 3 在调试的过程中直接去点击运行或者按 F12 快捷键 打开浏览器进行调试和运行 岿幛妞工 五子棋游戏的设计与实现 岿幛妞工 岿幛妞工 岿幛妞工 8岿幛妞工 岿幛妞工 2 3 4 主要的开发语言 javascript js 岿幛妞工 Javascript 是一个特别好的软件 好在哪呢 它有面向对象的人特性 又有面向过 程的特性 对于不同的人员来说是一个很好入手的软件 所以它有和多这些软件的特性 js 可以处理服务器传过来的数据 动态的显示在网页上 也可是页面给上的容器动起来 之所以好 是应为它解决了很多以前软件的毛病 由于刚有网络的时候网速特别的慢 这样的话就会比较不给力 于是名为 Javascript 又多了一名成员 Navigator 数据验证 的方法由此提供 Javascript 也可以使得给网页一些动画效果 层叠样式表是实现不了 的 经常会和其他的一些同功能软件一起使用 岿幛妞工 岿幛妞工 2 4 五子棋的程序功能设计岿幛妞工 此五子棋游戏主要重点由五大功能组成的 分别是 开始游戏 游戏认输 我要悔棋 游戏说明和关于 软件功能结构图如图 2 3 岿幛妞工 岿幛妞工 岿幛妞工 岿幛妞工 岿幛妞工 岿幛妞工 岿幛妞工 岿幛妞工 岿幛妞工 岿幛妞工 岿幛妞工 岿幛妞工 岿幛妞工 岿岿幛幛妞妞工工 岿岿幛幛妞妞工工 图 2 3岿幛妞工 五子棋岿幛妞工 游戏岿幛妞工 帮助岿幛妞工 开 始 游 戏 岿幛妞工 游 戏 认 输 岿幛妞工 我 要 悔 棋 岿幛妞工 游 戏 说 明岿幛 妞工 关 于岿 幛妞工 五子棋游戏的设计与实现 岿幛妞工 岿幛妞工 岿幛妞工 9岿幛妞工 3 五子棋总体的设计五子棋总体的设计岿岿幛幛妞妞工工 岿幛妞工 一个好的人机交互界面是一个好的游戏软件产品的开端 一个美好的界面给人们的第 一此感觉是舒适的 轻松的 接着要有简单明了的操作 界面上的操作很少 使得玩 家更容易上手 因此本章特别主要对本软件游戏的界面以及相关的功能 玩家落子实 现 进行详细的介绍说明 岿幛妞工 岿幛妞工 3 1 人机界面的实现以及鼠标事件的监听岿幛妞工 3 1 1 应用程序的界面生成岿幛妞工 在这个模块中主要实现的技术由 html css 和 js 组成 首先得设置一个良好的界面 需要考虑到一些兼容性的问题 我采用的是 800 X 600 的界面 这个大小比较适中 兼 容性良好 使得分辨率不同都可以完整的显示 接着是让这个界面显示在一个合适的位 置 为了用户良好体验选择了浏览器的中间 所以涉及到计算位置问题 以适应不同分 辨率的电脑 进一步做好兼容性问题 岿幛妞工 岿幛妞工 此次设置的窗口的详细介绍如下 岿幛妞工 首先 通过内置对象文档对象的 createElement 方法创建一个元素对象 这个方法需 要传入一个元素类型字符串 由于此次使用的 div 层对象 所以传入参数为 div 由于 窗口对象在整个游戏中都是要使用的所以必须将它保留到全局中有一个标示符接受 创 建好的窗口元素是一个不存在大小颜色等各种属性 要使窗口窗口对象理想的显示需要 通过内置函数 with 将窗口对象传入并且在其方法体内写入窗口的各个属性 其中包括 宽度 width 高度 height 背景颜色 backgroundColor 定位方式 position 这样就将 界面创建好了 不过这个窗口是没有标题的 通过窗口对象的 title 属性赋值为 简易五 子棋 为了使得窗口始终在界面的中间出现 使其对称首先判读页面宽度是否大于窗口 宽度 如果页面宽度小于窗口宽度则将窗口居左 0 像素 反之将页面界面宽度减去窗口 宽度的商除于 2 为居左像素 这样我们的界面就算完成了 岿幛妞工 生成界面之后由于我们制作的是游戏 所以不能采用整个浏览器最为游戏窗口 所以必 需为界面生成一个理想的界面最为游戏的载体 为了使得游戏的兼容性以及窗口的美化 和用户的体验 所以在主文件中天剑 Javascript 代码 使用 script 标签包裹脚本代码 使其有效 接着判读当前父窗口是否存在 如果不存在就将当前窗口赋值给当前页面的 父窗口属性 并且将当前父窗口设置为 null 然后重新从当前窗口打开自身为空 这样 就可以自动关闭当前页面 然后使用窗口对象的 close 方法关闭这个不存在的窗口 接 着又用窗口对象打开游戏界面文件 设置其宽度为 800 像素 高度为 600 像素 居左 200 像素 居顶 100 个像素 最后就将本身窗口也关闭 这样就成功的关闭了当前的窗口 而又不用手动关闭窗口 极大提高了用户的体验 岿幛妞工 五子棋游戏的设计与实现 岿幛妞工 岿幛妞工 岿幛妞工 10岿幛妞工 岿幛妞工 运行结果如图 3 1 岿幛妞工 岿幛妞工 岿幛妞工 岿幛妞工 图 3 1岿幛妞工 五子棋游戏的设计与实现 岿幛妞工 岿幛妞工 岿幛妞工 11岿幛妞工 岿幛妞工 3 1 2 人机界面的生成岿幛妞工 一个良好的人机界面这不仅仅需要一个很舒适的棋盘以及需要一个一些图片以及适 宜的背景颜色 并且需要各种色彩包括一些图片应选择淡一点 以柔为主题 这样可以 给人一种舒适感不会那么刺眼 岿幛妞工 在游戏之中一缕缕清雅的音符可以使得游戏更加的人性化 所以在游戏中添加背景 音乐载进窗口界面 并加入相应的控制按键 就得到了一个简单的游戏环境 岿幛妞工 岿幛妞工 在测试阶段为了更好的测试 首先需要关闭游戏窗口模式 将主文件 javascript 代 码注释掉岿幛妞工 创建一个界面 首先 在界面中有一个棋盘 棋盘是放到桌子上的 所以我们先创 建一个桌子对象 通过内置函数 function 创建一个 desk 桌子对象 在对象体中包含如 下方法 岿幛妞工 1 crateDesk 函数用于创建桌子函数 岿幛妞工 2 createParper 函数用于创建棋纸 岿幛妞工 3 createChessLocation 函数用于创建棋位对象 岿幛妞工 4 createRole 函数用于创建用户角色 岿幛妞工 5 createHead 函数用于创建用户头像 岿幛妞工 6 creatMotto 函数用于创建用户座右铭 岿幛妞工 7 creatBolw 函数用于创建用户装棋子的碗 岿幛妞工 8 creatWarn 函数用于创建用户提示灯岿幛妞工 岿幛妞工 运行结果如图 3 2 岿幛妞工 岿幛妞工 图 3 2岿幛妞工 五子棋游戏的设计与实现 岿幛妞工 岿幛妞工 岿幛妞工 12岿幛妞工 3 1 3 鼠标事件的监听岿幛妞工 Onmouseover 是 mouse 进入 onmouseout 是 mouse 移出 onmousedown 是 mouse 按下 事件 岿幛妞工 obj onmouseover function 事件块 obj onmouseOut function 事件块 obj onmousedown function 事件块 obj 是需要添加事件源的对象 岿幛妞工 首先 鼠标移动在棋盘上 如果游戏开始并且轮到玩家执棋的时候 当鼠标进入某 个棋子位置在鼠标移入事件块中让这个位置闪烁提示玩家可以下子 这是可以点击鼠标 触发 onMouseDown 方法下子 如果不下子 当 mouse 移出这个棋位时 将 fik 关闭 岿幛妞工 首先 给棋位对象添加鼠标进入触发将自定义的 function 对象给棋位对象的鼠标进 入赋值 在代码体中 首先判读游戏是否开始并且这个位置是否已经存在如果游戏还未 开始则提示游戏还未开始调用系统的 alert 函数 如果这个位置已经存在棋子则不做出 任何提示 否则通过当前棋位对象的背景图片设置为当前用户的棋色图片并且调用当前 棋位的 flicker 函数闪烁提示 岿幛妞工 然后 给棋位添加鼠标离开事件 首先判断当前棋位是否存在 flicker 对象 如果 存在则调用当前棋位的 removeFlicker 函数移除闪烁提示 否则不做任何处理岿幛妞工 最后 给棋位添加鼠标落下事件 首先判断游戏是否已经开始如果游戏还未开始调 用系统内置函数 alert 提示游戏还未开始 否则判断当前棋位是否已经存在 如果存在 不作出任何提示否则创建落子声音通过内置文档对象的元素创建方法创建一个音频元素 对象 通过音频元素对象的路径属性将资源文件中的声音文件加载进去 接着将当前棋 位对象设置为已存在 并且标记点前棋位的样色属性标志位当前落子用户执棋色 同时 判断悔棋队列中是否为空如果不为空则取消悔棋队列中的闪烁方法 并且将悔棋队列一 次递推 将当前棋位对象插入到首位 然后调用 checkWin 函数检测当前落子是否构成胜 利队列 如果成功则调用游戏结束函数 否则将下棋权限交给对方 取消自己用户角色 提示灯 开启对方角色提示灯岿幛妞工 岿幛妞工 3 2 按钮的功能的实现岿幛妞工 在 html 网页中有好几种按钮 我选择了比较通用的按钮 通过 css 属性设 置他们的属性 并且在按钮上添加文字和事件 岿幛妞工 五子棋游戏的设计与实现 岿幛妞工 岿幛妞工 岿幛妞工 13岿幛妞工 岿幛妞工 3 2 1 开始游戏功能按钮岿幛妞工 开始游戏按钮功能是进行本游戏的入口 在启动游戏之后 当点击开始游戏功能之 后 方能进行游戏 岿幛妞工 要生成开始按钮首先得穿件一个 button 通过 document createElement button 为 以后方便使用可以将创建的按钮赋值给 star 创建一个按钮对象然后在在按钮上添加文 字 star innerHTML 开始游戏 为了使得按钮在预先设定的地方我们需要给按钮 添加一些属性 position absolute left 20px top 0px 为进一步给开始按 钮美化 通过 backgroundImage url img desk png 加载资源文件夹中的图片给 按钮 生成按钮如图 3 3 岿幛妞工 岿幛妞工 岿幛妞工 图 3 3岿幛妞工 3 2 2 我要悔棋功能按钮岿幛妞工 悔棋按钮功能是在游戏过程中出于疏忽不小心下错了棋 通过点击该按钮退回到上 一步 也就是相当于回溯 为了游戏的公平起见 悔棋只能退回一步 岿幛妞工 要生成悔棋按钮首先得穿件一个 button 通过 document createElement button 为 以后方便使用可以将创建的按钮赋值给 back 创建一个按钮对象然后在在按钮上添加文 字 back innerHTML 我要悔棋 为了使得按钮在预先设定的地方我们需要给按钮 添加一些属性 position absolute left 90px top 0px 为进一步给开始按 钮美化 通过 backgroundImage url img desk png 加载资源文件夹中的图片给 按钮 生成按钮如图 3 4 岿幛妞工 岿幛妞工 岿幛妞工 图 3 4岿幛妞工 3 2 3 游戏认输功能按钮岿幛妞工 认输按钮功能是在游戏过程中觉得已经没有回旋的余地了出于礼貌 我们可以通过 点击该按钮直接认输 也就是相当于自己输了 岿幛妞工 要生成认输按钮首先得穿件一个 button 通过 document createElement button 为 以后方便使用可以将创建的按钮赋值给 back 创建一个按钮对象然后在在按钮上添加文 字 defeat innerHTML 游戏认输 为了使得按钮在预先设定的地方我们需要给按 钮添加一些属性 position absolute left 160px top 0px 为进一步给开 始按钮美化 通过 backgroundImage url img desk png 加载资源文件夹中的图 片给按钮 生成按钮如图 3 5 岿幛妞工 岿幛妞工 岿幛妞工 五子棋游戏的设计与实现 岿幛妞工 岿幛妞工 岿幛妞工 14岿幛妞工 图 3 5岿幛妞工 3 2 4 游戏帮助功能按钮岿幛妞工 帮助按钮功能是在对游戏还未了解时 我们可以通过点击该按钮打开帮助面板 了 解游戏的操作以及关于游戏的内容 是玩家更快入手游戏 岿幛妞工 要生成帮助按钮首先得穿件一个 button 通过 document createElement button 为 以后方便使用可以将创建的按钮赋值给 help 创建一个按钮对象然后在在按钮上添加文 字 help innerHTML 游戏帮助 为了使得按钮在预先设定的地方我们需要给按钮 添加一些属性 position absolute left 230px top 0px 为进一步给开始 按钮美化 通过 backgroundImage url img desk png 加载资源文件夹中的图片 给按钮 生成按钮如图 3 6 岿幛妞工 岿幛妞工 岿幛妞工 图 3 6岿幛妞工 五子棋游戏的设计与实现 岿幛妞工 岿幛妞工 岿幛妞工 15岿幛妞工 岿幛妞工 3 3 棋子的表示岿幛妞工 3 3 1 五子棋的棋子属性表示岿幛妞工 五子棋中有黑棋子和白棋子两种棋子 将棋子作为对象看待 他们有自己的属性 为了区别棋子颜色和更好的实现 我为棋子中添加颜色属性 obj color white obj 是棋子对象 color 是属性 white 是颜色的属性值为白色代表这个棋子为白棋并 且添加图片 obj backgroundImage url 岿幛妞工 岿幛妞工 3 3 2 绘制棋子岿幛妞工 在绘制棋盘的时候已经给棋盘上的交叉点上绘制了一个透明的棋位 当棋子落入 给位置的时候我只需要让棋子在此位置中显示 通过添加棋子图片 为这个位置的棋子 改变他们的属性就可以让棋子活灵活现的出现在这个位置 具体操作如下 岿幛妞工 1 定义整个程序都能使用的变量 position 通过内置文档对象的创建元素方法创建一个层对象 岿幛妞工 2 通过内置方法 with 将 position 对象的样式属性传入 岿幛妞工 3 设置宽度 width 属性为 30 像素 岿幛妞工 4 设置定位 position 方式为绝对的定位方式 absolute 岿幛妞工 5 设置居左 left 为当前位置减去 16 个像素点 岿幛妞工 6 设置高度 height 为 30 个像素点 岿幛妞工 7 设置背景图片 backgrounImage 为空 以标识当前棋位还未落子 岿幛妞工 8 设置背景图片 backgroundImage 为不重复 防止图片重叠出现 no repeat 岿幛妞工 9 设置背景图片 backgroundPosition 保持在棋位对象的中间 center center 岿幛妞工 10 定义棋位对象属性行属性标识当前棋位位置 岿幛妞工 11 定义棋位对象的属性列标识棋位对象的位置 岿幛妞工 12 标识当前棋位对象的属性是否存在属性为不存在 false 岿幛妞工 13 设置当前棋位对象的样色为空岿幛妞工 14 设置其定时器为空岿幛妞工 岿幛妞工 如下图 3 7 岿幛妞工 岿幛妞工 岿幛妞工 岿幛妞工 图 3 7岿幛妞工 岿幛妞工 五子棋游戏的设计与实现 岿幛妞工 岿幛妞工 岿幛妞工 16岿幛妞工 3 4 下棋表示岿幛妞工 游戏中通过鼠标左键单击便可在棋盘中落子 当游戏还未开始的时候鼠标点击在棋 盘中是无效的 为了使游戏的人机友好交互 当游戏还未开始当用户点击棋盘时会提示 游戏还未开始 如图 3 8岿幛妞工 岿幛妞工 图 3 8岿幛妞工 当游戏开始的时候 鼠标移动在棋盘之间 会在离鼠标最近的棋位中显示一颗闪烁 的棋子提示用户鼠标左键点击会在该位置落子 当鼠标在正确的位置点击时则为落子完 成 并且此时添加落子的声音通过 document createElement bgsound 加载资源文件 夹中的落子声音 接着通过 document body appendChild bgsound 启用声音 当用户结 束落子后 电脑 思索 一段时间之后也调用落子功能进行落子 以此轮流轮子进行游 戏 五子棋游戏的设计与实现 岿幛妞工 岿幛妞工 岿幛妞工 17岿幛妞工 岿幛妞工 4 五子棋的五子棋的 AI 算法算法岿岿幛幛妞妞工工 岿幛妞工 在此系统的 AI 算法中 每当玩家落棋子的时候 电脑便会计算出电脑自己的最佳的 下棋位置以及敌方最佳的下棋的位置 在这个完整的思考中电脑首先会搜索棋盘中的每 一个可下棋位置进行不同方向搜索 经过确认了这个位置下棋价值后 最后才会找出棋 盘中的下棋位置价值最大位置 最后才比较找出这次下棋会对自己最佳位置 以达到最 佳下子和获胜目的 这一章是既最多汗水与泪水的一章 岿幛妞工 岿幛妞工 4 1 电脑的智能下棋岿幛妞工 每当玩家下棋之后 电脑会通过搜索判断出玩家下棋位置是不是有一个五子形成相 连 如果是有则 gameOver 并且会提示游戏结束 如果没有形成则电脑会通过最优的 算法阻止玩家去取得胜或者是去攻击玩家 在这一个过程中用了两个价值对象 用来存 放双方最大下棋位置 岿幛妞工 此时电脑首先搜索对手的价值最大位 通过遍历每一个棋位寻找匹配 当搜索到用 户棋子位置时采用横竖撇捺四面八方的搜索方式 如图 4 1 岿幛妞工 岿幛妞工 岿幛妞工 图 4 1岿幛妞工 搜索完成后 再进入权值队列中检索当前位置的价值并且保存在一张表中 当循环 遍历整个棋盘之后得到一张权值分数表 显示出每一个可下棋位置的权值分数 紧接着 通过以上描述的方式检索自己的棋子得出自己的权值分数表 然后匹配出这两张表中最 佳落子位置 得到敌方和己方的最佳落子位置之后 进行对比 如果敌方落子价值大于 我方落子价值则采取防御措施阻断敌人落子位置 反之 则落到己方最佳落子位置达到 最大进攻目的 以此一步步取得游戏的胜利 岿幛妞工 岿幛妞工 五子棋游戏的设计与实现 岿幛妞工 岿幛妞工 岿幛妞工 18岿幛妞工 4 2 游戏的胜负的判断岿幛妞工 游戏的判断的胜负也是这个游戏其中的最简单的一个地方 因为我们有了前面下棋 搜索先例 依据这五子棋的基本规则来看 游戏判断下棋的位置再去搜索落子的四个方 向后 判段是否这有五子的形成 如果要是没有的话则轮到

温馨提示

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

评论

0/150

提交评论