预览加载中,请您耐心等待几秒...
1/9
2/9
3/9
4/9
5/9
6/9
7/9
8/9
9/9

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

c语言小游戏编程c语言小游戏编程c语言小游戏编程程序设计实践大作业学号:20100302XXXX姓名:XXX班级:信息10—3班实验题目:射击类飞机游戏成绩:实验题目:射击类飞机游戏实验目的:通过c语言编写一个射击类的打飞机小游戏,可以通过键盘来进行游戏,操作方法是“a”“d”“w”或者“←”“↑"“→”来控制,击中敌机可获得积分,被敌机撞中死亡一次,每次游戏有3次生还机会,游戏结束后可选择是否重新开始游戏……对游戏的改进:这个游戏是我对一个小游戏进行的改造升级版,添加了颜色函数、终止函数,选择类函数,使游戏实现了可以终止,不再是分数、死亡数一直增加但是没有结束的情况;增加了颜色函数,使得游戏看起来更加的舒适;增加了终止函数,使游戏在死亡三次后自动结束游戏,并且可以选择是否重新开始游戏;另外增添了设置函数,使得可以对游戏进行设置,改变游戏大小,调整飞机运行速度等等,是游戏更加的人性化……实验内容编写出c语言代码,运行程序,并调试程序,最终实现游戏的功能.本程序主要包含游戏控制函数、设置是否继续游戏函数、输出函数、子弹移动函数、敌机移动函数、设置函数、菜单函数等7个主要函数,包含了不同的功能,对原来的程序作出了很大的改进,用到的主要语句有getche语句、for语句、while语句、printf语句、switch语句等等,添加了颜色函数,实现了诸多功能。可以在页面上显示制作人的主要信息等等……【流程图见打印版】源程序:#include<stdio.h〉#include〈conio。h〉#include〈stdlib.h>#include〈time.h〉#defineN35#defineup72#defineleft75#defineright77voidrun();//游戏控制函数voidyn();//设置是否继续游戏函数voidprint(int[][N]);//输出函数voidmovebul(int[][N]);//子弹移动函数voidmovepla(int[][N]);//敌机移动函数voidsetting(void);//设置函数voidmenu(void);//菜单函数intscr[22][N]={0},pl=9,width=24,speed=3,density=30,score=0,death=0;//全局变量:界面、我机初始位、界面宽度、敌机速度、敌机密度、得分、死亡voidmain(){menu();run();}voidprint(inta[][N])//输出函数{system(”cls”);inti,j;for(i=0;i<22;i++){a[i][width-1]=4;for(j=0;j<width;j++){if(a[i][j]==0)printf("");if(a[i][j]==1)printf(”\5");//输出我机的符号if(a[i][j]==2)printf("^");//子弹if(a[i][j]==3)printf("\3”);//输出敌机符号if(a[i][j]==4)printf(”\2”);if(i==1&&j==width—1)printf(”您成功杀敌:%d架",score);//右上角显示得分if(i==2&&j==width—1)printf("设置:Esc");if(i==4&&j==width-1)printf(”您已经死亡了:%d次”,death);//右上角显示死亡次数if(i==9&&j==width-1)printf(”你还剩余%d条命!”,3-death);if(i==18&&j==width—1)printf("制作人:XXX”);if(i==19&&j==width—1)printf(”班级:信息10—3班");if(i==20&&j==width—1)printf(”学号:20100302xxxx”);}printf(”\n”);}}voidmovebul(inta[][N]){inti,j;for(i=0;i<22;i++)for(j=0;j〈width;j++){if(i==0&&a[i][j]==2)a[i][j]=0;if(a[i][j]==2){if(a[i—1][j]==3)//加分{score+=1;printf(”\7");}a[i][j]=0,a[i—1][j]=2;}}}voidmovepla(inta[][N]){inti,j;for(i=21;i〉=0;i—-)//从最后一行往上是为了避免把敌机直接冲出数组.for(j=0;j<width;j++){if(i==21&&a[i][j]==3)a[i][j]=0;//消除敌机,在最低层if(a[i][j]==3)a[i][j]=0,a[i+1][j]=3;//敌机移动}if(a[20][p