C语言代码实现飞机大战

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

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

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

以下是源代码

#include<stdio.h>#include<stdio.h>#include<windows.h>   //将用户从键盘获得的输入进行输出 #include<conio.h>   //获得用户键盘的输入 //定义全局变量 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;i<high;i++) { for(j=0;j<width;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;   //飞机撞毁 游戏结束  system("cls"); printf("游戏结束!!!\n");  } else {  printf("分数 %d",score);  }  /** _getch();        //按任意键返回主界面    system("cls");    welcometogame(); */   } void endgame(){ int k,f; system("cls"); printf("输入1再玩一次,输入2返回主菜单,输入3退出游戏"); scanf("%d",&k); system("cls"); switch(k)  {  case 1:   printf("重新玩游戏");   system("cls");   startup();   // 数据初始化   show();   break;  case 2:   printf("返回主菜单");   system("cls");   welcometogame();   startup();      break;  case 3:printf("退出成功");   exit(0);   break;  default:   color(12);   gotoxy(40,28);   system("cls");   printf("输入错误,输入任意键回到主菜单");   _getch();  //输入任意键   welcometogame();    startup();      system("cls");  //清屏 } }  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<high)  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<high-2)  position_x++;  if((input=='a')&&position_y>1)  position_y--;  if((input=='d')&&position_y<width-2)  position_y++; if(input==' ') {  bullet_x=position_x-1;  bullet_y=position_y; } }} int main(){ system("mode con cols=100 lines=30");  //设置控制台的宽高 welcometogame(); startup();   // 数据初始化 //explation(); while(1)   // 游戏循环执行 { gotoxy(0,0); show();   // 显示画面 scoreandtips();  if(flag == 1) {  endgame();  } withoutInpute(); // 与用户输入无关的更新 withInpute();  // 与用户输入有关的更新 } return 0; } 

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

人的价值,在遭受诱-惑的一瞬间被决定

C语言代码实现飞机大战

相关文章:

你感兴趣的文章:

标签云: