- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于局域网的五子棋游戏系统设计与开发
摘要 本系统是基于局域网的五子棋游戏,应用VC++6.0完成。局域网中的两个用户一个充当服务器,一个充当客户端,当然可以自己选择扮演的角色。首先由服务器端设置IP和端口,监听端口;然后客户端连接服务器,当连接成功后,就可以开始游戏;在下棋过程中设置了落子音效以及落子位置标示,同时当出现局超时或者步超时,给出提示,如果步超时系统则做出让步处理,局超时则认为超时方本局失败;同时双方可以进行悔棋、和棋和认输操作;除此之外,在下棋过程中,双方可以进行交谈。此次的五子棋系统界面良好,绚丽,功能完善,有创新意识功,其中有很多人性化以及趣味设计,如声音的提示背景,音乐设置能等。
关键字:五子棋;MFC;局域网;Socket通信
目录
引言 1
1.基于局域网五子棋游戏设计 2
1.1 需求分析 2
1.1.1系统总体目标 2
1.1.2功能需求与概要设计 2
1.1.3.运行环境需求 3
1.1.4.性能需求 3
1.2 研究思路 3
1.2.1详细设计 3
1.2.3功能模块图 4
1.2.4数据结构 4
1.2.5系统流程图 5
2基于局域网五子棋游戏实现 6
2.1 绘制棋盘与棋子 7
2.2 服务器开启与客户连接以及局域网通信 9
2.3 聊天功能 12
2.4 悔棋、和棋与认输 13
2.5 输赢判断 16
3.系统测试 18
4.总结 21
参考文献 22
引言
五子棋是起源于中国古代的传统黑白棋种之一。现代五子棋日文称之为连珠,英译为Renju”,英文称之为Gobang”或FIR”(Five In a Row的缩写),亦有连五子、五子连、串珠、五目、五目碰、五格等多种称谓。,一种说法是早于围棋,早在尧造围棋之前,民间就已有五子棋游戏相传早在尧造围棋之前,五子棋游戏在民间已经相当盛行了。据《增山海经》中记载:休舆之山有石焉,名曰帝台之棋,五色而文状鹑卵。《辞海》中亦言:五子棋中棋类游戏,棋具与围棋相同,两人对局,轮流下子,先将五子连成一行者为胜。另一说法是源于围棋,发展分支。,纵横各十七道。是规则的变化(对执黑棋一方的限制)。1899年规定,禁止黑白双方走双三;1903年规定,只禁止黑方走双三;1912年规定,黑方被迫走双三;1916年规定,黑方不许走长连;1918年规定,黑方不许走四、三、三;1931年规定,黑方不许走双四,规定将19×19的围棋盘改为15×15的连珠专用棋盘。
五子棋游戏不仅能增强人们的抽象思维能力、逻辑推理能力、空间想象力,提高人们的记忆力、心算能力等,而且深含哲理,有助于修身养性。五子棋既短、平、快现代休闲方式所特有的特征 ,又有中国古典哲学所包含的高深学问阴阳易理;它既有简单易学的特点,为人民群众所喜闻乐见,又有深奥的技巧;既能组织举办群众性的比赛、活动,又能组织举办高水平的国际性比赛五子棋的根在中国,在这个国境里,他有着广泛的群众基础。但与世界先进的五子棋技术相比,我们的棋艺水平还要继续提高,所以我们要推广五子棋,宣传五子棋,争取在较短的时间内赶上和超过世界五子棋坛的先进水平。在这种环境下,开发一个易学实用的五子棋游戏软件是很有必要的。
图 2.1 基于局域网五子棋功能模块图
1.2.4数据结构
1.棋局的二维数组
本项目涉及到的主要数据是存放棋局的二维数组,棋盘大小可以改变,利用宏定义实现如下:
#define N 10
int chess[N][N]={0};/*初值为0*/
chess的初值为0,chess[i][j]值为1表示该处落的是白子;chess[i][j]值为2,表示该处落的是黑子。白棋子率先在一条直线上值都为1,白棋子赢;黑棋子率先一条直线上值都为2,黑子赢。当完成当前局,开始下一局时,chess重新赋值为0[8]。
消息结构体
游戏过程中需要向对方发送发送申请悔棋消息、同意悔棋消息、拒绝悔棋消息,申请和棋消息、同意和棋消息、拒绝和棋消息,认输消息,修改玩家姓名消息,聊天消息。定义一个消息结构体用于同意存放这些消息。其结构体实现如下:
typedef struct _tagMsgStruct {
UINT uMsg;// 消息ID
// 落子信息
int x;
int y;
int color;
TCHAR szMsg[128]; // 消息内容
} MSGSTRUCT;
落子位置信息结构体
游戏中每一下一步棋,都要向对方发送落子位置信息消息,存放落子位置的结构体如下:
typedef struct _tagStep {
int x;
int y;
int color;
} STEP[9];
1.2.5系统流程图
根据系统功能设计要求,系统参考流程图见图2.2如下所示
文档评论(0)