新萌做的飞机大作战小游戏

新萌做的飞机大作战小游戏

//说实话我就是一个新萌不怎么会用函数和指针还有后面等等东西,不然可以做的更加好
//而且我学C语言没有多久,现在都是看代码自学,因为以前学过一点点,所以现在算是复习吧
//以前是真的没有时间,那个时候8年级有电脑,只是一个星期放假俩天,只有一本书,而且还是网上买的谭浩强的c程序设计(第四版)
//那个时候只有这书最便宜了,那个时候我记得我天天看,看到指针头真的大了,哈哈哈哈,完全懵逼了
//现在两年半过去了我还是热爱编程,现在我就重新学C语言,现在我不会像以前一样只看书了,现在的我全是看代码,慢慢理解
//不懂的才会去看
//可能我讲的有点多,毕竟这是我第一次在 CSDN 发表文章,可能我的文采有点垃圾,请大佬勉强看
//最后说一句欢迎大佬光临``
代码在下面

#include 
#include 
#include 
int main () {int life=3;//三条生命int i,j;//循环int plane_x=8,plane_y=15;//坐标,这个很重要int n=13;//这个说不清楚,反正是调试子弹的一个重要数值char getc; //方向获取int score=0;//得分/*构造地图*/             //       1 1 1 1 1 1 1char 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},};//16for(;;) { //实现游戏循环int x=rand()%15+1;//敌方飞机的xint y=rand()%14+1;//敌方飞机的yMap[x][y]=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)//0为位置的序号printf("  ");else if(Map[i][j]==2)//2为飞机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(" 得分:%d\n\n",score);//显示得分printf("\n");
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') { //d开始++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)//d方向碰到敌人的飞机会怎么样看下面代码{life--;if(life==0)break;}//结束}//d结束if (getc=='a') { //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)//a方向碰到敌人的飞机会怎么样看下面代码{life--;if(life==0)break;}//结束}//a结束if (getc=='w') { //w开始--plane_y;--n;//子弹对墙的距离,递减if(plane_y<=0)plane_y=1;else if(plane_y>16){plane_y=15;}else if(n>14)//这样设置是为了防止bug再次出现{n=13;}else if(n<=0)//这个也是为了防止bug出现不过也可不设置{n=0;}else if(Map[plane_y][plane_x]==4)//w方向碰到敌人会怎么样看下面代码{life--;if(life==0)break;}//结束}//w结束if (getc=='s') { //s开始++plane_y;if(plane_y<1)plane_y=1;else if(plane_y>=16){plane_y=15;}else if(n<=13)//这个用我的这个思维做这个代码这个一定要放在if()里面,一是为了防止bug出现二是这样更好调试,若是在++plane_y下面会很难调试,这个东东让我想了好久{++n;}else if(n>14)//老样子防止出现bug{n=13;}else if(Map[plane_y][plane_x]==4)//s方向碰到敌人会怎么样看下面代码{life--;if(life==0)break; }//结束}//s结束if (getc=='j') { //攻击开始for(i=0;i<n;i++){Map[plane_y][plane_x]=3;plane_y--;if(Map[plane_y][plane_x]==4){score++;//循环分数Map[plane_y][plane_x]=0;}}if(Map[plane_y][plane_x]=3)//因为我这里设置错了所以只能自己慢慢想成这样了,求大佬改正{for(i=0;i<n;i++){Map[plane_y][plane_x]=3;plane_y++;if(Map[plane_y][plane_x]==4){score++;//循环分数Map[plane_y][plane_x]=0;}}}}}system("cls");}system("cls");getch();return 0;
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部