- 1、本文档共17页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于TCPIP协议的在线五子棋系统的设计与实现
题目:基于TCP/IP协议的在线五子棋系统的设计与实现一 系统功能描述 1
1.1 五子棋介绍 1
1.2 功能简介 1
二 系统的模块划分 1
2.1 软件的总体架构如图所示 1
2.2 棋盘模块 1
2.2.1 主要成员变量说明 2
2.2.2 主要成员函数说明 2
2.3 游戏模块 4
2.3.1 主要成员变量说明 4
2.3.2 主要成员函数说明 4
2.4 客户端模块 5
2.4.1 主要成员变量说明 5
2.4.2 主要成员函数说明 5
2.5 服务端模块 5
2.6 消息机制模块 6
2.6.1 消息机制的架构 6
2.6.2 各种消息说明 6
三 调试数据 10
3.1 程序主界面 10
3.2 建立游戏 10
3.3 加入游戏 10
3.4 连接成功后主界面 11
3.5 退出主界面 11
3.6 胜利后主界面 12
3.7 更改昵称 12
3.8 关于五子棋 12
3.9 失败后主界面 13
四 主要代码 13
4.1 判断胜负 13
4.2 初始化棋盘 16
4.3 在指定棋盘坐标处绘制指定颜色的棋子 16
4.4 设置棋盘数据,并绘制棋子 18
4.5 清空棋盘 18
五 系统功能的优缺点 19
5.1 优点 19
5.2 不足 19
5.3 如果自己有时间和能力,系统应该实现如下功能 19
参考文献 19
一 系统功能描述
1.1 五子棋介绍
五子棋是起源于中国古代的传统黑白棋种之一。现代五子棋日文称之为“连珠” ,英译为“Renju” ,英文称之为“Gobang”或“FIR”(Five in a Row的缩写),亦有“连五子” 、“五子连” 、“串珠” 、“五目” 、“五目碰” 、“五格”等多种称谓。
五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。五子棋既有现代休闲的明显特征“短、平、快” ,又有古典哲学的高深学问“阴阳易理” ;它既有简单易学的特性,为人民群众所喜闻乐见,又有深奥的技巧和高水平的国际性比赛;它的棋文化源渊流长,具有东方的神秘和西方的直观;既有“场”的概念,亦有“点”的连接。它是中西文化的交流点,是古今哲理的结晶。
1.2 功能简介
使用Socket实现五子棋的简单游戏规则(1)五子棋棋盘正确显示(2)正确显示双方棋子,走棋数据的正确存储与传递(3)能够正确判断胜负(4)能够实现认输、和棋和重新开局
图2.1 软件架构
2.2 棋盘模块
整个架构的核心部分,类名为CTable。封装了棋盘的各种可能用到的功能,如保存棋盘数据、初始化、判断胜负等。用户操作主界面,主界面与CTable进行交互来完成对游戏的操作。
2.2.1 主要成员变量说明
1. 网络连接标志——m_bConnected
用来表示当前网络连接的情况,在网络对弈游戏下客户端连接服务器的时候用来判断是否连接成功。
2. 棋盘等待标志——m_bWait与m_bOldWait
由于在玩家落子后需要等待对方落子,m_bWait标志就用来标识棋盘的等待状态。当m_bWait为TRUE时,是不允许玩家落子的。
在网络对弈游戏下,玩家之间需要互相发送诸如悔棋、和棋这一类的请求消息,在发送请求后等待对方回应时,也是不允许落子的,所以需要将m_bWait标志置为TRUE。在收到对方回应后,需要恢复原有的棋盘等待状态,所以需要另外一个变量在发送请求之前保存棋盘的等待状态做恢复之用,也就是m_bOldWait。
等待标志的设置,由成员函数SetWait()和RestoreWait()完成。
3. 网络套接字——m_sock和m_conn
在网络对弈游戏下,需要用到这两个套接字对象。其中m_sock对象用于做服务器时的监听之用,m_conn用于网络连接的传输。
4. 棋盘数据——m_data
这是一个15*15的二维数组,用来保存当前棋盘的落子数据。其中对于每个成员来说,0表示落黑子,1表示落白子,-1表示无子。
5. 游戏模式指针——m_pGame
这个CGame类的对象指针是CTable类的核心内容,它所指向的对象实体决定了CTable在执行一件事情时候的行为。
2.2.2 主要成员函数说明
1. 套接字的回调处理——Accept()、Connect()、Receive()
本程序的套接字派生自MFC的CAsyncSocket类,CTable的这三个成员函数就分别提供了对套接字回调事件OnAccept、OnConnect、OnReceive的实际处理,其中尤以Receive成员函数重要,它之中包含了对所有网络消息(参见“消息机制”一节)的分发处理。
2. 清空棋盘——Clear()
在每一局游戏开始的时候都需要调用这个函数将棋盘清空
文档评论(0)