《毕业设计(论文)双人对战五子棋系统.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)双人对战五子棋系统.doc(18页珍藏版)》请在三一办公上搜索。
1、武 夷 学 院 (筹)毕 业 论 文题 目:双人对战五子棋系统学 号:姓 名:系 、 部:计算机科学与工程系年级专业班级:2003级计算机小学教育专业班指导教师职称: 2006年05月25日双人对战五子棋系统摘要 随着在电脑上进行游戏的普及,很多的休闲小游戏成为许多人茶余饭后的休闲工具;五子棋就是其中一款深受欢迎的小游戏;双人对战五子棋系统是利用Microsoft的VB.NET进行开发的一款小游戏,可以更换游戏界面,播放声音和下子限时以及黑子限时等。关键词 五子棋 双人对战 黑子 Fireworks MX 2004 VB.NET UltraSnapThe gobang System for t
2、wo personsAbstract With the popularity of computer games for many small game as many leisure tools; The Gobang section is a popular with the small game; The gobang System for two persons is a small game which is development on The Microsoft VB.NET.The game interface works can be replaced, and broadc
3、ast voice and raising the ceiling Sunspot ceiling.Key word Gobang Pair weapons Black pawn Fireworks MX 2004 VB.NET UltraSnap目 录第1章 双人对战五子棋系统绪论 .1 1.1 背景 .11.2 引言.11.3基于计算机技术的游戏系统制作的提出.1第2章 系统开发工具简介 . . 22.1 VisualBasic.NET . .22.2 UltraSnap .32.3 Macromedia Fireworks MX 2004 .32.4系统需求分析 .4第3章 系统分析 .
4、5 3.1 游戏界面 .6 3.2 关于界面.6第4章 功能概述.7 4.1主要功能模块介绍.74.2 自定义变量模块.84.3 初始化模块.94.4 下棋模块 .94.5 计时模块.10第5章 系统结构图12结论.13致谢语.14参考文献.15第 1 章 双人对战五子棋系统绪论1.1 背景五子棋是起源于中国古代的传统黑白棋种之一。现代五子棋日文称之为“连珠”,英译 为“Renju”,英文称之为“Gobang”或“FIR”(Five,in,a,Row的缩写),亦有“连五子”、 “五子连”、“串珠”、“五目”、“五目碰”、“五格”等多种称谓。五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助
5、于修身养性。五子棋既有现代休闲的明显特征“短、平、快”,又有古典哲学的高深学问“阴阳易理”;它既有简单易学的特性,为人民群众所喜闻乐见,又有深奥的技巧和高水平的国际性比赛;它的棋文化渊远流长,具有东方的神秘和西方的直观;既有“场”的概念,亦有“点”的连接。它是中西文 化的交流点,是古今哲理的结晶。1.2 引言随着计算机技术和AI人工只能技术的发展,基于计算机的游戏作为一种全新的计算机技术,越来越受到人们的关注。 本论文讨论了基于VB.NET的双人对战五子棋系统的设计思想及其实现方法。玩家可以利用该系统直接在计算机上进行娱乐,满足现在提倡的无纸化理念。而且该五子棋系统还包括了悔棋,恢复,认输及更
6、换界面和声效等等诸多的功能,极易上手。如果有上网条件的话还可以利用该系统携带的“在线棋谱”的功能直接上网查找在线棋谱帮助。1.3 基于计算机技术的游戏系统制作的提出 随着计算机技术的发展,计算机从高技术的神坛上走下来,走进我们的家庭,走进我们的娱乐生活中。在家用计算机的使用中,作为游戏机的使用率是很高的。同时对游戏迷来说现有的游戏中总有很多不足之处,让人想一试身手做出一套更好的游戏。游戏设计涉及一个置于所有其它要素的中心的东西这就是交互性,使游戏从其它的创造性的媒介(如艺术、电影、音乐和书等)中分离出来的这一要素可以在游戏者同游戏的交互中体现,对于游戏这种媒介的驱动力量来自于游戏者的决策,换句
7、话说,是游戏者的行为,而不是媒介本身。当坐下来设计一个游戏的时候,要努力创造有趣的交互,还要努力在创设的情境中为游戏提供做出容易决策的方式。然后,提供将进步引出新情境的有趣结果。第 2 章 系统开发工具简介2.1 VisualBasic.NETVisualB具有 RAD(应用程序快速开发)支持以及项目模板、设计器和其他的开发环境功能,他使用 .NET Framework 基类。Visual Basic .NET 是下一代的 Visual Basic 语言,它是一种可简便快捷地创建 .NET 应用程序(包括 XML Web services 和 ASP.NET Web 应用程序)的语言。 Vis
8、ual Basic .NET 具有许多新功能和改进功能(如继承、接口和重载),这使 Visual Basic .NET 成为功能强大的面向对象的编程语言。其他新的语言功能包括自由线程处理和结构化异常处理。Visual Basic .NET 还完全集成了 .NET Framework 和公共语言运行库,.NET Framework 和公共语言运行库共同提供语言互操作性、垃圾回收、增强的安全性和改进的版本支持。 Visual Basic .NET 中的国际化功能建立在 .NET Framework 的全球化和本地化功能基础上,使您可以很容易地创建面向多个区域设置的应用程序。Visual Basic
9、 .NET 2003 不仅支持升级 Visual Basic 6.0 WebClass 和 UserControl 项目,同时还为升级 Visual Basic 6.0 代码块提供了新工具。微软最初展示Visual Basic时,很多人把它看做是一个玩具。但Visual Basic取得了出乎人们意料的巨大成功,它使得复杂的Windows的编程变成了“堆积木”的工作。Visual Basic彻底改变了编程的方式,开创了一个全新的可视化编程领域。Visual Basic已经成为使用得最广泛的Windows开发工具,专业和业余的程序员都在使用它。 今天,微软把.NET作为其最重要的战略,声称无论是大
10、企业,还是普通用户都可以从.NET战略中受益。对于开发人员来说,.NET框架吸收了近年来在计算机领域的最新研究成果,是非常重要的进展。明显地可以看到,.NET吸收了Java、Delphi等诸多公司的优秀产品的特长,并结合现有的微软的开发技术,形成了自己独特的风格。.NET框架不仅对于开发分布式应用程序提供了极大的方便,对于开发其他类型的Windows应用程序也是非常重要的。而Visual Basic.NET再次成为.NET框架中最重要的开发工具,它包括了许多程序员期待以久的特征,包括:l 真正的面向对象的能力,支持继承、重载等。l 方便地实现多线程程序。l 可以编写控制台程序、Windows服
11、务程序等新的程序类型。l 可视化地设计服务器端的程序。l 可以直接使用GDI+、CryptoAPI等新的开发技术。为避免在跨语言开发时造成混乱,一般情况下都采用通用数据类型简化类型系统,而VB.NET默认的数据类型则为Object。 在VB.NET中Type和用户定义类型这两个名称会引起混淆,因为类、枚举和接口也是可以由用户定义的类型。因此,在VB.NET中采用Structure关键字代替原来VB中的Type关键字。 VB.NET为了与其他语言协同操作,所有数组的下限均必须为零;在Null和Null传播上,VB的Null值为Variant的子类型,表示变量不包含有效数据,Null值通过表达式和
12、函数“传播”即如果表达式的任一部分为Null则整个表达式为Null,而在VB.NET中不支持Null传播。并且在VB.NET中,While的结束语句不再是VB中的WEnd,而是End While。所以,学习并驾御Visual Basic.NET,已经成为每个程序开发者的迫切的要求。因此,若想完全掌握VB.NET的精髓,必须首先深入了解.NET机制和CLR的类库。作为习惯以VB为开发平台的众多程序员,一旦把握了.NET和CLR,那么就可非常容易实现从VB到VB.NET的过渡,更为重要的是使大家能够在VB.NET熟悉的环境中轻而易举地构建面向网络新体系结构的应用系统,这不能不令VB程序员惊叹与向往
13、。2.2 UltraSnapUltraSnap是一个完全不同于其它类似软件的抓图工具和图象处理软件。不论你是从事网页设计还是多媒体设计,它都将是你的最佳软件。同流行的截图软件一样,UltraSnap支持4种截图方式:框选、放大镜、窗口、全屏。通过菜单Setting下的Hotkey,打开热键设置对话框,可以设定这几种方式的热键。注意放大镜选取方式的热键和“框选”方式是一样的,只是在框选时按一下z键,便打开放大镜,这样选取图象是可以更清楚地看清楚边界。UltraSnap提供了象素级的抓图,可以将对象放大3倍以方便你截取图象,这只是它最简单的工作,它强大的功能表现在能对截取的图象进行多种生动的处理:
14、加入阴影、对比度、颜色调整以及伽马校正、锐利化和随意重定尺寸等等。更重要的是只需要你事先将各种参数调整好,这些变化都是自动进行。这样可以保证你所有的截图风格都是相同的。还是让我们来一步步深入了解它有趣实用的功能吧。如下图示,是工具条的图示,通过工具条,可以大大简化你的操作。UltraSnap运行后缩微在工具条上,如图,双击照相机就可以打开工作窗口。2.3 Macromedia Fireworks MX 2004Fireworks 是 Macromedia 三套网页利器之一,它是用来画图用的,它相当于结合了 Photoshop(点阵图处理)以及CorelDRAW(绘制向量图)的功能。网页上很流行
15、的阴影、立体按钮.等等的效果,也只需用鼠标点一下,不必再靠什么KPT之类的外挂滤镜。而且 Fireworks很完整的支持网页 16 进制的色彩模式,提供安全色盘的使用和转换,要切割图形、做影像对应(Image Map)、背景透明,要图又小又漂亮,在Fireworks中做起来都非常方便,修改图形也是很容易的 。不需要再同时打开Photoshop 和 CorelDRAW.等等各类软体,切换来切换去的了。 Macromedia Fireworks MX 2004新功能有: 一、执行效率的提高 二、用户界面的改进 三、内建FTP登陆和版本控制 四、新的特效 五、自动图形 六、新的照片修饰工具 七、服务
16、器端代码的支持 八、系统反锯齿和自定义反锯齿 九、双字节支持 十、提供了JavaScript API接口2.4 系统需求分析根据系统分析,该系统要求如下: 一系统性能分析:1. 用户操作直观,方便,界面友好。2. 系统使用功能齐全,可靠,稳定。3. 更快更稳定的执行速度完成要求二系统运行环境:硬件环境:1. CPU:C9002. 9MB以上内存;3. 1GB硬盘空间(建议5GB以上)4. Microsoft Mouse或兼容设备;5. 显示器6. 键盘;7. 音响软件环境:1. Microsoft Windows Me 以上;2. Microsoft .NET Framework SDK v1
17、.1或以上版本; 3. Visual Studio.Net2003;4. UltraSnap Pro;5. Macromedia Fireworks MX 2004。第 3 章 系统分析本系统使用Visual Basic.Net来设计。应用本系统可以在计算机上灵活方便地使用,从而提高了玩的乐趣;本系统是与实际相结合,模仿显示生活中的界面而设计的,操作界面清晰,简易,友好。五子棋游戏开发难点在于计算机下棋的算法,也就是计算机的棋力强不强的问题,第一部分只是供两人对战之用,第二部分供人机对战(只做出了界面);双人对战部分主要需要注意以下几个问题:1. 首先必须能在某一方连成五子时正确检测出来,并结
18、束游戏。这需要每落一子时都要检查该子在横、竖、主对角线、副对角线4个方向上是否与别的棋子形成了连续的同色的五子。2. 其次可为游戏添加一些其他功能,如悔棋、悔棋后的恢复、对每步的计时(超时判负)等等功能。另外还可以将棋谱保存为一种特殊格式,并可以打开读取此类格式的棋谱文件。3. 再次五子连珠的专业规则要求执黑有禁手,禁手包括双活三,双冲四,六子等,本作品只做了双三禁手一个功能而已。本系统讲解了如何创建一个五子棋游戏系统,是游戏编程的雏形;本系统中要实现以下主要功能:1.对战界面 2.帮助界面:游戏界面如图3.1游戏界面 该界面仿标准的棋盘(15*15)制作而成,可换背景图片,界面上的按钮功能与
19、菜单栏上的菜单功能一致,虽然制作简单,但使用方便可靠,一目了然,是所见即所得的一款家居小游戏;左上角的方框里显示当前落子方的棋子颜色,会不断地切换下子方颜色,在棋盘的右边是主控制区,这里包括了“开始”、“悔棋”、“恢复”、“认输”、“在线棋谱”等等五个主控按钮。而且游戏界面可以换背景图,一共可以换取7种界面,都是以卡通图像和彩绘为背景,界面生动,活泼,而不累赘,使人赏心悦目。在整个游戏界面的最下面是状态条,在状态条上可以显示鼠标在棋盘上所属的鼠标坐标数据,当前的时间,可以掌握游戏时间,还有鼠标所处位置选项的说明以及游戏限时时会显示倒计时。3.2 关于界面关于界面介绍:上图就是关于界面的图片,它
20、包括了该作品的作品名,指导老师,以及制作人的姓名,在窗口的最下方是一个以“知道了”为名称的退出按钮,这个关于的窗口显示出来后可以悬浮在游戏窗口上,可以点击“知道了”的按钮来退出这个窗口从而返回到游戏窗口。第 4 章 功能概述4.1 主要功能模块介绍:初始化功能:主要用于游戏进行前对棋盘和各个控件进行初始化。打开功能:可以打开保存类型为“*.wzq”格式的文件。保存功能:可以把整个游戏保存为“*.wzq”格式的文件。下棋功能:使棋子能够正确地下在鼠标所点的位置及所下棋子的颜色。禁手功能:使黑色棋子不能形成双三格式的布局。认输功能:可以使当前下子方认输从而结束游戏。计时功能:可以分成几个以十五秒为
21、间隔的下子限时,也可字定义限时。检测胜负功能:检测在横、竖、主对角线、副对角线上形成五子时的棋子颜色,从而判定胜负。悔棋功能:可以对所下的棋进行反悔,从而达到重新下的目的。悔棋后的恢复功能:对悔棋后再恢复回去。界面功能:可更换不同的背景图片。4.2 自定义变量模块棋盘上每方格的边长 Private cellsize As Integer = 30 棋盘边与窗体边之间的间隔宽度 Private margin As Integer = 20 Private marginleft As Integer = 45 棋盘的尺寸(每行没列最多可放多少子) Private boardsize As Inte
22、ger = 15 棋子的半径 Private radius As Integer = 12 chessbd数组用于记录棋盘上每个点的状态 0代表无子,1代表黑子,2代表白子 Private chessbd(,) As Integer chessx数组和chessy数组用于按落子顺序记录本盘棋子所在的位置 Private chessx() As Integer Private chessy() As Integer backup数组与chessx数组和chessy数组保持一致,但悔棋时backup数组的记录不变,便于恢复 Private backup(,) As Integer 记录当前棋子的颜
23、色,True代表白棋,False代表黑棋 Private chesscolor As Boolean 记录当前的步数,与chessx、chessy数组始终同步 Private chessnum As Integer 记录当前的步数,与backup数组始终同步 Private backupnum As Integer 表示当前限制时间的长度 Private time As Integer 表示是否有时间限制 Private timelimit As Boolean 表示当前的剩余时间 Private remaintime As Integer 表示是否在游戏进行中状态,也就是说是否可以落子 Pr
24、ivate play As Boolean 表示最后的胜利状态,0表示未分出胜负,1表示黑棋胜,2表示白旗胜 Private win As Integer 表示棋盘上四个方向(横、竖、主对角线,副对角线)上移动一步的坐标增量 用于判断双三禁手的函数 Private dir(,) As Integer = 1, 0, 0, 1, 1, 1, 1, -1 表示当前游戏是否检查禁手 Private ban As Boolean = False4.3 界面模块4.3.1游戏界面简介界面模块主要是利用替换相应控件的背景图结合Macromedia Fireworks MX 2004切片技术来实现的,本模块
25、的难点在于棋盘的绘制,因为棋盘线计划用代码实现而不用Macromedia Fireworks MX 2004来实现,故遇到的困难不小。棋盘线的绘制主要利用PictureBox控件的Paint事件来产生的,为了使棋盘更加真实,在绘制横、竖方向上的棋盘线的过程中还必须绘制棋盘上的天元。实现该功能模块的代码如下所示:Private Sub ChessBoard_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles ChessBoard.Paint 部分代码略 绘制棋盘轮廓线 g.Dr
26、awLine(pen1, marginleft, margin, marginleft, margin + cellsize * (boardsize - 1) g.DrawLine(pen1, marginleft, margin, marginleft + cellsize * (boardsize - 1), margin) g.DrawLine(pen1, marginleft, margin + cellsize * (boardsize - 1), marginleft + cellsize * (boardsize - 1), margin + cellsize * (board
27、size - 1) g.DrawLine(pen1, marginleft + cellsize * (boardsize - 1), margin, marginleft + cellsize * (boardsize - 1), margin + cellsize * (boardsize - 1) 绘制棋盘线 For i = 1 To boardsize - 2 g.DrawLine(pen2, marginleft, margin + cellsize * i, marginleft + cellsize * (boardsize - 1), margin + cellsize * i
28、) g.DrawLine(pen2, marginleft + cellsize * i, margin, marginleft + cellsize * i, margin + cellsize * (boardsize - 1) Next 绘制棋盘上的天元以及另外四颗星 g.FillEllipse(Brushes.Black, New Rectangle(marginleft + cellsize * 3 - 4, margin + cellsize * 3 - 4, 8, 8) g.FillEllipse(Brushes.Black, New Rectangle(marginleft +
29、 cellsize * 11 - 4, margin + cellsize * 3 - 4, 8, 8) g.FillEllipse(Brushes.Black, New Rectangle(marginleft + cellsize * 3 - 4, margin + cellsize * 11 - 4, 8, 8) g.FillEllipse(Brushes.Black, New Rectangle(marginleft + cellsize * 11 - 4, margin + cellsize * 11 - 4, 8, 8) g.FillEllipse(Brushes.Black, N
30、ew Rectangle(marginleft + cellsize * 7 - 4, margin + cellsize * 7 - 4, 8, 8) 将棋子摆上棋盘 部分代码略4.3.1界面更换简介界面更换部分原理其实很简单,只是把各个控件的背景图片换成同一组图片从而使整个界面形成一个整体即可,该系统中主要集成了七组不同的背景图片,主要是有可爱的卡通图片组合而成。实现该功能模块的代码如下:Me.Panel1.BackgroundImage = Image.FromFile(./tupianjiemianright4.jpg ) Me.ChessBoard.BackgroundImage =
31、 Image.FromFile(./tupianjiemianzhu4.jpg ) Me.btStart.BackgroundImage = Image.FromFile(./tupiananniur41.jpg) Me.btBack.BackgroundImage = Image.FromFile(./tupiananniur42.jpg) Me.btResume.BackgroundImage = Image.FromFile(./tupiananniur43.jpg) Me.btLose.BackgroundImage = Image.FromFile(./tupiananniur44.
32、jpg) Me.btQipu.BackgroundImage = Image.FromFile(./tupiananniur45.jpg) Me.mJmdefault.Checked = False Me.mJm2.Checked = False Me.mJm3.Checked = False Me.mJm4.Checked = False Me.mJm5.Checked = False Me.mJm6.Checked = False Me.mJm1.Checked = True部分代码略根据不同的菜单选项来更换相应的界面。第 5 章 系统结构图游戏界面 包含7种预选界面和1个默认界面帮 助界
33、 面主 控限 时自定义限制时间关 于系统限时新 建MP3播放器声音保 存音效打 开悔 棋恢 复认 输禁 手在线棋谱系 统 结 构 图结 论经过一段时间的学习、讨论、研究,经过老师的指导和全组同学的努力,双人对战五子棋系统的功能已经初步实现,此系统是通过调研、分析、设计和多次的修改而实现。双人对战五子棋系统是一款功能较完善的小游戏,目前只支持人人对战,利用鼠标点取来进行下子。完成后的双人对战五子棋系统可快速地分出胜负双方,支持黑棋三禁手,可随时对棋谱进行保存和打开,可以对下棋方进行时间限制。可以时时随心情来修改棋盘的背景图片;在线棋谱等。双人对战五子棋虽只是一个很小的游戏但涉及的领域却很广泛,完
34、成后的双人对战五子棋系统还有很多的不足和缺陷,如:缺少人机交互,整个下子过程都由鼠标控制欠缺方便等等问题我们将会通过今后不断的学习、研究,不断的完善此系统的各个功能。致 谢经过两个多月的资料准备与辛苦的工作,我的毕业论文终于面世了。这期间,我大量的参考相关资料,对Visual Basic .NET有了深刻而全面的认识;同时我也遇到了不少疑难问题,经过身边同学,老师和网上技术论坛里各位大侠的指导和帮助,问题最终还是得到了解决。 衷心感谢我的指导老师吴清寿老师!本课题的研究工作是在他的指导下才得以顺利完成的。从论文的选题、文章结构的构筑到最后的定槁,都得到了他们的细心指点和提携。在本次毕业设计中,
35、我从指导老师身上学到了很多东西。老师们认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我受益匪浅,无论在理论上还是在实践中,都给予我很大的帮助,使我得到不少的提高,这对我以后的工作和学习都有一种巨大的帮助,感谢他们的耐心辅导。 最后感谢同学们给予的大力支持与帮助!感谢曾经关心和支持过我的学习,并给予我帮助的各位老师、同学和朋友们!同时,我也得到了机房和学院图书馆各位老师的大力支持,以及其他许多不知道姓名的朋友的热心帮助,在此,一并向他们表示深深地感谢! 张 志 军 2006 年 5 月参考文献1. 顾 卫 华 李晓东 突破Visual Basic.Net编程实例五十讲出版社:中国水利水电出版社 2. 中央电视台体育部编,连珠五子棋电视讲座,出版社:中国广播电视出版社3. 日本新井华石 著,张书 译,五子连珠必胜法,出版社:人民体育出版社4. 唐 树 才 Visual Basic.NET 程序设计与应用出版社:电子工业出版社5. 康 博 VB.NET字符串和正则表达式参考手册出版社:清华大学出版社6. 刘 青 炎 等 网页制作三剑客经典效果100例 出版社:上海科学普及出版社