计算机科学系网络工程毕业论文.doc
《计算机科学系网络工程毕业论文.doc》由会员分享,可在线阅读,更多相关《计算机科学系网络工程毕业论文.doc(52页珍藏版)》请在三一办公上搜索。
1、 届 别 2012届 学 号 200814160237 毕业设计(论文)基于VC的成三棋游戏程序的设计与实现 姓 名 杨 剑 系 别、 专 业 计算机科学系网络工程 导 师 姓 名、职 称 曹 清 华 、讲师 完 成 时 间 2012-4-26 目 录摘要IAbstractII1 绪论11.1课题背景12 系统实现技术与开发环境22.1 C/C+简介22.2.1 GDI绘图32.2.2对话框42.2.3消息响应52.2.4游戏编程思想72.3 MFC编程思想82.3.1MFC中类的结构及联系92.3.2MFC中类的作用103 需求分析103.1游戏用户分析103.2游戏功能分析113.3游戏功
2、能模块主要功能113.3.1 登录模块:113.3.2 下棋模块:113.3.3 英雄排行榜模块:114 系统概要设计124.1模块结构设计124.1.1游戏登陆者管理模块124.1.2 游戏者下棋实现模块134.1.3数据流网络传输模块144.2英雄榜设计144.2.1英雄榜数据结构设计144.2.2逻辑结构设计154.3 游戏规则说明164.3.1 下棋阶段164.3.2 行棋阶段175 系统详细设计175.1游戏者登录管理模块175.1.1 游戏者登录友好界面的实现185.1.2 游戏帮助文档及基本规则的说明185.2 游戏者下棋模块的实现195.2.2行子阶段的实现305.2.3输赢判
3、断的实现335.2.4 英雄榜的数据更新345.3 网络模块的实现375.3.1 网络初始化375.3.2 网络的调用376 游戏测试446.1 登录的测试446.2 下棋的测试456.3走棋阶段的实现466.4 英雄榜的测试:48结束语49参考文献50致 谢511 绪论1.1课题背景游戏软件是当世界发展最迅速,最有影响力,最有潜力与活力的领域之一游戏软件深受广大青年人喜爱,而且在发达国家中老年人也有大部分喜欢游戏的,因此游戏软件在很大程度上给予绝大部分人精神上的娱乐第二次世界大战以后,电子计算机技术得到了突飞猛进的发展先是由晶体管代替了笨重的真空管,后来出现了集成电路和大规模集成电路,使电子
4、子计算机一代一代实现更新,同时软件技术也发展迅速在美国,集中了许多计算机软件的设计人才,他们工作之余,时常喜爱编一种能与人斗智的“游戏”,以此来锻炼编程的能力这种“游戏”花样繁多,但其特点都是利用计算机软件事先设计好的“分析”“判断”能力反过来与人较量由于不断修改更新,使计算机的“智力”水平与人难分高低到了90年代,游戏软件已经为世界各国的人使用,BLACKISLAND和Blizzard.这两个强大的游戏制作组起到了巨大的带动作用,还有中国的洛河工作室在国内也起到了巨大作用,他们让很多很多人喜欢上了游戏软件,打开了这个市场。如今游戏软件产业已经受到了广泛的关注,它年轻有潜力而且吸引人,让人们日
5、益丰富的生活需求得以满足。成三棋,规则较简单,易学易懂,也是一款传统的棋类游戏,她的历史也非常悠久,在公元前500多年就在我国出现了,是一种老少皆宜的棋类活动。特别是在农村,不会玩这个游戏的很少的,当然,随着人们的物质文化生活的不断丰富,现在下成三棋的人越来越少。她没有围棋、象棋这样繁复,与五子棋有些相似,但又有其自身独特的魅力,方寸之间,便能突显弈者的奇思妙想。 成三棋游戏,旨在为游戏爱好者提供一种新的娱乐途径,让大家在娱乐的同时锻炼思维,增长智慧,也将成三棋这一传统的棋类游戏利用网络进行推广发扬,使之广为流传。2 系统实现技术与开发环境2.1 C/C+简介C语言的特点: C语言是一种结构化
6、语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。C语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。它还可以直接访问内存的物理地址,进行位(bit)一级的操作。由于C语言实现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体。既可用于系统软件的开发,也适合于应用软件的开发。此外,C语言还具有效率高,可移植性强等特点。因此广泛地移植到了各类各型计算机上,从而形成了多种版本的C语言。 C+简介:在C的基础上,一九八三年又由贝尔实验室的Bjarne Strou-strup推出了C+。 C+进一步扩充和完善了C语言,成为一种面向 对象的
7、程序设计语言。C+目前流行的最新版本是Borland C+4.5,Symantec C+6.1,和Microsoft VisualC+ 2.0。C+提出了一些更为深入的概念,它所支持的这些面向对象的概念容易将问题空间直接地映射到程序空间,为程序员提供了一种与传统结构程序设计不同的思维方式和编程方法。因而也增加了整个语言的复杂性,掌握起来有一定难度。 C和C+关系C是C+的基础,C+语言和C语言在很多方面是兼容的。2.2 VC开发环境Microsoft Visual C+,(简称Visual C+、MSVC、VC+或VC)微软公司的C+开发工具,具有集成开发环境,可提供编辑C语言,C+以及C+/
8、CLI等编程语言。VC+整合了便利的除错工具,特别是整合了微软视窗程式设计(Windows API)、三维动画DirectX API,Microsoft .NET框架。目前最新的版本是Microsoft Visual C+ 2010。2.2.1 GDI绘图GDI(Graphics Device Interface,图形设备接口)是Windows操作系统的传统图形子系统,负责与设备无关的图形绘制,Win32 API为应用程序提供了丰富的绘图函数和功能,MFC对它们进行了C+类封装,参见下表。表2-1Windows应用程序MFCWin32 API执行程序用户界面(User)GDI+图形子系统(GD
9、I)设备驱动程序内核(Kernel)图形驱动程序硬件抽象层(HAL)计算机硬件GDI与Windows操作系统(其中彩色部分为操作系统)传统GDI是随Windows 1.0于1985年11月推出的,新式GDI+则是随Windows XP于2001年10月推出的GDI的改进版,增加了混色、渐变画刷、样条曲线、矩阵变换、图像处理、持久路径等新功能。随Windows Vista及.NET框架3.0微软于2006年11月又推出了基于DirectX和.NET框架的全新图形子系统WPF(Windows Presentation Foundation,视窗显示/展现基础),它统一了桌面和浏览器等客户端应用程序
10、的图形界面,采用XAML声明式编程,将用户界面的设计和编程彻底分离开来,是Windows的下一代GUI显示系统。2.2.2对话框 对话框是一种次要窗口,包含按钮和各种选项,通过它们可以完成特定命令或任务。 查找和替换对话框 对话框与窗口有区别,它没有最大化按钮、没有最小化按钮、大都不能改变形状大小。(“打开文件”对话框是可以改变大小的) 对话框:是人机交流的一种方式,用户对对话框进行设置,计算机就会执行相应的命令。对话框中有单选框、复选框等。对话框可以分为模式对话框和无模式对话框两种类型。 CDialog 为了能够方便的操作对话框,MFC为用户提供了CDialog类。它是在屏幕上显示对话框的基
11、类,与对话框资源紧密相关,提供了管理对话框的接口,封装了一些对话框的相关操作。 从CDialog的定义代码可以看出,Cdialog提供了两套构建Cdialog对象的系统,分别用于模式对话框和无模式对话框。 无模式对话框对象的构建过程,它首先调用缺省的构造函数生成对话框对象,然后调用Create函数创建和初始化对话框。Cdialog类中的Create函数有两种函数原型: BOOL Create( LPCTSTR lpszTemplateName, CWnd* pParentWnd = NULL ); BOOL Create( UINT nIDTemplate, CWnd* pParentWnd
12、= NULL );2.2.3消息响应 VC+的MFC类库实际上是Windows下 C+编程的一套最为流行的类库。MFC的框架结构大大方便了程序员的编程工作,但是为了更加有效、灵活的使用MFC编程,了解MFC的体系结构往往可以 使编程工作事半功倍。它合理的封装了WIN32 API函数,并设计了一套方便的消息映射机制。由于视类窗口始终覆盖在框架类窗口之上,因此所有操作,包括鼠标单击、鼠标移动等操作都只能由视类窗口捕获。一个MFC消息响应函数在程序中有三处相关信息:函数原型、函数实现和以及用来关联消息和消息响应函数的宏。(1)在消息响应函数的原型代码中,函数声明的前部有一个afx_msg限定符,也是
13、一个宏,该宏表明这个函数是一个消息响应函数的声明。(2)消息映射宏:在视图类的源文件中,BEGIN_MESSAGE_MAP()END_MASSAGE_MAP()这两个宏之间定义了消息映射表,例如对于画线,其中有一ON_WM_LBUTTONDOWN()消息映射宏,这个宏的作用就是把鼠标左键按下消息(WM_LBUTTONDOWN)与一个消息响应函数关联起来,通过这种机制,一旦有消息产生,程序就会调用相应的消息响应函数来进行处理。(3)消息响应函数的定义:在视图类的源文件中,可以看到OnLButtonDown函数的定义。头文件中在两个AFX_MSG注释宏之间是消息响应函数原型的声明。源文件中有两处:
14、一处是在两个AFX_MSG_MAP注释宏之间的消息映射宏,通过这个宏把消息与消息响应函数关联起来;另一处是源文件中的消息响应函数的实现代码。 在Win32应用程序中,当有消息产生时,操作系统会把这条消息放到应用程序的消息队列中,应用程序通过GetMessage函数从这个队列中取出一条具体的消息,并通过DispatchMessage 函数把消息交给操作系统,调用的是应用程序的窗口过程,即窗口过程函数WndProc进行处理,然而在MFC程序中,并不是按这种途径进行处理的, 只要定义了与消息有关的三处信息后,便可实现消息的响应处理.MFC中采用的这种消息处理机制称为MFC消息映射机制. MFC消息映
15、射机制的具体实现方法是:在每个能接收和处理消息的类中,定义一个消息和消息函数静态对照表,即消息映射表.在消息映射表中,消息与对应的消息处理函数指针是成对出现的.某个类能处理的所有消息及其对应的消息处理函数的地址都列在这个类所对应的静态表中.当有消息需要处理时,程序只要搜索该消息静态表,查看表中是否含有该消息,就可知道该类能否处理此消息.如果能处理此消息,则同样依照静态表能很容易找到并调用对应的消息处理函数. MFC消息映射机制的实际实现过程:MFC在后台维护了一个窗口句柄与对应的C+对象指针的对照表,以例中的CDrawView类为例,与CDrawView对象相关的有一个窗口,窗口当然有它的窗口
16、句柄,该句柄与CDrawView对象的一个指针(即CDrawView*)存在一一对应关系,在窗口句柄与C+对象对照表中就维护了这种对应关系.当收到某一个消息时,消息的第一个参数就指明了该消息与哪个窗口句柄相关,通过对照表,就可以找到与之相关的C+对象指针.然后把这个指针传递给应用程序框架窗口类的基类,后者会调用一个名为WindowProc函数,该函数定义位于WinCore.cpp中.CWnd:WindowProc函数内部调用了一个OnWndMsg函数,真正的消息路由,也就是消息映射是由此函数完成的.OnWndMsg函数的处理过程:首先判断消息是否有消息响应函数.判断方法是在相应窗口类中查找所需
17、的消息响应函数.因为传递给WindowProc的是窗口子类指针,OnWndMsg会到相应的子类头文件中查找,看看DECLARE_MESSAGE_MAP()宏之上,两个AFX_MSG注释宏之间是否有相应的消息响应函数原型的声明;再到子类的源文件中看看,BEGIN_MESSAGE_MAP()和END_MESSAGE_MAP()两个宏之间是否有相应的消息映射宏.如果通过上述步骤,找到了消息响应函数,接着就调用该响应函数,对消息进行处理.如果在子类中没有找到,那么就交由基类进行处理.通过以上步骤,MFC就实现了具体的消息映射,从而完成对消息的响应2.2.4游戏编程思想游戏架构参考示意图 图 2-1 游
18、戏编程模块Launcher功能:Windows主函数,创建窗口,以及处理消息创建游戏,调用游戏的初始化、运行、销毁函数。建议:模板式的框架,准备好一个合适自己使用的,主要是对消息处理过程的编写,直接影响游戏之外窗口的响应情况。Game功能初始化游戏,创建Model、View和Timer运行游戏,通过Timer来控制刷新帧率,然后获取操作,调用Model执行游戏逻辑,然后使用调用View画出画面。销毁,将Model、View和Timer销毁。Model功能游戏逻辑,游戏需要执行的运算都放在这里,可以通过创建其它的类来完成。提供操作接口,运行游戏时根据用户操作来调用。存储游戏的绘制信息,View将
19、使用这些信息绘制画面。View功能绘制画面Timer功能定时器,给需要时间控制的类提供定时的功能。建议最主要的部分是Model,所有的游戏逻辑都在这里实现,设计到Model的应该只使用标准C+元素,方便移植。单人游戏和多人游戏,都应通过Model提供的接口来实现。View中,应该只使用Model提供的信息,绘制画面如果需要增加GUI,应该再单独创建类,然后加入到Game中。例如:俄罗斯方块添加Block类,实现各种方块。在Model中实现方块的下落与清除,提供出操作的接口。实现双人对战,创建两个Model就可以了。2.3MFC总述MFC是Win API与C+的结合,API,即微软提供的Wind
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机科学 网络工程 毕业论文
链接地址:https://www.31ppt.com/p-3992620.html