计算机毕业设计VC++网络五子棋对战系统Word格式文档下载.docx

上传人:b****4 文档编号:17162786 上传时间:2022-11-28 格式:DOCX 页数:45 大小:110.91KB
下载 相关 举报
计算机毕业设计VC++网络五子棋对战系统Word格式文档下载.docx_第1页
第1页 / 共45页
计算机毕业设计VC++网络五子棋对战系统Word格式文档下载.docx_第2页
第2页 / 共45页
计算机毕业设计VC++网络五子棋对战系统Word格式文档下载.docx_第3页
第3页 / 共45页
计算机毕业设计VC++网络五子棋对战系统Word格式文档下载.docx_第4页
第4页 / 共45页
计算机毕业设计VC++网络五子棋对战系统Word格式文档下载.docx_第5页
第5页 / 共45页
点击查看更多>>
下载资源
资源描述

计算机毕业设计VC++网络五子棋对战系统Word格式文档下载.docx

《计算机毕业设计VC++网络五子棋对战系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《计算机毕业设计VC++网络五子棋对战系统Word格式文档下载.docx(45页珍藏版)》请在冰豆网上搜索。

计算机毕业设计VC++网络五子棋对战系统Word格式文档下载.docx

古代的五子棋的棋具与围棋相同,纵横各十七道。

五子棋大约随围棋一起在我国南北朝时先后传入朝鲜、日本等地。

据日本史料文献介绍,中国古代的五子棋是经由高丽(朝鲜),于1688年至1704年的日本元禄时代传到日本的。

到日本明治32年(公元1899年),经过公开征名,“连珠”这一名称才被正式确定下来,取意于“日月如合壁,五星如连珠”。

从此,连珠活动经过了不断的改良,主要是规则的变化(即对执黑棋一方的限制),例如,1899年规定,禁止黑白双方走“双三”;

1903年规定,只禁止黑方走“双三”;

1912年规定,黑方被迫走“双三”亦算输;

1916年规定,黑方不许走“长连”;

1918年规定,黑方不许走“四、三、三”;

1931年规定,黑方不许走“双四”,并规定将19×

19的围棋盘改为15×

15的连珠专用棋盘。

本世纪初五子棋传入欧洲并迅速风靡全欧。

通过一系列的变化,使五子棋这一简单的游戏复杂化、规范化,而最终成为今天的职业连珠五子棋,同时也成为一种国际比赛棋。

1.1.2五子棋游戏的规则

(1)棋盘,棋子:

1、棋盘为十五路,正中一点为“天元”,周围四点为小星。

2、棋子分黑白两色,黑子113枚,白子112枚,共225枚。

(2)比赛规则:

1、黑先白后,从天元开始落子。

然后执白棋的一方在黑棋周围的交叉点上落子,白第二着棋应布在自己河界的一侧。

此后,执黑方在以天元为中心的25个交叉点的范围内布盘面的第三着棋。

2、最先在横向,竖向,斜向形成连续的相同色五个棋子的一方为胜。

3、黑棋禁手判负,白棋无禁手。

黑棋禁手包括“三三”,“四四”,“长连”。

黑方只能“四三”胜。

所谓禁手,是指黑方一子落下同时形成两个或两个以上的活三,冲四及长连禁手。

长连禁手是指黑方形成六个或六个以上的连续棋子。

4、双方均不能形成五连为和棋。

5、对局中拔子,中途退场均判为负。

6、五连与禁手同时形成,先五为胜。

因黑方已形成五连,故禁手失效,黑方胜。

7、黑方禁手形成时,白方应立即指出禁手点,黑方即负。

若白方继续应子,则黑方禁手不成立。

8、高段位职业比赛的特殊规定:

“三手可交换”:

黑下完第2手,执白者可提出交换。

即执白方变为执黑方。

“五手两打法”:

执黑下第五手时,必须下两手棋,执白者从这两手棋中任选一步。

本文所论述的联机五子棋系统就是依照这种方式进行的。

1.1.3开发系统的几点建议

(1)开发系统不必贪大求全,力争简单实用。

应从大处着眼,小处着手,循序渐进,逐步完善。

(2)对开发过程中的各种文档应当注意保存。

这是系统开发所要求的必要条件。

(3)尽可能取得对程序设计重视,使用简化的程序代码保证整个系统开发的清晰。

1.2相关技术介绍

1.2.1结构化生命周期法简介

结构化生命周期法是一种传统的系统开发方法,其基本思想是把整个系统开发过程分成若干个阶段,每个阶段进行若干活动,每项活动应用一系列标准、规范、方法和技术,完成一个或多个任务,形成符合给定规范的产品。

采用结构化生命周期法来开发系统时,应遵循的主要原则:

(1)用户参与的原则。

(2)“先逻辑后物理”的原则。

(3)“自顶向下”的原则。

(4)工作成果描述(主要指文档)标准化的原则。

其具体开发步骤可分为以下四步:

(1)系统规划。

(2)系统开发。

(3)系统的运行及维护。

(4)系统评价。

其中系统开发又分为以下四个步骤:

(1)系统分析:

系统初步调查、系统可行性研究、行系统的详细调查、系统逻辑方案的提出。

(2)系统设计:

系统总体结构设计、系统总体功能设计、系统总体物理结构设计、系统详细设计、代码设计、输入输出设计。

(3)系统实施:

程序设计、系统测试。

1.2.2开发技术——快速原型法简介

快速原型法是80年代发展起来的,旨在缩短开发周期,提高开发效率和用户对系统的满意程度。

其基本思想是在系统开发的初期,尽快构造出系统的原型,使用户能及早地运行这个系统原型,通过使用它、熟悉它,受到启发并取得经验,然后对系统的目标和功能提出更精确、具体的要求,研制人员据此逐渐修改和完善原型,使它满足用户的需求,最后完成系统的开发。

该方法大大提高了系统开发效率,弥补了结构化生命周期法来开发的时间长的缺陷。

通常采用原型法需要以下四个阶段:

(1)明确用户的基本要求。

(2)研制系统的原型。

(3)使用、评价系统原型。

(4)修改和完善原型。

1.2.3本系统开发方法的选择

基于以上开发方法的优劣和本系统的实际情况,本系统总体上采用结构化生命周期法进行系统规则、系统分析和系统设计,但在系统实施阶段采用原型法。

在开发程序的方法上,本系统将采用VISUALC++棋联机游戏的软件,用以实现客户端与服务端管理。

1.2.4VISUALC++

1、VC是什么?

学VC是学什么?

  首先VC是一个软件(IDE集成开发环境)(编译、编辑、调试);

C和C++;

  WindowsSDK(软件开发工具);

  VC的灵魂:

MFC(微软基础类库);

  ATL(ActiveX模板类库);

  其他的SDK,如OpenGL,DirectX,ActiveMoive,DrawDib(WinG)。

VC是许许多多技术的综合,就好像少林72般绝技,一般在应用中学会其中很少一部分就够了。

我们的现在目的,其实不过是学一套少林长拳。

这套长拳应包括:

(1)养成一种严谨的软件开发习惯,熟悉软件工程的基本原则。

(2)C语言基础。

(3)C++最基本内容:

类、继承性、封装性、多态性的概念。

(4)如何用向导建立一个程序框架。

  (6)设计工具条。

(7)设计和使用对话框,熟悉最常用的对话框控件:

按钮、静态文本、编辑框等。

(8)知道怎样新建类、成员函数、成员变量、消息处理函数。

(9)了解最常用的Windows消息:

如WM_PAINT(重绘窗口),鼠标按下、弹起、移动,初始化对话框等。

(10)了解最简单的GDI(图形设备接口):

写文字、画框、画点、画线、画圆,设置画笔、画刷。

  (11)熟悉最常用的MFC类:

  CWnd

  CDocument

  CView

  CDC

  CDialog

  CWinApp

  CGdiObject及子类

  CString、CPoint、CRect、CSize等简单数据类型

  CFile

  以上提到的这些内容,是每个人都会用到的内容。

2、MFC简介

  上述主要内容都是与实际操作关系非常密切的,在此不可能讲清楚;

而且,这些在一般的书里都会讲到。

我主要将最重要的MFC介绍一下。

  MFC是对WindowsAPI的封装,大大简化了我们的工作;

学VC主要就是要学MFC,大约有100多个类,但常用的也就二三十个。

应该象背4级单词一样将这些常用类搞懂;

当然不要死记,要通过看帮助、看例子、动手练习来学会它们;

而且,并非每个类的内部的所有函数都要学会,要日积月累。

如果真的想成为高手,做个笔记本把自己认为重要的类、函数记下来,随时学习,也是很好的突击方法。

  下面介绍最重要的MFC。

  CWnd:

窗口,它是大多数“看得见的东西”的父类(Windows里几乎所有看得见的东西都是一个窗口,大窗口里有许多小窗口),比如视图CView、框架窗口CFrameWnd、工具条CToolBar、对话框CDialog、按钮CButton,etc;

一个例外是菜单(CMenu)不是从窗口派生的。

该类很大,一开始也不必学,知道就行了。

CDocument文档,负责内存数据与磁盘的交互。

最重要的是OnOpenDocument(读入),OnSaveDocument(写盘),Serialize(读写)。

CView视图,负责内存数据与用户的交互。

包括数据的显示、用户操作的响应(如菜单的选取、鼠标的响应)。

最重要的是OnDraw(重画窗口),通常用CWnd:

:

Invalidate()来启动它。

另外,它通过消息映射表处理菜单、工具条、快捷键和其他用户消息。

你自己的许多功能都要加在里面,你打交道最多的就是它。

  CDC设备文本。

无论是显示器还是打印机,都是画图给用户看。

这图就抽象为CDC。

CDC与其他GDI(图形设备接口)一起,完成文字和图形、图像的显示工作。

把CDC想象成一张纸,每个窗口都有一个CDC相联系,负责画窗口。

CDC有个常用子类CClientDC(窗口客户区),画图通常通过CClientDC完成。

  CDialog对话框

  CWinApp应用程序类。

似于C中的main函数,是程序执行的入口和管理者,负责程序建立、消灭,主窗口和文档模板的建立。

最常用函数InitInstance():

初始化。

  CGdiObject及子类,用于向设备文本画图。

它们都需要在使用前选进DC。

  CPen笔,画线;

  CBrush刷子,填充;

  CFont字体,控制文字输出的字体;

  CBitmap位图;

  CPalette调色板;

  CRgn区域,指定一块区域可以用于做特殊处理;

  CFile文件。

最重要的不外是Open(打开),Read(读入),Write(写);

  CString字符串。

封装了C中的字符数组,非常实用;

  CPoint点,就是(x,y)对;

  CRect矩形,就是(left,top,right,bottom);

  CSize大小,就是(cx,cy)对(宽、高)。

3、用好MSDN和例子

  作为提高,推荐看的例子有:

  nHello最简单的程序框架;

  nScribble鼠标绘图。

教程:

编程基础,GDI;

  nDiblook图像处理最简单范例;

  nMFCIE因特网浏览器;

  nEnroll数据库;

  nDaoviewDao(数据访问对象)范例。

树型和列视控件;

  nCubeOpenGL范例,画一个不断旋转的方块;

  nHierSvrOLE服务器;

  nOclientOLE包容器;

  nDrawcli鼠标绘图。

也包括OLE;

  nWordPad写字板。

  4、几点经验

(1)为什么要用Windows而不是DOS编程。

Windows编程并不比DOS编程难很多,只是在刚刚接触的时候感到头绪繁多,不知从何下手。

实际上,如果你会C语言,你会发现Windows编程的难度并不比当年学C语言时大。

DOS编程要想成为高手,也需要学习几百个函数(无论是TC、BC、MicrosoftC),并要深入了解汇编语言级的DOS功能调用。

而现在在Windows下,付出相同的工作量,你却可以获得几倍的收益。

如果你以前熟悉DOS编程,现在再搞Windows编程,只要两个星期肯定会感到巨大的优越性:

在DOS下,每一件事都要自己干,而且还有64K内存、显示精度等的限制,实在是事倍功半了。

(2)为什么要用VC而不是其他Windows编程语言。

  n大多数大型软件(包括Windows自己)都是用C、C++编的,所以可以利用的源代码特别多。

例如Photoshop,就有VC的编程接口。

的其他的语言都不如VC有历史优势。

而且VC的开发工具特别多,从控件公司到硬件开发商,其产品很少敢不提供VC接口的。

  nVC适合组织大工程(VB就不行)。

  nBorlandC++或C++Builder也很不错,并不比VC差。

但BC的版本兼容性不好,从3.1到4.0就出现“代沟”,而且VC提供了极为丰富的文档和范例,VC的参考资料也远比BC多。

并且VC与其他的VisualStudio成员可以协调工作,对软件工程有利。

(3)开始不要学WinAPI编程,但以后最好学学WinAPI。

  特别要注意,开始不要买讲WindowsSDK编程的书。

一个臭名昭著的例子就是“HelloWorld”。

各种计算机语言在入门课中往往都给出一个例子,显示一行文字“HelloWorld”,无论是在Basic、C、Pascal,甚至汇编中,这个最简单的小程序都几行就可以写完。

但在早期的Windows编程中,刚才讲到的“HelloWin”这个有名的例子就要组织一个工程、写上几百行代码才能实现。

这就吓跑了很多想学Windows编程的人。

实际上,在Windows下显示“Helloworld”,最简单的方法只要5行就够了:

  #include“windows.h”

  voidWinMain()

  {

  MessageBox(NULL,”HelloWorld!

”,”MyFirstWindowsApplication”,MB_OK);

  }

  当然这个程序只建立了一个最简单的对话框,但这已经够了。

  如果你没有SDK编程的经验,学VC就是要利用MFC绕过Windows编程的许多细节。

有好的工具为什么不用呢?

现在你在VC写一个”HelloWorld”,只要写一行代码就可以了。

  voidCYourView:

OnDraw(CDC*pDC)

  //…….其他的代码

  pDC->

TextOut(100,100,”HelloWorld!

”);

  但MFC不是万能的,WinAPI和VC中有很多功能在MFC中并不能反映出来。

在入门后,要想发挥VC的完全能力,WindowsAPI还是非常重要的。

而且,这些API在其他Windows语言中也用得到。

  学语言,与练武道理也差不多。

VC、VB、Delphi、VFP,以及其他的Windows编程语言,都属于同一个门派:

Windows门,虽然招式不同,但内功都是一样的,这就是WindowsAPI(应用编程接口),大概是两千个函数。

任何武功,招式即使再复杂,通常也能在很短时间内记下来;

但内功就不是一朝一夕的事。

而且,各门派的内功不同,Unix、Linux门有Uinx的内功,Apple(苹果)门有Mac的内功,Java更是自成一派。

我们这里说的学VC,只是学招式,学招式一个月差不多就够了,聪明的两个星期就可以掌握。

光学招式,吓唬人是够了,但和高手一过招,非出丑不可。

要想精通VC,必须熟悉WindowsAPI。

  (4)高级语言与自然语言

  一门高级语言与一门自然语言是类似的。

关键要素有三:

  语法:

了解C和C++基本语法,这是比较容易的。

  修辞:

编程的艺术和风格。

通常,这是与软件工程联系起来的。

算法上的小伎俩并非是关键的。

严谨,严格按照规范去做,同时又能发挥出极大的创造性,才是语言学家的本色。

  词汇:

如何利用别人的工作?

如何利用自己以前的工作?

这是一个软件工程师成功的关键。

如果词汇量不丰富,就写不出好文章,就会有想法表达不出。

一个人的语法在上小学之前就基本上学成了,修辞水平也在年轻时就确定了,惟有词汇量需要根据需要不断学习、不断扩充。

VC编程中,拥有大的词汇量就意味着要掌握较多的类、函数和其他编程组件。

如:

WindowsSDK,MFC,以及你所专攻的领域的现成的SDK,比如3D编程中的OpenGL,多媒体编程中的DirectX,图像处理中的Victor库。

另外,ActiveX控件的掌握往往也是成败的关键。

我们这几年的工作也总结成了一个类库,叫IPX(图像处理框架),大大简化了图像处理的工作;

不过现在还有很多细节问题要解决,如果有同学感兴趣可以参与这方面的工作。

  学习VC,千万不要用我们在学校里学英语的方法,而要用小孩学说话的方法。

所谓学英语的方法,就是我们在本科时学C语言的那种模式:

详细搞懂每一个细节,背大量的规则,很少上机实践,没有实际问题供解决,最后由考试来断定学习成果。

这种模式的后果大家都清楚:

我们学了十几年英语,可有不少人还只会四五千个单词,写百把字的文章,不会说,不能听;

尤其要命的是,看不懂VC的帮助文档。

我们要象婴儿一样,在使用中学会语法、修辞和词汇;

一开始肯定只能编出最糟糕的,就好像小孩开始只会说:

“爸爸坐车车”;

但“爸爸”“车车”这些词对小孩是最需要的,学习的效率反而最高。

学VC的时候,应从我的需要出发,先做一个最简单的东西,然后一点一点复杂起来,象滚雪球一样。

学习VC尤其要和别人交流,你苦苦思考不明白的,也许别人早就解决了。

一定要善于学习:

从书店找出有用的书;

向身边的高手学习;

寻找可以利用的源代码、类库、组件、控件、库;

如果能上互连网,那就更加能解决问题了。

2.系统目标

五子棋联机游戏系统主要致力于为提供联机双方进行联机游戏联络,以及提供准确可靠用户操作动作的信息。

具体目标如下:

1.选择连接到服务器的客户端进行记录;

2.记录客户机的键盘动作;

3.分析是否已经取得胜利。

3.系统需求分析

3.1系统需求

(1)满足记录客户机的游戏动作的基本要求。

(2)满足连接数据到客户端的基本要求。

(3)满足服务器实时获得客户端游戏状态的基本要求。

(4)在服务器端分析双方是否胜利。

3.2功能需求

基于系统需求分析,该系统需要实现以下基本功能:

(1)动作记录:

当客户端程序启动的时候,程序自动加载键盘钩子,对客户端的网络的连接和操作进行记录,并提示给游戏双方。

(2)对连接到客户端数据的基本要求:

能够将要发送的聊天记录发送至对方手上,能够完成数据的连接。

(3)实时显示:

当从游戏一方将数据传入另一方系统中,将五子棋的表格进行重新的刷新,和更改。

(4)通过控制鼠标点击五子棋表格:

进入控制模式,加载鼠标钩子,截取鼠标的按件动作,并把该动作发送到游戏另一方,并判断是否胜利。

3.3系统运行环境

系统运行环境:

Windows2000及其以上。

3.4MFC简述

MFC(MicrosoftFoundationClass)指的是Microsoft基础类,是用来为Windows开发C++GUI应用程序。

MFC是一种十分优秀的工具,使得面向对象的软件函数包装技术演变成为一种可以进行代码复用、简化了程序的复杂性并使程序更加有效的软件开发环境..对于使用WindowsAPI进行应用程序开发的人员来说,MFC使程序员大大提高了程序开发效率.你不必创建GDU对象,不必编写许多代码行对这些对象进行初始化,并且小心地跟踪其生命周期的运行情况,你只需建立一个MFC类的实例,使用其默认值,然后让撤消程序来清除系统资源即可。

3.5服务器与客户端SOCKET设计

本程序都采用tcpsock的DLL模型,该模型允许应用程序以Windows消息的形式接收网络事件通知。

这个模型是为了适应Windows的消息驱动环境而设置的,用于对性能要求不高的网络应用程序,最大可连接64个客户端。

使用该模型基本满足本程序要求。

协议设计:

(1)move鼠标移动;

(2)leftdown鼠标左件按下;

(3)leftup鼠标左件弹起;

(4)rightdown鼠标右件按下;

(5)rightup鼠标右件弹起;

(6)send发送数据;

(7)stop停止发送;

(8)quick实时发送。

4.系统设计

4.1概要设计

本次毕业设计的内容就是设计出联机五子棋系统,在此基础上实现系统模型各个子系统的基本功能。

此系统用建立一个tcpsock的DLL文件来进行联机的游戏的网络数据。

主要是运用了strListen类进行联机数据的传输

在系

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

当前位置:首页 > 解决方案 > 学习计划

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

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