打飞机游戏程序设计
打飞机小游戏程序设计
学校:湖北师范学院
专业:信息工程
姓名:袁诚
日期:2015年5月14日
摘要
打飞机小游戏是日常人们生活中应用广泛的娱乐工具,学习工作压力大时玩玩打飞机小游戏可以缓解压力,放松心情,茶余饭后可以陶冶情操,增进友谊。然而打飞机游戏能够玩耍的前提是要设计编造出这款游戏,程序的功能比较多,规模比较大,如果把所有的代码都写在一个主函数里面,就会使主函数变的庞杂,头绪不清,使阅读和维护程序变得困难,此外有时程序中要多次使用某一功能,就要多次重复编写实现此功能的程序代码。这使程序很长,不精炼。如果采...
打飞机小游戏程序
学校:湖北师范学院
专业:信息
姓名:袁诚
日期:2015年5月14日
摘要
打飞机小游戏是日常人们生活中应用广泛的娱乐工具,学习工作压力大时玩玩打飞机小游戏可以缓解压力,放松心情,茶余饭后可以陶冶情操,增进友谊。然而打飞机游戏能够玩耍的前提是要设计编造出这款游戏,程序的功能比较多,规模比较大,如果把所有的代码都写在一个主函数里面,就会使主函数变的庞杂,头绪不清,使阅读和维护程序变得困难,此外有时程序中要多次使用某一功能,就要多次重复编写实现此功能的程序代码。这使程序很长,不精炼。如果采用函数的模块化设计,那么编写和读阅就变得简洁的多。
在设计打飞机游戏程序时,把它分成若干个小模块,每一个模块包含一个或多个函数,每一函数用来实现某一特定功能,一个函数可以被多次调用以减少重复编程的工作量。
一、设计任务
利用函数实现模块化程序设计的方法设计出打飞机小游戏
二、设计目的
通过对打飞机小游戏的设计,来将所学的C语言知识运用起来,并且体验用函数实现模块化设计的方法来编程的好处,进一步达到巩
1
固C语言知识和灵活运用C语言知识的目的,实现理论与实际的结合。
三、设计思路分析
(1)游戏
在游戏页面内,飞机可以左右移动,并且发射子弹,每射中一个敌机得10分,没有射中不得分,另外每被一台敌机撞击一次记死亡次数一次,进入设置页面可以选择游戏游戏界面的大小与难度。
(2)飞机的左右移动与发射子弹
此程序的关键就在于控制飞机的移动。游戏在进入界面后,在没有执行任何操作的情况下,处于原位置静止不动。当按了一次控制键向左移动后飞机向左移动一次,当按了一次控制键向右移动后飞机向右移动一次,每按一次发射子弹按键时飞机发射一枚子弹,子弹只能竖直向上发射,飞机只能左右移动,按其它键无效。
(3)流程图
首先初始化界面的大小,游戏操作者可以进入设置选项,可以选择游戏界面的大小,游戏过程中敌机产生的速度,游戏过程中敌机的密度;控制飞机的左右移动(按A键控制飞机向左移动,按D键控制飞机飞机向右移动),发射子弹(按W键发射子弹);然后判断是否射中敌机,如果射中则加10分,如果没有射中则判断是否与敌机相撞,
2
如果相撞则死亡次数加1,如果没有相撞则继续游戏。
开始
初始化界面
初始化界面大小,敌
机密度与速度
飞机左右移动,
并发射子弹
是否射中
敌机,
否
撞中敌否
机,
是
得分加10分 是
死亡次数增
加一
四、程序模块化思想分析 整个程序主要有四大部分组成,分别是输出,敌机的移动与子弹的移
3
动,设置,菜单
void print(int [][N]);//输出函数
void movebul(int [][N]);//子弹移动函数
void movepla(int [][N]);//敌机移动函数
void setting(void);//设置函数
void menu(void);//菜单函数
?输出
通过一系列的if条件判断语句输出我机的符号,子弹的符号,敌机的
符号
if(a[i][j]==1)printf("\5");//输出我机的符号
if(a[i][j]==2)printf(".");//子弹
if(a[i][j]==3)printf("\3"); //输出敌机符号
通过一系列的if条件判断语句输出界面,得分情况,死亡次数
4
if(a[i][j]==4)printf("|"); if(i==0&&j==width-1)printf("得分:%d",score);//右上角显示得分
if(i==1&&j==width-1)printf("死亡:%d",death);
if(i==2&&j==width-1)printf("设置:Esc");
?移动
在定义的范围内按A键使飞机向左移动,按D键使飞机向右移动, 按W键发射子弹
while(1){if(kbhit())switch(getch())//控制左右移动和进入菜单
{case 'a':case 'A':if(pl>0)scr[21][pl]=0,scr[21][--pl]=1;break;
//在定义范围内飞机向左移动
case 'd':case 'D':if(pl
> "); switch(getche()) //输入选择结果后输出
{
6
按1键则选择大界面,宽度为34
case '1':width=34;break;
按2键则选择小界面,宽度为24
case '2':width=24;break;
如果没有选择1也没有选择2,则输出“错误,重新选择” default:printf("\n 错误,请重新选择...\n"); sw=1; }
}
while(sw);
do
{
sw=0;
printf("\n 请选择敌机密度:1.大2.中3.小>> ");
选择后直接输出所选择的敌机密度结果
switch(getche())
{
按0键,选择密度为10
case '0':density=10;break;
7
按1键,敌机密度为20
case '1':density=20;break;
按2键,敌机密度为30
case '2':density=30;break;
按3键,敌机密度为40
case '3':density=40;break;
如果按其它的键则提示错误重新选择
default:printf("\n 错误,请重新选择...\n"); sw=1;
}
}
while(sw);
do
{
sw=0;
printf("\n 敌机的飞行速度:1.快2.中3.慢>> "); switch(getche()) 选择后直接输出结果
{
8
case '1':speed=2;break; case '2':speed=3;break;
case '3':speed=4;break; default:printf("\n 错误,请重新选择...\n"); sw=1;
}
}
while(sw);
for(i=0;i<22;i++)
for(j=0;j<45;j++)
scr[i][j]=0;
scr[21][pl=9]=1;
printf("\n 按任意键保存...");
?菜单
引用菜单函数初始化游戏界面
Intscr[22][N]={0},pl=9,width=24,speed=3,density=30,score=0,death=0;//
全局变量:界面、我机初始位、界面宽度、敌机速度、敌机密度、得
9
分、死亡
五、测试结果
10
六、结语
通过用C语言来编写打飞机小游戏程序,让我知道编写程序采用模块化思想的优势。要学把一个大的程序分解成许多个小的模块来完成,那么函数调用就非常的重要。在编写程序前心里应非常的清楚程序的构成,首先是预处理部分,再就是调用函数的声明,接着就是主函数,而主函数里都是调用函数。只要把一个个调用函数完成了,那么整个程序也就差不多完成了。所以编程的思想非常的重要,要清晰明了。在完成了这个程序后我也学会了怎样运用书上的知识,还让我学到了书上所没有的知识。更重要的是我从中知道了在遇到问题后,怎样去查找,怎样去解决。编写程序中不能马虎,要以一颗平静的心去对待,绝不能因找不出问题在哪里而烦恼。
11
本文档为【打飞机游戏程序设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。