本文实例为大家分享了C语言实现简单飞机大战的具体代码,供大家参考,具体内容如下

这个游戏的功能很单一,也就是“飞机大战”,哈哈哈哈。总共只有300多行代码左右,你也可以想想它会有多简陋,把它复制下来编译一下可以直接执行,需要的同学可以自取~

PS:我运行的环境是 dev c++,前提你要在C99的环境中执行

以下是源代码

#include#include#include//将用户从键盘获得的输入进行输出
#include//获得用户键盘的输入
//定义全局变量
int high,width; //定义边界
int position_x,position_y; //飞机位置
int bullet_x,bullet_y; //子弹位置
int enemy_x,enemy_y; //敌军飞机
int score; //获得分数
int flag; //飞机状态
void gotoxy(int x,int y); //光标移动到(x,y)位置
void welcometogame(); //初始化界面
int color(int c); //更改文字颜色
void explation(); //游戏右侧显示
void scoreandtips(); //显示游戏提示
void show(); //显示游戏界面
void endgame(); //游戏结束
/**
* 文字颜色函数
*/
int color(int c)
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), c); //更改文字颜色
return 0;
}
/**
* 设置光标位置
*/
void gotoxy(int x,int y)
{
COORD c;
c.X=x;
c.Y=y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),c);
}
void welcometogame() //开始界面
{
int n;
color(15);
gotoxy(43,10);
printf("飞 机 大 战");
color(11);
gotoxy(25, 22);
printf("1.开始游戏");
gotoxy(45, 22);
printf("2.游戏说明");
gotoxy(65, 22);
printf("3.退出游戏");
gotoxy(40,27);
color(3);
printf("请选择 1 2 3:");
color(14);
scanf("%d", &n); //输入选项
switch (n)
{
case 1:
system("cls");
show();
break;
case 2:
explation(); //游戏说明函数
break;
case 3:
exit(0); //退出游戏
break;
default:
color(12);
gotoxy(40,28);
printf("请输入1-3之间的数!");
_getch(); //输入任意键
system("cls"); //清屏
welcometogame();
}
}
void explation() //游戏提示
{
int i,j = 1;
system("cls");
color(10);
gotoxy(44,1);
printf("游戏说明");
color(2);
for (i = 3; i <= 28; i++) //输出上下边框===
{
for (j = 6; j <= 80; j++) //输出左右边框||
{
gotoxy(j, i);
if (i == 3 || i == 28) printf("=");
else if (j == 6 || j == 80) printf("||");
}
}
color(3);
gotoxy(20,5);
printf("1. W,A,S,D 分别控制飞机的上下左右移动");
color(10);
gotoxy(20,8);
printf("2. 按空格发射子弹,打中敌机即可得到一分");
color(14);
gotoxy(20,11);
printf("3.碰到敌机子弹死亡");
color(11);
gotoxy(20,14);
printf("4. ESC :退出游戏");
color(4);
gotoxy(20,17);
printf("5. 玩的愉快!!!");
color(7);
gotoxy(20,20);
printf("/*****按任意键返回主页面*****/");
_getch(); //按任意键返回主界面
system("cls");
welcometogame();
}
void scoreandtips()//游戏侧边提示
{
gotoxy(50,8);
color(14);
printf("游戏得分:%d ",score);
gotoxy(50,10);
printf("用W A S D 分别控制飞机的移动");
gotoxy(50,12);
printf("按下空格键即为发射炮弹");
gotoxy(50,14);
printf("@ 的样子就是敌人的飞机");
}
void HideCursor() // 用于隐藏光标
{
CONSOLE_CURSOR_INFO cursor_info = {1, 0}; // 第二个值为0表示隐藏光标
SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);
}
void startup() //数据初始化
{
high=20; //定义游戏界面的高度
width=40; //游戏界面的宽度
position_x=high-3; //定义飞机的初始位置
position_y=width/2;
bullet_x=0;
bullet_y=position_y;
enemy_x=0;
enemy_y=position_y;
score=0;
flag=0; //飞机完好
HideCursor();
}
void show() //显示界面
{
int i,j,k;
for(i=0;i0) //子弹上升效果
bullet_x--;
if((bullet_x==enemy_x)&&(bullet_y==enemy_y)) //子弹命中敌机
{
score++;
bullet_x=-1;
enemy_x=1;
enemy_y=2+rand()%width-2;
}
static int speed;
if(speed<30) //减慢敌机速度,不影响飞机和子弹速度
speed++;
if(speed==30)
{
if(enemy_x1)
position_x--;
if((input=='s')&&position_x1)
position_y--;
if((input=='d')&&position_y