如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
1.1五子棋游戏(网络版)五子棋游戏(网络版)需求分析l五子棋游戏基本功能该功能为程序设计的最基本的功能,程序有服务器端和客户端.当服务器端运行时会自动侦察是否有客户端运行,并自动接入开始游戏.当用户五子连成一线时即赢.l音乐播放现在游戏中已经很难找到是无声游戏的,多媒体就成了一个游戏不可缺少的一部分.该功能是多媒体播放功能,在用户游戏时候能随意播放自己喜欢的音乐.声音是提高游戏娱乐性中不可缺少的一环.l扩展功能在游戏中当下棋位置不对或者还没有轮到本机下棋能提示用户相应信息.当游戏中用户长时间没有下棋会提示用户该下棋,当对方长时间没有下棋会提示用户是否继续.设想如下图3-1:图3-1五子棋设想图1.2五子棋游戏(网络版)五子棋游戏(网络版)研究思路本毕业设计是利用VC6.0这一集成开发工具,在Windows环境下开发一款休闲网络游戏.本毕业设计通过策划,实现,测试等游戏开发的一般流程.游戏设计是按如下功能模块的设计思路来安排的:l五子棋游戏设计可以分成如录父瞿??服务器模块:负责建立游戏服务器并接受客户端的连接和处理客户端的数据.客户端模块:负责连接到服务器并处理和服务器的会话.游戏规则模块:负责游戏的控制和结果的判断,使游戏按规则进行.视图控制模块:负责控制整个程序的操作,负责处理用户的输入和游戏的界面绘制.l多媒体功能设计模块:音频播放模块:负责播放MP3,WMA等格式的音乐.效果如图3-2:图3-2五子棋游戏(网络版)效果图《五子棋》游戏制作思路解析总的来说(我们假定您熟悉五子棋的基本规则),要让电脑知道该在哪一点下子,就要根据盘面的形势,为每一可能落子的点计算其重要程度,也就是当这子落下后会形成什么棋型(如:"冲四","活三"等),然后通览全盘选出最重要的一点,这便是最基本的算法.当然,仅靠当前盘面进行判断是远远不够的,这样下棋很容易掉进玩家设下的陷阱,因为它没有考虑以后的变化.所以在此基础上我们加入递归调用,即:在电脑中预测出今后几步的各种走法,以便作出最佳选择,这也是我们下棋时常说的"想了几步".如此一来您的程序便具有一定的水平了.什么?不信!过来试试吧!总体思路弄清之后,下面进行具体讨论:一:数据结构先来看看数据结构,我们需要哪些变量?首先得为整个棋盘建立一张表格用以记录棋子信息,我们使用一个15*15的二维数组Table[15][15](15*15是五子棋棋盘的大小),数组的每一个元素对应棋盘上的一个交叉点,用'0'表示空位,'1'代表己方的子,'2'代表对方的子,这张表也是今后分析的基础.在此之后还要为电脑和玩家双方各建立一张棋型表Computer[15][15][4]和Player[15][15][4],用来存放棋型数据,就是刚才所说的重要程度,比如用'20'代表"冲四"的点,用'15'代表"活三"的点,那么在计算重要性时,就可以根据20>15得出前者比后者重要,下子时电脑便会自动选择"冲四"的点.那为什么棋型表要使用三维数组呢?因为棋盘上的每一个点都可以与横,竖,左斜,右斜四个方向的棋子构成不同的棋型,所以一个点总共有4个记录;这样做的另一个好处是可以轻易判断出复合棋型,例如:如果同一点上有2个'15'就是双三,有一个'15'和一个'20'就是四三.怎么样!3个数组构成了程序的基本数据骨架,今后只要再加入一些辅助变量便可以应付自如了.应该不会太难吧?OK!有了这么多有用的数据,我们就可以深入到程序的流程中去了.二:程序流程我们主要讨论五子棋的核心算法,即:人工智能部分,而其他像图形显示,键盘鼠标控制等,因较为简单,所以就不作过多介绍了.我们看到本程序由六个基本功能模块构成,各模块的详细分析如下:(1)初始化:首先,建立盘面数组Table[15][15],对战双方的棋型表Computer[15][15][4]和Player[15][15][4]并将它们清零以备使用;然后初始化显示器,键盘,鼠等输入输出设备并在屏幕上画出棋盘.(2)主循环控制模块:控制下棋顺序,当轮到某方下子时,负责将程序转到相应的模块中去,主要担当一个调度者的角色.(3)玩家模块:当轮到玩家下时,您通过键盘或鼠标在棋盘上落子,程序会根据该点的位置,在Table[15][15]数组的相应地方记录'2',以表明该子是玩家下的.(4)人工智能:本程序核心模块之一,人工