c/c++语言开发共享C语言控制台实现字符飞机大战

本文实例为大家分享了c语言实现字符飞机大战的具体代码,供大家参考,具体内容如下先看看效果吧大一的时候做的,当时没有好的代码习惯,所以代码有点乱,代码直接复制就能用了,功能可以自行拓展。代码:#incl

c/c++开发分享C语言控制台实现字符飞机大战实例为大家分享了c语言实现字符飞机大战的具体代码,供大家参考,具体内容如下

先看看效果吧

大一的时候做的,当时没有好的代码习惯,所以代码有点乱,代码直接复制就能用了,功能可以自行拓展。

C语言控制台实现字符飞机大战

代码:

  #include <stdio.h>  #include <stdlib.h>  #include <conio.h>  int main () {   int life=6;//生命   int i,j/*循环*/,plane_x,plane_y/*飞机所在坐标*/,a;   plane_x=8,plane_y=15;//初始化飞机   char getc; //方向获取   /*构造地图*/   int score=0; //得分 // 1 1 1 1 1 1 1   char map[17][17]= { //0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6   {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},//0   {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},//1   {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},//2   {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},//3   {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},//4   {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},//5   {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},//6   {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},//7   {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},//8   {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},//9   {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},//10   {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},//11   {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},//12   {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},//13   {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},//14   {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},//15   {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}   };//16   for(;;) { //实现游戏循环   int x,y;//随机出现的敌机   x=rand()%15+1;   y=rand()%14+1;   map[y][x]=4;   map[plane_y][plane_x]=2;//初始化飞机   for(i=0; i<17; i++) { //打印地图   for(j=0; j<17; j++) {   if(map[i][j]==1)//1为墙   printf("▓");   else if(map[i][j]==0)   printf(" ");   else if(map[i][j]==2)//2为飞机 初始map[15][7] (16,8)   printf("ж");   else if(map[i][j]==3)//3 子弹   printf("!!");   else if(map[i][j]==4)//4 敌机   printf("ψ");   }   printf("n");   } //打印地图结束   printf("n ж生命:");      for(i=0; i<life; i++)   printf("■");   printf("n");   printf(" 得分:%dnn 控制:n w:上ts:下n a:左ts:右n e:发射子弹",score);   for(i=0; i<17; i++) { //清除子弹   for(j=0; j<17; j++) {   if(map[i][j]==3)   map[i][j]=0;   }   }//清除子弹结束   for(i=0; i<17; i++) { //清除飞机轨迹   for(j=0; j<17; j++) {   if(map[i][j]==2)   map[i][j]=0;   }   }//清除飞机轨迹 结束   if(plane_x>0&&plane_x<16&&plane_y>0&&plane_y<16) {   getc=getch();   if (getc=='d') { //wasd   ++plane_x;   if(plane_x<=0)   plane_x=1;   else if(plane_x>=16)   plane_x=15;   else if(map[plane_y][plane_x]==4) { //碰撞敌机,退出   life--;   if(life==0)   break;   }   }   if (getc=='a') {   --plane_x;   if(plane_x<=0)   plane_x=1;   else if(plane_x>=16)   plane_x=15;   else if(map[plane_y][plane_x]==4) { //碰撞敌机,当life==0退出   life--;   if(life==0)   break;   }   }   if (getc=='w') {   --plane_y;   if(plane_y<=0)   plane_y=1;   else if(plane_y>=16)   plane_y=15;   else if(map[plane_y][plane_x]==4) { //碰撞敌机,退出   life--;   if(life==0)   break;   }   }   if (getc=='s') {   ++plane_y;   if(plane_y<=0)   plane_y=1;   else if(plane_y>=16)   plane_y=15;   else if(map[plane_y][plane_x]==4) { //碰撞敌机,退出   life--;   if(life==0)   break;   }   }   if (getc=='e') {      for(a=plane_y-1; a>=1; a--) {   if(map[a][plane_x]==4) { //   score++;   map[a][plane_x]=0;//清除敌机   break;   }   map[a][plane_x]=3;   }   }   }   system("cls");   }   system("cls");   printf("总分:%d",score);   getch();   return 0;  }

以上就是c/c++开发分享C语言控制台实现字符飞机大战的全部内容,希望对大家的学习有所帮助,也希望大家多多支持<计算机技术网(www.ctvol.com)!!>。

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/596261.html

(0)
上一篇 2021年5月8日
下一篇 2021年5月8日

精彩推荐