1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > c语言文字冒险类游戏 课内资源 - 基于C语言和easyx实现的巧虎划船大冒险游戏...

c语言文字冒险类游戏 课内资源 - 基于C语言和easyx实现的巧虎划船大冒险游戏...

时间:2021-03-25 20:13:11

相关推荐

c语言文字冒险类游戏 课内资源 - 基于C语言和easyx实现的巧虎划船大冒险游戏...

1 需求分析

1.1 功能需求

游戏性:通过键盘方向键的←、→、↑、↓来控制巧虎(船)的移动,躲避暗礁,碰撞宝物(特殊宝物),来增加积分,在倒计时结束前(到达终点前)争取得到更多分数。为提高可玩性,宝物(特殊宝物)、暗礁的初始位置、移动速度、出现频率是随机的,并可以由玩家来决定游戏难度,通常游戏越难,宝物和暗礁的个数越多,速度越快,频率越高。游戏中有倒计时显示,提示玩家游戏剩余时间。游戏结束后,若胜利(达到终点即倒计时结束),弹出排行榜、技术统计和对话框,询问是否增加难度继续挑战;若失败(积分为零),弹出排行榜和对话框,询问是否降低难度继续。

1.2 数据需求

程序应包含以下数据:

储存用户名的变量,储存倒计时的变量,储存暗礁和宝物(特殊宝物)位置坐标以及速度的结构体,及其动态数组,储存巧虎坐标的整型变量,作为计数器、临时存储的变量,显示字符的临时数组,放置外部图片的IMAGE类型变量,捕捉鼠标操作的MOUSEMSG类型变量。

1.3 界面需求

游戏面板:分为游戏区、按钮区和提示信息区。

游戏区包括游戏背景、巧虎、船、暗礁、宝物以及特殊宝物

按钮区包括开始按钮、暂停(继续)按钮、结束按钮、难度选择按钮

提示信息区包括倒计时提示、积分提示、用户名显示

1.4 开发与运行环境需求使用C语言结合Easyx库图形函数开发

开发环境Microsoft Visual C++ 6.0

运行环境:已测试Windows XP、Windows 7、Windows 8.1 系统可正常运行

1.5 其他方面需求倒计时显示

历史游戏记录

技术统计

特殊宝物类型(加速、清屏)

背景美化

2 概要设计

2.1 程序总体结构

程序整体结构:

游戏性能模块:主模块

游戏界面模块:包含void game()函数,用于绘制游戏界面

游戏操作模块:包含

void save(char *user, double *score);函数,用来保存游戏数据

int paihangbang();函数,用来制作游戏历史记录

int End();函数,用来在游戏失败/成功时结束本局游戏

角色模型模块:包含

// 巧虎模型

voidqiaohu(intx1,intx2,doubleJiFen);

voidqiaohuDel(intx1,intx2,doubleJiFen);

// 暗礁模型

voidanjiao(inta2,inti);

voidanjiaoDel(inta2,inti);

// 宝物模型

voidbaobei(intb2,intj);

voidbaobeiDel(intb2,intj);

// 加速球模型

voidspeedup(intb2,intj);

voidspeedupDel(intb2,intj);

// 清屏球模型

voidallkill(intb2,intj);

voidallkillDel(intb2,intj);

2.2 主要数据结构

本程序包含以下数据

2.2.1 基本数据类型控制游戏难度的整型变量lv

储存积分的变量JiFen

储存用户名的变量name

储存倒计时的变量countdown

储存暗礁和宝物(特殊宝物)的动态数组baowu[], anjiao[]

储存巧虎坐标的整型变量x1, x2

作为计数器、临时存储、类型转换的变量i, j, m, temp

2.2.2 Easyx库数据类型放置外部图片的IMAGE类型变量back, rule, Start

捕捉鼠标操作的MOUSEMSG类型变量mouse, Mouse, Mouse

2.2.3 自定义类型储存暗礁、宝物的坐标、速度信息的结构体BALL

3 详细设计voidgame();

voidsave(char*user,double*score);

intpaihangbang();

intEnd();

// 巧虎模型

voidqiaohu(intx1,intx2,doubleJiFen);

voidqiaohuDel(intx1,intx2,doubleJiFen);

// 暗礁模型

voidanjiao(inta2,inti);

voidanjiaoDel(inta2,inti);

// 宝物模型

voidbaobei(intb2,intj);

voidbaobeiDel(intb2,intj);

// 加速球模型

voidspeedup(intb2,intj);

voidspeedupDel(intb2,intj);

// 清屏球模

voidallkill(intb2,intj);

voidallkillDel(intb2,intj);

4 测试

4.1 正确运行程序的用例用户名可以输入任意字符,包括数字、字母、符号。例如用户名“test001:”

难度可以输入大于2的自然数,例如“5”

5.2 导致程序运行错误的用例难度输入“1”或“0”

5.3 边界数据的用例巧虎移动范围限定在“(0,0)~(700,500)的矩形范围之内”

5 用户手册应用程序功能的详细说明:本游戏为巧虎划船大冒险,通过键盘的←、→、↑、↓来控制巧虎(船)的移动,躲避暗礁,碰撞宝物(特殊宝物),来增加积分,在倒计时结束前(到达终点前)争取得到更多分数。

应用程序运行环境的要求:Windows xp/7/8.1系统下可运行

应用程序的安装与启动方法:“巧虎.exe”为程序启动文件,双击打开

程序的界面、交互方式和操作方法:右侧为菜单栏,通过鼠标左右键单击操作。左侧为游戏区,通过键盘方向键操作

输入数据类型、格式和内容限制:用户名无输入限制,难度需输入大于2 的自然数

6 总结提高

还有一些未完善的内容,比如排行榜的按分数排序、按用户名排序(当前只完成了按游戏时间排序),比如鼠标控制巧虎移动(目前使用键盘操作)。

6.1 课程设计总结

已完成的拓展功能有:

界面美化,结合Photoshop图层功能,使游戏界面在视觉上有较大改观

难度自定义,开局时输入难度,可以由用户来决定游戏难度,可玩性高

边界拦截,限制游戏中角色、道具的活动范围,无法穿越边界

倒计时显示,每毫秒更新一次时间显示,随时提醒用户当前游戏进程

完善交互细节,暂停时提醒用户当前状态,结束时询问是否增加/减少难度再来一次

历史记录,每次游戏结束前自动记录本局游戏的数据(用户名,积分,北京时间等),以文本形式储存到硬盘中。并在每次游戏后显示本次战绩,与历史玩家进行对比

将游戏运行所需的图片、文字、编码集成在exe文件中,无需加载其他文件即可进行游戏

6.2 对本课程意见与建议

C语言课程设计训练了我的实践能力,自学能力。希望这类课程能多多开设。巧虎划船大冒险这个题目对已学的C语言知识来说完成难度较大,老师建议我们采用Easyx图形函数库,来绘制图形界面,这些函数丰富了我对C语言的认识,体会到图形界面的乐趣,增强了学习兴趣。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。