论文三稿定稿.docx

上传人:b****5 文档编号:2777684 上传时间:2022-11-15 格式:DOCX 页数:51 大小:839.68KB
下载 相关 举报
论文三稿定稿.docx_第1页
第1页 / 共51页
论文三稿定稿.docx_第2页
第2页 / 共51页
论文三稿定稿.docx_第3页
第3页 / 共51页
论文三稿定稿.docx_第4页
第4页 / 共51页
论文三稿定稿.docx_第5页
第5页 / 共51页
点击查看更多>>
下载资源
资源描述

论文三稿定稿.docx

《论文三稿定稿.docx》由会员分享,可在线阅读,更多相关《论文三稿定稿.docx(51页珍藏版)》请在冰豆网上搜索。

论文三稿定稿.docx

论文三稿定稿

届别2012届

学号200814160237

 

毕业设计(论文)

 

基于VC的成三棋游戏程序的设计与实现

 

姓 名杨剑

系别、专业计算机科学系网络工程

导师姓名、职称曹清华、讲师

完成时间2012-4-26

 

目录

摘要I

AbstractII

1绪论1

1.1课题背景1

2系统实现技术与开发环境2

2.1C/C++简介2

2.2.1GDI绘图3

2.2.2对话框4

2.2.3消息响应5

2.2.4游戏编程思想7

2.3MFC编程思想8

2.3.1MFC中类的结构及联系9

2.3.2MFC中类的作用10

3需求分析10

3.1游戏用户分析10

3.2游戏功能分析11

3.3游戏功能模块主要功能11

3.3.1登录模块:

11

3.3.2下棋模块:

11

3.3.3英雄排行榜模块:

11

4系统概要设计12

4.1模块结构设计12

4.1.1游戏登陆者管理模块12

4.1.2游戏者下棋实现模块13

4.1.3数据流网络传输模块14

4.2英雄榜设计14

4.2.1英雄榜数据结构设计14

4.2.2逻辑结构设计15

4.3游戏规则说明16

4.3.1下棋阶段16

4.3.2行棋阶段17

5系统详细设计17

5.1游戏者登录管理模块17

5.1.1游戏者登录友好界面的实现18

5.1.2游戏帮助文档及基本规则的说明18

5.2游戏者下棋模块的实现19

5.2.2行子阶段的实现30

5.2.3输赢判断的实现33

5.2.4英雄榜的数据更新34

5.3网络模块的实现37

5.3.1网络初始化37

5.3.2网络的调用37

6游戏测试44

6.1登录的测试44

6.2下棋的测试45

6.3走棋阶段的实现46

6.4英雄榜的测试:

48

结束语49

参考文献50

致谢51

 

1绪论

1.1课题背景

游戏软件是当世界发展最迅速,最有影响力,最有潜力与活力的领域之一。游戏软件深受广大青年人喜爱,而且在发达国家中老年人也有大部分喜欢游戏的,因此游戏软件在很大程度上给予绝大部分人精神上的娱乐。第二次世界大战以后,电子计算机技术得到了突飞猛进的发展。先是由晶体管代替了笨重的真空管,后来出现了集成电路和大规模集成电路,使电子子计算机一代一代实现更新,同时软件技术也发展迅速。在美国,集中了许多计算机软件的设计人才,他们工作之余,时常喜爱编一种能与人斗智的“游戏”,以此来锻炼编程的能力。这种“游戏”花样繁多,但其特点都是利用计算机软件事先设计好的“分析”、“判断”能力反过来与人较量。由于不断修改更新,使计算机的“智力”水平与人难分高低。到了90年代,游戏软件已经为世界各国的人使用,BLACKISLAND和Blizzard.这两个强大的游戏制作组起到了巨大的带动作用,还有中国的洛河工作室在国内也起到了巨大作用,他们让很多很多人喜欢上了游戏软件,打开了这个市场。

如今游戏软件产业已经受到了广泛的关注,它年轻有潜力而且吸引人,让人们日益丰富的生活需求得以满足。

成三棋,规则较简单,易学易懂,也是一款传统的棋类游戏,她的历史也非常悠久,在公元前500多年就在我国出现了,是一种老少皆宜的棋类活动。

特别是在农村,不会玩这个游戏的很少的,当然,随着人们的物质文化生活的不断丰富,现在下成三棋的人越来越少。

她没有围棋、象棋这样繁复,与五子棋有些相似,但又有其自身独特的魅力,方寸之间,便能突显弈者的奇思妙想。

 

成三棋游戏,旨在为游戏爱好者提供一种新的娱乐途径,让大家在娱乐的同时锻炼思维,增长智慧,也将成三棋这一传统的棋类游戏利用网络进行推广发扬,使之广为流传。

2系统实现技术与开发环境

2.1C/C++简介

C语言的特点:

 C语言是一种结构化语言。

它层次清晰,便于按模块化方式组织程序,易于调试和维护。

C语言的表现能力和处理能力极强。

它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。

它还可以直接访问内存的物理地址,进行位(bit)一级的操作。

由于C语言实现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体。

既可用于系统软件的开发,也适合于应用软件的开发。

此外,C语言还具有效率高,可移植性强等特点。

因此广泛地移植到了各类各型计算机上,从而形成了多种版本的C语言。

C++简介:

在C的基础上,一九八三年又由贝尔实验室的BjarneStrou-strup推出了C++。

C++进一步扩充和完善了C语言,成为一种面向对象的程序设计语言。

C++目前流行的最新版本是BorlandC++4.5,SymantecC++6.1,和MicrosoftVisualC++2.0。

C++提出了一些更为深入的概念,它所支持的这些面向对象的概念容易将问题空间直接地映射到程序空间,为程序员提供了一种与传统结构程序设计不同的思维方式和编程方法。

因而也增加了整个语言的复杂性,掌握起来有一定难度。

C和C++关系

C是C++的基础,C++语言和C语言在很多方面是兼容的。

2.2VC开发环境

MicrosoftVisualC++,(简称VisualC++、MSVC、VC++或VC)微软公司的C++开发工具,具有集成开发环境,可提供编辑C语言,C++以及C++/CLI等编程语言。

VC++整合了便利的除错工具,特别是整合了微软视窗程式设计(WindowsAPI)、三维动画DirectXAPI,Microsoft.NET框架。

目前最新的版本是MicrosoftVisualC++2010。

2.2.1GDI绘图

GDI(GraphicsDeviceInterface,图形设备接口)是Windows操作系统的传统图形子系统,负责与设备无关的图形绘制,Win32API为应用程序提供了丰富的绘图函数和功能,MFC对它们进行了C++类封装,参见下表。

表2-1

Windows应用程序

MFC

Win32API

执行程序

用户界面(User)

GDI+

图形子系统(GDI)

设备驱动程序

内核(Kernel)

图形驱动程序

硬件抽象层(HAL)

计算机硬件

GDI与Windows操作系统(其中彩色部分为操作系统)传统GDI是随Windows1.0于1985年11月推出的,新式GDI+则是随WindowsXP于2001年10月推出的GDI的改进版,增加了α混色、渐变画刷、样条曲线、矩阵变换、图像处理、持久路径等新功能。

随WindowsVista及.NET框架3.0微软于2006年11月又推出了基于DirectX和.NET框架的全新图形子系统WPF(WindowsPresentationFoundation,视窗显示/展现基础),它统一了桌面和浏览器等客户端应用程序的图形界面,采用XAML声明式编程,将用户界面的设计和编程彻底分离开来,是Windows的下一代GUI显示系统。

2.2.2对话框

对话框是一种次要窗口,包含按钮和各种选项,通过它们可以完成特定命令或任务。

查找和替换对话框对话框与窗口有区别,它没有最大化按钮、没有最小化按钮、大都不能改变形状大小。

(“打开文件”对话框是可以改变大小的)对话框:

是人机交流的一种方式,用户对对话框进行设置,计算机就会执行相应的命令。

对话框中有单选框、复选框等。

对话框可以分为模式对话框和无模式对话框两种类型。

  CDialog

  为了能够方便的操作对话框,MFC为用户提供了CDialog类。

它是在屏幕上显示对话框的基类,与对话框资源紧密相关,提供了管理对话框的接口,封装了一些对话框的相关操作。

  从CDialog的定义代码可以看出,Cdialog提供了两套构建Cdialog对象的系统,分别用于模式对话框和无模式对话框。

  无模式对话框对象的构建过程,它首先调用缺省的构造函数生成对话框对象,然后调用Create函数创建和初始化对话框。

Cdialog类中的Create函数有两种函数原型:

  BOOLCreate(LPCTSTRlpszTemplateName,CWnd*pParentWnd=NULL);

BOOLCreate(UINTnIDTemplate,CWnd*pParentWnd=NULL);

2.2.3消息响应

VC++的MFC类库实际上是Windows下C++编程的一套最为流行的类库。

MFC的框架结构大大方便了程序员的编程工作,但是为了更加有效、灵活的使用MFC编程,了解MFC的体系结构往往可以使编程工作事半功倍。

它合理的封装了WIN32API函数,并设计了一套方便的消息映射机制。

由于视类窗口始终覆盖在框架类窗口之上,因此所有操作,包括鼠标单击、鼠标移动等操作都只能由视类窗口捕获。

一个MFC消息响应函数在程序中有三处相关信息:

函数原型、函数实现和以及用来关联消息和消息响应函数的宏。

(1)在消息响应函数的原型代码中,函数声明的前部有一个afx_msg限定符,也是一个宏,该宏表明这个函数是一个消息响应函数的声明。

(2)消息映射宏:

在视图类的源文件中,BEGIN_MESSAGE_MAP()END_MASSAGE_MAP()这两个宏之间定义了消息映射表,例如对于画线,其中有一ON_WM_LBUTTONDOWN()消息映射宏,这个宏的作用就是把鼠标左键按下消息(WM_LBUTTONDOWN)与一个消息响应函数关联起来,通过这种机制,一旦有消息产生,程序就会调用相应的消息响应函数来进行处理。

(3)消息响应函数的定义:

在视图类的源文件中,可以看到OnLButtonDown函数的定义。

头文件中在两个AFX_MSG注释宏之间是消息响应函数原型的声明。

源文件中有两处:

一处是在两个AFX_MSG_MAP注释宏之间的消息映射宏,通过这个宏把消息与消息响应函数关联起来;另一处是源文件中的消息响应函数的实现代码。

  在Win32应用程序中,当有消息产生时,操作系统会把这条消息放到应用程序的消息队列中,应用程序通过GetMessage函数从这个队列中取出一条具体的消息,并通过DispatchMessage函数把消息交给操作系统,调用的是应用程序的窗口过程,即窗口过程函数WndProc进行处理,然而在MFC程序中,并不是按这种途径进行处理的,只要定义了与消息有关的三处信息后,便可实现消息的响应处理.MFC中采用的这种消息处理机制称为MFC消息映射机制.

MFC消息映射机制的具体实现方法是:

在每个能接收和处理消息的类中,定义一个消息和消息函数静态对照表,即消息映射表.在消息映射表中,消息与对应的消息处理函数指针是成对出现的.某个类能处理的所有消息及其对应的消息处理函数的地址都列在这个类所对应的静态表中.当有消息需要处理时,程序只要搜索该消息静态表,查看表中是否含有该消息,就可知道该类能否处理此消息.如果能处理此消息,则同样依照静态表能很容易找到并调用对应的消息处理函数.

  MFC消息映射机制的实际实现过程:

MFC在后台维护了一个窗口句柄与对应的C++对象指针的对照表,以例中的CDrawView类为例,与CDrawView对象相关的有一个窗口,窗口当然有它的窗口句柄,该句柄与CDrawView对象的一个指针(即CDrawView*)存在一一对应关系,在窗口句柄与C++对象对照表中就维护了这种对应关系.当收到某一个消息时,消息的第一个参数就指明了该消息与哪个窗口句柄相关,通过对照表,就可以找到与之相关的C++对

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 财会金融考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1