本文实例为大家分享了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;

pos.X = x;

pos.Y = y;

SetConsoleCursorPosition(handle,pos);

}

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

{

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

SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &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)&&(j==position_y)) //飞机坐标

printf("*");

else if((i==enemy_x)&&(j==enemy_y)) //敌机坐标

printf("*");

else if((i==bullet_x)&&(j==bullet_y)) //子弹坐标

printf("|");

else if ((j==width-1)||(i==high-1)||(j==0)||(i==0)) //打印边界

printf("#");

else

printf(" ");

}

printf("\n");

}

printf("\n");

if((position_x==enemy_x)&&(position_y==enemy_y))

{

flag=1; //飞机撞毁 游戏结束

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

printf("游戏结束");

}

else

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

}

void withoutInpute() //与用户输入无关

{

if(bullet_x>0) //子弹上升效果

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_x

enemy_x++;

else

{

enemy_x=0;

enemy_y=2+rand()%width-2;

}

speed=0;

}

}

void withInpute() //与用户输入有关

{

char input;

if(kbhit()) //控制飞机方向

{

input=getch();

if((input=='w')&&position_x>1)

position_x--;

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

position_x++;

if((input=='a')&&position_y>1)

position_y--;

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

position_y++;

if(input==' ')

{

bullet_x=position_x-1;

bullet_y=position_y;

}

}

}

int main()

{

system("color 2f");

startup(); // 数据初始化

while(1) // 游戏循环执行

{

gotoxy(0,0);

show(); // 显示画面

withoutInpute(); // 与用户输入无关的更新

withInpute(); // 与用户输入有关的更新

}

}

作者的另一段代码: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]++;

canvas[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) //控制飞机方向

{

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语言编写飞机大战程序,C语言实现简单飞机大战相关推荐

  1. 用c语言编写研究生录取程序,C语言_课程设计---研究生初试录取管理系统.doc

    计算机科学与技术系 课程设计任务书 2010-2011年第二学期 课程 C语言课程设计 课程设计名称 研究生初试录取管理系统 专业班级 10 计本4 指导教师 2011年6月 一. 课程设计目的 将理 ...

  2. C语言编写一下棋程序,C语言编写的与电脑下棋程序代码

    C语言编写的与电脑下棋程序代码 C语言编写的与电脑下棋程序代码 #include "stdafx.h" #include using namespace std; void che ...

  3. c语言字符串dna,转录流程(c语言编写DNA转录程序)

    c语言编写DNA转录程序 AT,CG 进行互换就可以了 #include #include main() { char input[50];/*Defined to store the DNA cod ...

  4. 使用C语言编写测速程序

    可以使用 C 语言编写测速程序.要实现这个功能,你可以使用 C 语言中的时间函数来计算程序运行的时间. 具体来说,可以使用 clock() 函数来计算程序运行的时间.这个函数返回从程序开始运行到调用 ...

  5. 编写程序C语言 用递归法求n,用C语言编写一个递归程序用来计算:1*2+2*3+3*4+.+(n-1)*n...

    用C语言编写一个递归程序用来计算:1*2+2*3+3*4+.+(n-1)*n以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧 ...

  6. 在Linux环境下用C语言编写一个乘法程序mult,从命令行接收两个数字,然后输出其乘积;再用C语言编写一个exec1程序,在程序中使用execvp调用mult程序计算5与10的乘积。

    在Linux环境下用C语言编写一个乘法程序mult,从命令行接收两个数字,然后输出其乘积:再用C语言编写一个exec1程序,在程序中使用execvp调用mult程序计算5与10的乘积. 1.mult. ...

  7. 用C语言编写低耦合程序

    用C语言编写低耦合程序 耦合的定义 低耦合的优点 实现例子 普通的实现方式 低耦合的实现方式 耦合的定义   耦合,是对模块间关联程度的度量. 模块间的耦合度是指模块之间的依赖关系,其耦合性越强,同时 ...

  8. 使用Scala语言编写Spark应用程序实现数据去重

    使用Scala语言编写Spark应用程序实现数据去重 一.题目需求 二.建立目录结构 (一)创建 sparkapp4 文件夹并切换 (二)创建 data 文件夹(存放A.txt B.txt) (三)创 ...

  9. c语言如何自定义运算公式,怎样用C语言编写数学公式 如何用C语言输入数学公式...

    导航:网站首页 > 怎样用C语言编写数学公式 如何用C语言输入数学公式 怎样用C语言编写数学公式 如何用C语言输入数学公式 相关问题: 匿名网友: 1.C语言有现场的常用数学函数,所在函数库为m ...

  10. C语言编写一个赋值程序,实验2 用C语言编写简单程序——2.1 基本数据处理.doc

    实验2 用C语言编写简单程序--2.1 基本数据处理 实验2 用C语言编写简单程序 2.1 基本数据处理 [实验目的] (1)掌握算术表达式和赋值表达式的使用. (2)掌握基本输出函数的使用. (3) ...

最新文章

  1. VB.NET模块的总结(一)精简版
  2. [Ruby编程语言].弗拉纳根_松本行弘读书笔记
  3. mysql中修改表的默认编码和表中字段的编码
  4. .net framework 4.0环境下遇到版本不同编译不通过的解决办法
  5. CF Gym102059 H. Fractions
  6. CompletableFuture详解~runAsync
  7. facebook快捷登录 pc_华为发布首款商用台式机,商用PC布局更进一步
  8. 注塑机结构及辅助设备详解
  9. kafka和ZK的关系
  10. 82、组合分配式气体灭火系统所需的气体单向阀的数量
  11. Unity通用计时器
  12. 985大学和二本计算机,985大学名单排名(二本)
  13. java导入导出excel文件
  14. 漫谈数据保护和个人信息加密
  15. 几种常用的特征选择方法
  16. 两种方法设置Word文档的“只读模式”
  17. 本科计算机专业sci好写吗,保研经验:本科发表4篇SCI,横扫北大、清华、中科大、中科院、浙大17个OFFER!...
  18. 【输入一个数并判断是质数还是合数】
  19. matlab使用webcam获取摄像头图像
  20. 程序员如何准备技术面试

热门文章

  1. 【转】java将excel文件转换成txt格式文件
  2. HKC PG27P5U评测怎么样
  3. delphi android 打印机,delphi中如何检测打印机状态?(在线等) ( 积分: 100 )
  4. Python最吃香的5个就业方向,薪资收入也非常可观!
  5. css 将图片折角,纯css3实现的折角效果(无需图片和js代码)
  6. Windows渗透与提权:技巧总结篇
  7. Unity中录制VR全景视频(可录制UGUI)
  8. Linux下把ncsi设置成OCP模式,一种支持NCSI信号管理功能自动切换的电路及服务器的制作方法...
  9. 读取阿里云服务器图片到本地
  10. Power BI集成Power Apps,轻松实现用户在报告中任意输入信息