计算机科学与技术游戏设计

更新时间:2024-07-02 09:26:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

西安科技大学高新学院 毕 业 设 计(论 文) 题 目: 五子棋的设计与实现

学 院: 机电信息学院

专 业: 计算机科学与技术

姓 名:

班级/学号 计科1101

指导老师:

起止时间:2014年6月23日 至2014年12月30日

摘 要

现如今是一个激烈并且而又快节奏的社会。一些打工族为了解决完成自己的必需任务,伴随着现在社会的飞速日新月异激烈发展以及激烈的竞争, 而我们作为学生为了一个好的工作日日夜夜也是废寝忘食学习钻研,天天超负担的努力学习工作;加重身心疲惫。至此为了缓和大家的学习工作压力,使得大家在学习、工作之后缓解压力,有利学习和工作效率,多活动活动大脑,我自己细心设计了这个有趣五子棋游戏。

本系统会以五子棋游戏为中心思想,在Windows7环境下,使用Dreamweaver、Editplus等开发工具,并且运用所学的网页编程Html语言、层叠样式表css以及直译式脚本语言Javascript等知识设计出一个可以完成人机对拼具有思维能力的简单小游戏。

因此,本系统,采用Html语言结合面向用户的软件界面设计创建出游戏的界面,在搭配层叠样式表css技术进行对界面的美化,加入颜色,图片、字体、布局等样式,对界面进一步的美化与调动,最后在已经创建好的界面上通过译式脚本语言Javascript创建电脑对象、棋子对象等等一系列需要使用的对象,再结合人工智能技术编写电脑对象的智能,使得电脑具有人的思维方式。最后给整个游戏贯穿起来。

此系统涉及了到我学的大量的知识,包括有人工智能导论、编译原理、数据结构、web开发技术、程序设计、面向用户的软件界面设计等中许多相关的知识,而计算机博弈其实就是人工智能需要研究的其中重要分支,包含了一些重要的算法以及构造。通过这些了解我觉得必需要努力学习查阅资料,才能实现我所要的这些功能。

关键字:计算机博弈,人工智能,五子棋,人机对战

I

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

II

目录

目录

摘 要 ................................................................................................................................................................. I ABSTRICT .............................................................................................................................................................. II 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 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 4.2 游戏的胜负的判断 .......................................................................................................................................... 18 5 软件测试 .......................................................................................................................................................... 19 5.1 软件的测试定义 .............................................................................................................................................. 19 5.2 界面测试 .......................................................................................................................................................... 19 5.3 数据的测试 ...................................................................................................................................................... 22 5.4 用户的验收测试 .............................................................................................................................................. 22 总结 ..................................................................................................................................................................... 23 致谢 ..................................................................................................................................................................... 24 参考文献 ............................................................................................................................................................. 25

III

五子棋游戏的设计与实现

1 概述

此章会详细的描述我所选题目的开发背景,介绍人工智能的重要原理,还有课题的意义,也会有所牵连五子棋游戏设计与实现的现状,我这次选这个题目的研究内容和方向。

1.1 开发背景

随着互联网和现在计算机技术快速发展,游戏程序现如今各地发展是最快速,最为有震慑力,最为有发展力以及活力领域之一?计算机的游戏的问世为大众们提供了这个全新娱乐平台,扩展了我们自由支配的时间。为此和Game有关程序软件将受到了无数人追捧。伴随着几年来程序软件的开发技术不断进步与不断发展,现游戏软件操作要求也是越来越简易多样化,但是绝大多数游戏的爱好者摸索一点时间便可以随心所欲玩耍,甚至连有些老年人也慢慢开始一点点喜欢上了它。

二战结束以后,计算机技术得了空前绝后发展空间?无数国家中美国计算机技术发展得最为快速。1946,第一台电计算机((ENIAC))在美国宾夕法尼亚大学得到制造完成。刚出世的ENIAC,一个新的时代也意味着降临那就是计算机电子时代的到来,对也这个重大意义的时代是时代的里程碑,对于我们的科技时代也是有着重大的足迹一个旗杆。地球上伟大的东方国度----中国也是不会甘于落后,我国也在1956年也制出了我们自己的电脑。在过后的几年里东方国度---中国完美的做出了电子管计算机包含大型和小型等。集成的电路的计算机在不就得后被制造出来,与此同时和大规模集成的电路的电脑也被开发出来,自此以后各种各样的计算机就层出不穷,各种综合能力也是不断变好,同时不管是计算速度还是运行效率也是得到发展,集中了大多计算机软件设计人才的美国,在工作之后,他们也时常编写一种可以和人拼智的“游戏”,为此来增强自己编程能力?这种“游戏”也是各式各样,但是万变不离其宗它们特点都是通过计算机中的软件事先设计好 “判断”和“分析”能力反来和人比斗的?由于它们不断的创新更改,使计算机的“智力”的水平与人难解高下啊?到了上一个世纪中的九十年代,游戏软件便早已成为世界各地人玩耍,所谓的游戏软件是指利用各种各样的程序跟动画效果组合一起的产品,我们便把他叫做作为\游戏软件\。到目前,互联网上我们也是可以看到的各种各样大型3D网络的游戏和WEBGAME的网页游戏等等它们都是大多是通过\、MAYA、FLASH、动画软件和面向对象JAVA、C++、VB、等等语言开发出来,所以我们才叫游戏软件。中国的一些组合给我国也是贡献很大很大的促进,中国起到了巨大作用工作组便是洛河工作室,他们让也越来越多人喜欢上了游戏,敲开了广阔的市场。到如今的游戏已经受到了很大关注,它年轻而又具有潜力的并且吸引人,让人们生活日益丰富起来。

而五子棋游戏诞生是吸引着各个不同年龄段的人群,这是一个老少皆宜的好游戏,而当前微型的计算机成为广大人群流行的时候,用电脑下五子棋便更是一种时尚。现如今网络上出现了的各式各样五子棋游戏,有难、有简单的等等。而这些所有的都满足了我们各

1

五子棋游戏的设计与实现

个人群的需要,所以当前的五子棋越来越被更多人熟悉。随着时代的发展各种有游戏快速的起步,其中包括我所涉及的游戏,得到很多人的喜爱。

1.2 课题意义

从古至今,人们从四只脚落地行走,发展到现在两足落地,发现火,和制造房子来居住,不仅从捕猎到圈养,等等现象,人类都是不管变得聪明

漫长人类史中,人类不断思考和积累经验,使得人们智力水平不断提高。而五子棋不仅仅需要人们思考,而且还可以借助提高记忆力水平,并且这个是富含哲理,可以助人们修身养性的,锻炼人的意志的。五子棋既夹杂着现代大量元素又蕴含着这古典哲学;它既有简单易学特性,又是有高深知识内涵,它会是一个人人喜爱把玩的智力物品,有是蕴含人类几千年的思维行动;它源渊流长着棋文化的内涵,结合中西方的补给以及吸收这世间的文化。它即是这全球文化交流河又会是从原始到现代哲理冰晶。

五子棋游戏会是一个极易上手的`游戏,但又会是一个很难走深游戏,它有区别于其它游戏,五子棋游戏它不仅仅可以使人娱乐这,这些更是可以使人头脑变得越来越聪明。五子棋决斗模式中两种:一种便是.人机对战;另一种便是.双人对战。这些都给人无限的乐趣它的用途正是人工智能的杰作。正因为这样优异各个方面知识人们不断的研究,知识极大促进了人工智能发展,反过来的人工智能理论与技术上突破也是使得五子棋的程序越来越完美以及受欢迎!

五子棋不断开发研究知识,五子棋推广速度飞快,这使得全球个地都慢慢了解了五子棋,也是正因为这样个越来越多人喜欢这五子棋。伴随着这互联网络的技术的不断发展下去,更多更多的人可以在这网络上和更广泛更广泛的人对决交流。

1.3 人工智能介绍

人工智能,在外国语言中有称作 ‘A I’。在开发和研究的道路上使得我们人类的智慧有所挖掘,探寻我们智慧理论以及方法和技术,人工智能也成为一科孕育而生的萌芽科学。 人工智能是可以计算机科学的一个很重要的分支,它的主要的目的是为了诠释这“智”的实在内质,以这个的理念为核心我们创造出一个个和人一摸一样的电脑机器,这个领域研究包含着机器人和语言识别和图像识别、自然的语言处理以及专家系统等。在历史中人工智能被得意提出,不同领域也对他开始研究和不同的见解,慢慢的得到了发展,以至于它被利用于世间不同的地方,(AI)人工智能它是一个包容着十分广泛科学,人工智能也是一个用不同领域的组合而成,比如说机器学习,计算机的视觉等等,概括来说,人工智能的研究的一个主要的目标是使得机器如同人一般具有人智能。,每一个时代每一个阶段我们对于一个技术理解是不一样的,人工智能也是一样的。在历史的长河中它不断吸收着得以发展和步进。因为人工智能是出生于计算机时代,以计算机作为媒介,因此电脑的发展进步直接的关系到这门科学。人工智能是包含这科学计算机、心理学论控制、自动化、仿生学、论信息、语言学、生物学、逻辑数理、医学还有哲学等多门科学的。它研究包含

2

五子棋游戏的设计与实现

了许多许多的内容,比如说像人的推理思考以及联想,还有认知能力,联想搜索以及学习记忆。

1.4 五子棋规则

首先是由执黑棋方的将一枚棋子落子到天元点上面,接着是由执白棋的一方会在黑棋周围的交叉的点上下子。可是,在礼貌的人与人之间会在黑子落子后将白子落入己方地界,即是斜止、直止这些地方。接着下棋黑白双方便轮流的落子,直到下棋中其中一方先在下子棋盘中横、纵、斜线上使形成连续不断五子或者是五子以上的〔只对白棋有效〕,则视该方就算是获胜的一方。对于持黑子的玩家来说在对局中是占尽了很大很大的便宜,在这中情况下,就会采取一定的措施,这样可以使得游戏更为公平公正。当前的五子棋对决的规则如下:

1、 执黑的先行,天元中落子;

2、 先会在横-竖-斜线的任意形成的五子相连着---->胜利; 3、 执黑的禁手判负-白棋的无禁手。黑棋的禁手有三个:

<1> “三—-—三”; <2> “四—-—四”;

<3> “长连”,执黑的只能通过“四----三”取得胜; 4、 如果分不出胜与负,则视为是平一局;

5、 五连和禁手要是同时出现的话,则判为胜;

6、 如果黑方在下棋的时候落子禁手,对方应该立马提出。如果没有看到,或者看到

了不说,则禁手失败。

7、 在五子棋中拿黑子棋子的选手是一定先下棋的,为了公平采取摇色子,大的执 黑子,如果大小一样,就重新来过一次。

<1> 禁手的例子:

- ●●-- - - - - --●●- - - + -- -- ●-- --- - - - - -●- -●+●- -●- -- - - ●-- -- ●-- ●-- -- - - - -- -- - -- - ---- +为三--三禁手 -- - - - - -● -- +●●●- - - - -- -●- - - ●●+●- --● - - - -●- - --- ● - - -●- -

3

五子棋游戏的设计与实现

--- - -

- -- - -

+为四--四禁手

-- - -- - - - -●●+●●●- -- - -- - - -

+为长的连禁手

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. 到 目标 地:比如跳棋----一字棋----牛角棋等等。

这些年,全世界有很多五子棋联盟的成立以将五子棋深入群众,不同的联盟他们的规则也是不一样,有些的会和其他组织一起组织活动,参加的人也是四方各地。从我们国内

4

五子棋游戏的设计与实现

比赛来看看,如:北京---镇江---上海---吉林---黑龙江----天津---安徽---浙江等等,这些省份都不同时间举行比赛,应为各种五子棋联盟的诞生,人与人之间也是交流频繁,京津冀对抗赛在1997年举办了五子棋----我国的团体赛在2000年举行---“中行杯”在辽宁于2000举办,“一品梅杯”在江苏镇江哪里举办等等。

到如今,互联网愈来愈发达,于是将五子棋挪到了互联网上,五子棋在互联网上也是很多人参与,各种优越性的五子棋,随时间的推移,我想一定会越来越多人参与!!

1.5 研究内容

本游戏采用win764位系统环境下编写。人工智能在五子棋上也是很好的体现出来了,它是涉及到计算机的博弈理论,和棋盘表示---走法生成的以及搜索算法等等知识,最终为实现人机的对战。完成后,要可以提交演示的系统和相关的程序---提交毕业论文本。演示系统要能正确的运行----能够进行有效的人机对战,并且通过本次毕业设计,要对计算机博弈的理论有了更加深层次—更加透彻了解。一个暑假的研究学习,真真正正的体现了五子棋的魅力,使得我学习不断提高。

5

五子棋游戏的设计与实现

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软件。

6

五子棋游戏的设计与实现

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网页中有好几种按钮,我选择了比较通用的按钮

Top