C++高射炮打飞机游戏课程设计

上传人:206****923 文档编号:91852863 上传时间:2019-07-02 格式:DOC 页数:17 大小:339.02KB
返回 下载 相关 举报
C++高射炮打飞机游戏课程设计_第1页
第1页 / 共17页
C++高射炮打飞机游戏课程设计_第2页
第2页 / 共17页
C++高射炮打飞机游戏课程设计_第3页
第3页 / 共17页
C++高射炮打飞机游戏课程设计_第4页
第4页 / 共17页
C++高射炮打飞机游戏课程设计_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《C++高射炮打飞机游戏课程设计》由会员分享,可在线阅读,更多相关《C++高射炮打飞机游戏课程设计(17页珍藏版)》请在金锄头文库上搜索。

1、学号2012-2013学年 第二学期1208010245高级语言程序设计课程设计报告题目:高射炮打飞机游戏专业:计算机科学与技术班级:12(2)班姓名:张晓依指导教师:孙淮宁成绩:计算机与信息工程系2013年6 月 28日目录1 设计内容及要求11.1 设计内容11.2 设计任务及要求12概要设计22.1 系统的功能简介22.2 总体程序框图23设计过程或程序代码33.1各个模块的程序流程图33.2关键代码加以分析44设计结果与分析75小结8致谢9参考文献10附:源程序111 设计内容及要求1.1 设计内容 高射炮打飞机游戏主要根据课程设计要求进行设计,并了解了游戏进行的流程,该系统功能主要包

2、括以下模块:1) 游戏控制函数,用来设置背景以及控制移动。2) 设置是否继续游戏函数,当玩家有事暂停时提示询问是否继续。3) 输出函数,输出该游戏一切用到的数据。4) 子弹移动函数,控制子弹移动来打敌机以获取得分。5) 飞机移动函数,利用左右上快捷键移动飞机打敌人。6) 设置函数,供玩家选择敌机密度,飞行快慢,游戏界面的大小等数据。7) 菜单函数,显示开始界面。1.2 设计任务及要求 主要利用c语言函数语句设计开发一个小游戏,可以实现炮弹发射,飞机移动来打射敌机,继而获得胜利。地面对高空飞过的飞机进行有提前量的射击,显示射击效果并记分。该程序包含了不同的功能,对原来的程序作出了很大的改进,用到

3、的主要语句有getche语句、for语句、while语句printf语句、switch语句等等,添加了颜色函数,实现了诸多功能。要求:课程设计是为了让我们对所学知识有进一步的了解和掌握,能运用所学的C语言编写简单算法,简单的C程序设计(顺序程序、选择结构程序、循环控制程序),用数组存放数据,并运用各种函数及函数知识来编写一个完整的符合题目要求的程序,将程序调试出成功的结果。由此提高了我们运用C语言知识的能力,初步了解了软件开发的一般方法和步骤。2概要设计2.1 系统的功能简介该系统主要功能是通过c语言编写一个射击类的打飞机小游戏,可以通过键盘来进行游戏,操作方法是“a”“d”“w”或者“”“”

4、“”来控制,击中敌机可获得积分,被敌机撞中死亡一次,每次游戏有3次生还机会,游戏结束后可选择是否重新开始游戏。2.2 总体程序框图高射炮打飞机游戏飞机移动函数设置函数菜单函数子弹移动函数输出函数游戏控制函数设置是否继续图2.1总体程序程序框图设置函数游戏界面敌机密度飞行速度图2.2游戏参数函数设计3设计过程或程序代码3.1各个模块的程序流程图 1)主函数程序流程图及运行界面 a.主函数程序流程图(NS图)图3.1主函数流程图简单说明:该功能主要给用户显示一个进入界面,告诉用户有哪些功能能执行。下面是显示给用户的界面。(如图3.2) b.主函数运行界面图3.2 游戏界面设置 3.2关键代码加以分

5、析 1)游戏控制函数 void run() system(color 2e);/设置背景颜色 int i=0,j=0; scr21pl=1; /我方飞机初始位置 scr05=3; while(death0) scr21pl=0,scr21-pl=1;break; case right: case d: case D:if(plwidth-2) scr21pl=0,scr21+pl=1;break; case up: case W: case w:scr20pl=2;break; case 27 :exit(0);break; if(+j%density=0)/控制生产敌机的速度 j=0; sr

6、and(time(NULL);/产生随机数 scr0rand()%width=3;/生成随机敌方飞机 if(+i%speed=0)/控制敌机移动速度,相对于子弹移动速度 movepla(scr);/飞机移动 movebul(scr);/子弹移动 print(scr);/绘制游戏画面 本段函数是对整个游戏进行的一个控制,以确保程序能供用户使用。2)设置游戏是否继续 void yn() system(cls); system(color 2e); printf(n); printf(n); printf(tttt *GAME OVER*na); printf(n); printf(n); prin

7、tf(tt *游*戏*结*束* nnn); printf(ttt按y键继续游戏,n键退出游戏(y/n)?n); printf(ttt);switch(getch()/提示是否要继续游戏 case y: case Y:death=0,score=0,run();break; case n: case N:break; default :exit(0);break; 图3.3 询问设置 当游戏被暂停时,程序不知道用户的意图,故写此程序来询问是否继续游戏,以防游戏结束销毁了正在进行的游戏。3)子弹移动函数 void movebul(int aN) int i,j; for(i=0;i22;i+) f

8、or(j=0;jwidth;j+) if(i=0&aij=2) aij=0; if(aij=2) if(ai-1j=3)/加分 score+=1; printf(7);aij=0,ai-1j=2; 在打飞机游戏中需要瞄准再射击这样才能打中目标,通过这段程序来控制子弹移动,可以打中更多敌机,获得高分。4设计结果与分析当把程序写好并进行调试时,并不是一帆风顺的,总会遇到很多在调试时遇到的错误。1)首先在定义函数时,不能输入汉字。否则会程序会显示错误。2)前后定义变量要统一。3)如果要调用添加函数,修改函数,修改函数,查找函数,统计函数等要在主函数前面进行申明。否则会显示警告。4)对背景颜色设置的时

9、候,当你输入的颜色在内存中不存在时,运行程序过后,系统会告诉你相应的颜色符号常数及数值。5)如果程序在运行的过程中,对于一个循环语句,如果你返回的值始终是真的,那么程序将进如死循环。6)对应该有花括弧的复合语句,忘记加花括弧。7)所调用的函数在调用语句之后才定义,而又在调用前未加说明。图4.1 游戏运行结果图5小结通过本次试验,使我对c语言有了更深一层次的了解,对getche语句、for语句、while语句、printf语句、switch语句、颜色函数等等的了解及使用更加详细了一些,明白了这些语句的用法,明确了c语言的使用环境,功能。C语言作为一个基础性编程语言是我们在以后编程中不可或缺的语言

10、,使用率肯定会进一步增高。掌握了c语言就相当于掌握了一门技术,同时c语言相对而言简单一些,更容易理解。自己虽然对这个小游戏进行一部分的改造,但是我也感觉这只是其中的很很小的一部分,肯定会有更加强大的功能等待着我们去改善。同时,我也发现了自己很多的不足,需要进一步加强这一方面的学习,明白了自己的在哪一方面的欠缺,希望可以在以后的学习中更加彻底的弥补自己的不足,改善这种情况,也希望自己也可很容易的就可以轻松写出一些小游戏代码 ,我相信我也可以在以后的学习过程中逐步地掌握它,彻底的掌握它,使它成为自己手中的一把利剑。致谢在这次C语言课程设计中,我的老师和同学给了我及大的帮助。特别是我的指导老师孙淮宁

11、老师,还有我的C语言任课老师徐宁老师。在此,我对他们表示感谢!感谢他们在我面对困难时给了我帮助和支持。也感谢那些给我帮助的所有同学!参考文献1 谭浩强.C程序设计M.清华大学出版社,2005年,第三版.2 谭浩强.C程序设计M.清华大学出版社,1999年,第二版.3 谭浩强,张基温,唐永炎.C语言程序设计M.高等教育出版社,1992年附录:源程序#include #include #include #include #define N 35#define up 72#define left 75#define right 77void run();/游戏控制函数void yn();/设置是否继

12、续游戏函数void print(int N);/输出函数void movebul(int N);/子弹移动函数void movepla(int N);/敌机移动函数void setting(void);/设置函数void menu(void);/菜单函数int scr22N=0,pl=9,width=24,speed=3,density=30,score=0,death=0;/全局变量:界面、我机初始位、界面宽度、敌机速度、敌机密度、得分、死亡void main() menu(); run(); void print(int aN)/输出函数 system(cls); int i,j;for(i=0;i22;i+) aiwidth-1=4;for(j=0;jwidth;j+) if(aij=0)printf( );

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号