空战游戏c语言课程设计,C语言实现简单飞机大战

编程入门 行业动态 更新时间:2024-10-26 05:21:30

空战游戏c<a href=https://www.elefans.com/category/jswz/34/1770116.html style=语言课程设计,C语言实现简单飞机大战"/>

空战游戏c语言课程设计,C语言实现简单飞机大战

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

定义四个函数实现飞机大战

#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)位置

{

HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);

COORD pos;

www.cppcnspos.X = x;

pos.Y = y;

SetConsoleCursorPosition(handle,pos);

}

void HideCursor() // 用于隐藏光标

{

CONSOLE_CURSOR_INFO cursor_info = {1, 0}; // 第二个值为0表示隐藏光标

SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &a;cursor_info);

}

void startup() //数据初始化

{

high=18;

width=26;

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;

for(i=0;i

{

for(j=0;j

{

if(flag)

break;

else if((i==position_x)&&(

作者的另一段代码:C语言实现空战游戏,也很棒,分享给大家:

#include

#include

#include

#define High 27 //定义边界

#define Width 45

#define EnemyNum 5 //敌机数目

//定义全局变量

int canvas[High][Width]={0}; //定义元素,0为空格,1为飞机,2为子弹,3为敌机,4为右下边界

int position_x,position_y; //飞机坐标

int enemy_x[EnemyNum],enemy_y[EnemyNum]; //敌机坐标

int score; //得分

int Speed; //敌机速度

int bulletwidth; //子弹宽度

void HideCursor() //隐藏光标

{

CONSOLE_CURSOR_INFO cursor_info = {1, 0};

SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);

}

void gotoxy(int x,int y) //光标移动到(x,y)位置

{

HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);

COORD pos;

pos.X = x;

pos.Y = y;

SetConsoleCursorPosition(handle,pos);

}

void startup() //数据初始化

{

position_x=High-2; //初始化飞机位置

position_y=Width/2;

canvas[position_x][position_y]=1;

bulletwidth=0; //初始化子弹宽度

Speed=25; //敌机初始最小速度

int k;

for(k=0;k

{

enemy_x[k]=rand()%2; //初始化敌机位置

enemy_y[k]=rand()%Width;

canvas[enemy_x[k]][enemy_y[k]]=3;

}

score=0; //得分初始化

HideCursor();

}

void show() //显示界面

{

int i,j;

gotoxy(0,0);

for(i=0;i<=High;i++)

{

for(j=0;j<=Width;j++)

{

if(canvas[i][j] == 1)

printf("*"); //输出飞机

else if(canvas[i][j]==2)

printf("|"); //输出子弹

else if(canvas[i][j]==3)

printf("@"); //输出敌机

else if(canvas[i][j]==4)

printf("#"); //输出边界#

else

printf(" "); //输出空格

}

printf("\n");

}

printf("得分:%d\n",score);

}

void updateWithoutInput() //无需用户输入的更新

{

int i,j,k;

for(i=0;i

{

for(j=0;j

{

if(canvas[i][j]==2)

{

for(k=0;k

{

if(i==enemy_x[k] && j==enemy_y[k]) //击中敌机

{

score++;

if(score==5||score==10) //得分达到标准子弹加宽

bulletwidth++;

canvas[enemy_x[k]][enemy_y[k]]=0; //生成新的敌机

enemy_x[k]=rand()%2;

enemy_y[k]=rand()%Width;

canvas[enemy_x[k]][enemy_y[k]]=3;

}

}

canvas[i][j]=0; //子弹自动上升

if(i>0)

canvas[i-1][j]=2;

}

}

}

for(k=0;k

{

if(enemy_x[k]>High) //生成新的敌机

{

canvas[enemy_x[k]][enemy_y[k]]=0;

enemy_x[k]=rand()%2;

enemy_y[k]=rand()%Width;

canvas[enemy_x[k]][enemy_y[k]]=3;

}

}

static int speed=0;

if(speed

speed++;

if(speed==Speed)

{

for(k=0;k

{

canvas[enemy_x[k]][enemy_y[k]]=0; //敌机自动下落

enemy_x[k]++;

canvwww.cppcnsas[enemy_x[k]][enemy_y[k]]=3;

}

speed=0;

}

for(k=0;k

{

if(enemy_x[k]==position_x&&enemy_y[k]==position_y) //飞机撞毁

{

printf("游戏结束\n");

exit(0);

}

}

}

void updateWithInput() //需用户输入的更新

{

char input;

if(kbhit())

{

input=getch();

if(input=='w' && position_x>0)queSxr //控制飞机方向

{

canvas[position_x][position_y]=0;

position_x--;

canvas[position_x][position_y]=1;

}

else if(input=='s' && position_x

{

canvas[position_x][position_y]=0;

position_x++;

canvas[position_x][position_y]=1;

}

else if(input=='a' && position_y>0)

{

canvas[position_x][position_y]=0;

position_y--;

canvas[position_x][position_y]=1;

}

else if(input=='d' && position_y

{

canvas[position_x][position_y]=0;

position_y++;

canvas[position_x][position_y]=1;

}

else if(input=' ') //space发射子弹

{

int left,right;

int x;

left=position_y-bulletwidth;

if(left<0)

left=0;

right=position_y+bulletwidth;

if(right>Width-1)

right=0;

for(x=left;x<=right;x++)

canvas[position_x-1][x]=2;

}

}

}

int main()

{

startup();

system("color 2f");

while(1)

{

show(); //显示界面

updateWithoutInput(); //无需用户输入的更新

updateWithInput(); //需用户输入的更新

}

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

本文标题: C语言实现简单飞机大战

本文地址: .html

更多推荐

空战游戏c语言课程设计,C语言实现简单飞机大战

本文发布于:2024-02-25 18:21:38,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1699886.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:语言   空战   课程设计   大战   飞机

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!