军棋游戏设计_课程设计报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2016-2017学年第一学期

《Windows程序设计》

课程设计报告

题目:军棋游戏设计

专业:

班级:

姓名:

指导教师:

成绩:

学院

二0一六年十一月十五日

目录

1 设计的目的与功能简介 (1)

1.1 设计的目的 (1)

1.2 功能简介 (1)

2 游戏分析 (2)

2.1 界面设计 (2)

2.2 棋盘数据结构 (4)

2.3 通信协议设计 (4)

2.4 走棋规则设计 (6)

2.5 布阵规则设计 (8)

3 游戏详细设计 (9)

3.1 初始化棋盘 (9)

3.2 走棋规则 (11)

3.3 读写布阵棋谱文件 (12)

3.4 “保存布阵”、“读取布阵”、“开始对战” (14)

3.5 通信过程 (16)

3.6 “主机”、“从机”的选择 (24)

3.7 “联机”、“重新开始”、“退出游戏” (24)

3.8 窗体关闭 (26)

3.9 游戏运行测试 (26)

4 设计心得 (28)

5 参考文献 (29)

6 附录 (30)

1 设计的目的与功能简介

1.1 设计的目的

随着休闲网络游戏市场竞争的升级,尤其是网络棋牌游戏的巨大市场前景的吸引,许多公司都加入到棋牌游戏的竞争之列,一时之间竞争可谓惨烈。由于全国通用的全国流行的棋牌游戏市场(斗地主、象棋、军旗、梭哈)已经基本被几个大的游戏厂商(联众、腾讯、边锋、远航、中游)所占据,加之棋牌游戏玩家忠诚度非常高的特性,继续介入这快市场已经没有任何意义。一般来讲每一个地方游戏都是独立的,每个独立的游戏所面对的目标消费者都是不同的,所以对于企业的营销推广工作要求也比较高。如何在未来开拓出更多精彩的产品项目,为用户提供更为优质的服务,并结合自身的实际情况制定出最为合理的收费模式,便成了各厂商要想得到长足的发展,就必须先解决的一览子问题。在线棋牌游戏有着深厚的文化底蕴、坚实大众基础和广阔的发展空间,对于其前景应该是没有任何值得争议的。

1.2 功能简介

军棋,又称陆战棋。估计华人没有不知道什么叫做军旗的,军棋是一种家喻户晓的棋类游戏,它的多变吸引了无数玩家。

军旗的子数:军棋每方共有25个子,司令、军长、军旗各一;师长、旅长、团长、营长、炸弹各二;连长、排长、工兵、地雷各三。

军旗的子力:司令>军长>师长>旅长>团长>营长>连长>排长>工兵,大子遇小子,小子拿掉,大子放在原位,炸弹碰到任何子力同时拿下,这是任何规则都遵循的。

军旗的摆法:原则上25个棋子可以摆放在棋盘除行营外的任何位置,但是对于一些特殊子力还有特别的限制。例如,军旗只能摆在两个大本营其中的一个;地雷只能摆在后两排除军旗占据的一个大本营外的任何9个位置;炸弹不能摆在第一排的5个位置。军旗和地雷位置一旦固定,出征后就不能够再移动[5]。

军旗规则:

针对大本营,能进不能出的;

针对地雷,工兵飞雷雷下,工兵在;炸弹遇雷同时拿下;其他子力遇到地雷自动碰死拿下,地雷不动。

针对炸弹,有炸弹等同与其他子力按规矩行动的,也有炸弹满天飞(行子方式如同工兵)。

针对行棋方式:铁路线上棋子只可直行,工兵可以飞行。

军棋的胜负判定:夺取敌方的军旗,一般夺旗就算胜。

本网络军棋游戏如图1.2所示。

图1.2 网络军棋游戏界面

2 游戏分析

2.1 界面设计

下棋需要有棋盘,程序中通过在窗体激活时在图片框控件qi_pan上显示军棋棋盘图片文件。有R.bmp和G.bmp两个图片表示红方和绿方暗子。使用控件数

组Qizi_Pic[ ]的Add方法加载了我们所需要的棋子图片控件并使用相应图片。Qizi_Pic[ ]中下标i的含义是:如果i小于24,那么说明它属于红方的棋子,否则是绿方的棋子。同时Qizi_Pic[i]的tag属性保存了棋子在控件数组的索引号。

在界面中要求用户输入对方IP、端口(本地及对方远端),同时添加“联机”、“重新开始”、“退出”、“保存布阵”、“读取布阵”、“开始对战”6个按钮以及一些提示用的标签。

(a)红方军棋棋子图片

图2.1

(b)绿方军棋棋子图片

图2.2

图2.3 网络两人对战军棋设计界面

2.2 棋盘数据结构

棋盘的数据结构采用17×17二维数组Map存储。X,Y坐标原点是棋盘左上角。虽然使用四人玩的棋盘,本游戏主要是上下两个区域,其他区域可以走棋。例如,上方玩家棋子布阵所在区域是(7,1)到(11,6)范围,下方玩家棋子布阵所在区域是(7,12)到(11,17)范围。

2.3 通信协议设计

网络程序设计的难点在于与对方需要通信,这里使用了UDP(User Data Protocol)。UDP是用户数据文报协议的简称,两台计算机之间的传输类似于传递邮件;两台之间没有明确的连接,使用UDP协议建立对等通信。这里虽然两台计算机不分主次,但我们设计时假设一台做主机(红方),等待其他人加入。其他人想加入的时候输入主机的IP。为了区分通信中传送的是“输赢信息”、“下的棋子位置信息”、“重新开始”等,在发送信息的首部加上代号。定义了如下协议:

命令|参数|参数……

1.联机功能

join|

2.对方棋子移动信息

move|x,y,idx,old_x,old_y,old_idx

其中,棋子移动的目标位置坐标是(x,y),棋子移动的起始位置坐标是(old_x,old_y);

old_idx是被移动棋子的控件数组索引号,idx是目标位置留下的棋子的控件数组索引号。

3.游戏结束

over|+赢方代号(赢了此局)

4.表示要重新开始

reset|

5.布阵信息

layout|布阵棋子信息

相关文档
最新文档