根据老师提供的飞机游戏程序,我仔细观察了游戏的运行方式及一些程序的细节,并做出了一些修改,程序如下:
# include & lt; stdio.h>
# include & lt; conio.h>
# include & lt; stdlib.h>
# include & lt; time.h>
35 # define N
空白打印(int [] [N]);//输出函数,,,,
空白movebul (int [] [N]);//痢痢烈贫?,
空白movepla (int [] [N]);//敌机移动函数
空白设置(空白);//设置函数
空白菜单(空白);//菜单函数
int可控硅[22][N]={0}, pl=9,宽度=24,速度=3,密度=30,得分=0,死=0;//全局变量:界面,我机初始位,界面宽度,敌机速度,敌机密度,得分,死亡
主要(void)
{
,,菜单();
,,,
int i=0, j=0;
,,可控硅[21](pl)=1;
,,可控硅[0][5]=3;
,,而(1)
,,{
,如果(kbhit ())
,开关(getch())//控制左右移动和进入菜单
,,,{
,,,案例a: a:
,,,如果(pl> 0)
,,,可控硅[21](pl)=0,可控硅[21][- pl)=1;
,打破;
,,,,,“d”:案件“d”:
,,,如果(pl<2)
,,,可控硅[21](pl)=0,可控硅[21][+ + pl]=1;
,,,,,,,,打破;
,,,,,“w”:案件“w”:
,,,可控硅[20](pl)=2,
,,,打破;
,案例27:
,,,设置();
,,,,,,,打破;
,,,}
,,,,
,如果密度(+ + j %==0)//控制生产敌机的速度
,,,{
,,j=0;将srand(时间(NULL));
,,,,,可控硅[0][rand() %宽度]=3;
,,,}
,,,如果(+ + i %速度==0)//控制敌机移动速度,相对于×××移动速度
,,,,,movepla (scr);
,,,movebul (scr);
,,,,
,,,打印(scr);
,,,如果(i==30000)
,,我=0;//以免我越界
,,,,
,,}
,,
}
空白打印(int [] [N]),,,,,,
{
,,系统(cls);
,,int i, j。
,,(我=0;i<22;我+ +)
,,{
,,,(我)(宽度)=4;
,,,(j=0; j<宽度;j + +)
{
,如果([我][j]==0)
,,,printf (" "),
,,,,如果([我][j]==1)
,,,,,printf(" \ 5 ");//输出我机的符号
,,,,如果([我][j]==2)
,,,printf (“。”);//痢痢?/p>
,,,,如果([我][j]==3)
,,,printf (" \ 3 ");//输出敌机符号
,,,,如果([我][j]==4)
,,,printf (“|”);
,,,,如果(i==0,和j==宽度)
,,,printf("得分:% d”,分数);//右上角显示得分
,,,,如果(i==1,和j==宽度)
,,,printf("死亡:% d”,死亡),
,,,,如果(i==2,和j==宽度)
,,,printf("设置:Esc”);
,,,,如果(i==3,和j==宽度)
,,,printf("版权:张铮”);
,,,}
,,,printf (" \ n ");
,}}
空白movebul (int [] [N])
{
,,int i, j。
,,(我=0;i<22;我+ +)
,,,,(j=0; j<宽度;j + +)
,,,,{
,,,,,如果(i==0,和一个[我][j]==2)
,,[我][j]=0;
,,,如果([我][j]==2)
,,,,,{
,,,,,,张,如果([][j]==3)
,,得分+=10,printf (" \ 7 ");
,,,,,,,(我)[j]=0,(张)[j]=2;
,,,,,}
,,,,}}
空白movepla (int [] [N])
{
,,int i, j。
,,(i=21; i>=0;我——)//从最后一行往上是为了避免把敌机直接冲出数组。
,,,,(j=0; j<宽度;j + +)
,,,,{
,,,,,,如果(我==21,和一个[我][j]==3)
,,,[我][j]=0;//底行赋值0以免越界。
,,,,,,如果([我][j]==3)
,,,(我)[j]=0, (i + 1) [j]=3;
,,,,}
,,如果([20](pl)==3,和一个[21](pl)==1)
,死亡+ +,
}
空白设置(空白),,,,,,,
,,,int sw=0, i, j。
,,,系统(cls);
,,,{sw=0; printf (" \ n游戏界面的大小:1。大2。小祝辞祝辞”);
,,null