#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<windows.h>
int x=20,y=10; //
int zidan_x=-1,zidan_y=-1; //控制子弹
int bx=0,by=7; //靶子
char move='q'; //控制飞机左右上下
int score=0;
int A=0; //结束游戏条件是A=1;
int B=0; //B=1;游戏加强
void gotoxy(int x,int y)
{
HANDLE handle=GetStdHandle(STD_OUTPUT_HANDLE);
COORD pos;
pos.X=x;
pos.Y=y;
SetConsoleCursorPosition(handle,pos);
}
void dfeiji(int y) //向右飞机
{
for(int i=0;i<y+6;i++)
printf(" ");
printf("|\n");
for(int i=0;i<y+5;i++)
printf(" ");
printf("/ \\\n");
for(int i=0;i<y+5;i++)
printf(" ");
printf("| |\n");
for(int i=0;i<y;i++)
printf(" ");
printf("/--!-/ \\-!-\\\n");
for(int i=0;i<y+1;i++)
printf(" ");
printf("\\---\\0/--/\n");
for(int i=0;i<y+5;i++)
printf(" ");
printf("++\n");
for(int i=0;i<y+4;i++)
printf(" ");
printf("=|=|=\n");
}
void afeiji(int y) //向左飞机
{
for(int i=0;i<y+6;i++)
printf(" ");
printf("|\n");
for(int i=0;i<y+5;i++)
printf(" ");
printf("/ \\\n");
for(int i=0;i<y+5;i++)
printf(" ");
printf("| |\n");
for(int i=0;i<y;i++)
printf(" ");
printf("/-!-/ \\-!--\\\n");
for(int i=0;i<y+1;i++)
printf(" ");
printf("\\--\\0/---/\n");
for(int i=0;i<y+5;i++)
printf(" ");
printf("+++\n");
for(int i=0;i<y+4;i++)
printf(" ");
printf("=|=|=\n");
}
void feiji(int y) //正常飞机
{
for(int i=0;i<y+6;i++)
printf(" ");
printf("|\n");
for(int i=0;i<y+5;i++)
printf(" ");
printf("/ \\\n");
for(int i=0;i<y+5;i++)
printf(" ");
printf("| |\n");
for(int i=0;i<y;i++)
printf(" ");
printf("/--!-/ \\-!--\\\n");
for(int i=0;i<y+1;i++)
printf(" ");
printf("\\---\\0/---/\n");
for(int i=0;i<y+5;i++)
printf(" ");
printf("+++\n");
for(int i=0;i<y+4;i++)
printf(" ");
printf("=|=|=\n");
}
void show () //展示
{
system("cls");
//gotoxy(0,0);
printf("得分:%d\n",score);
for(int i=0;i<x;i++)
{
for(int j=0;j<30;j++)
{
if(j==0||j==29)
{
printf("|");
}else
{
printf(" ");
}
if(zidan_x==i&&zidan_y==j)
{
j++;
printf("|");
}
if(bx==i&&by==j)
{
j++;
printf("U");
}
}
printf("\n");
}
}
void updatewithinput() //输入有关的操作
{
if(kbhit()) //按键时操作
{
move=getch();
if(move=='s') //向后
x++;
if(move=='w'){ //向前
x--;
if(x<0){
x=0;
}
}
if(move=='a'){ //向左
y--;
afeiji(y);
if(y<2){
y=2;
}
}
if(move=='d') //向右
{
y++;
if(y>18)
{
y=17;
}
dfeiji(y);
}
if(move==' ') //空格时发射子弹
{
zidan_x=x-1;
printf("\a");
zidan_y=y+5;
}
//增加暂停功能
if(move==27)
{
printf("游戏已暂停!");
system("pause");
}
}
}
void updatawithoutinput() //输入无关的操作
{
if((zidan_x==bx+1)&&(zidan_y==by))
{
score++;
bx=0;
zidan_x=-1;
while(1)
{
by=rand()%85;
if(by>6&&by<20)
{
break;
}
}
}
zidan_x--; //子弹向上
if(move!='a'&&move!='d') //判断飞机的模式
feiji(y);
move='q';
static int num=0;
if(num>5&&score<11)
{
bx++;
if(bx>=x)
{
bx=0;
score=score-10;
while(1)
{
by=rand()%85;
if(by>6&&by<20)
{
break;
}
}
}
num=0;
}
if(num>1&&score>10||B==1)
{
bx++;
if(B==0)
{
printf("情报上说:\n是对面元首的飞船!\n");
printf(".....\n");
system("pause");
printf("尊敬的地球的人民,在这次的战争我们都损失惨重\n");
system("pause");
printf("我在此代表火星,向你们恳请和平,用我们的技术换你们的土地,这样对我们都好\n");
system("pause");
printf("不要听他的鬼话!赶快击落他!\n");
printf("___________________________\n");
printf("ok回车即结束这场战争!或者击败他们!(任意+回车)\n");
char c[10]; //输入条件结束或者加强
scanf("%s",c);
if(strcmp(c,"ok")==0||strcmp(c,"OK")==0)
{
system("cls");
printf("火星人和地球人一起在地球繁衍生息最终在地球上只有火星裂吗人\n");
system("pause");
printf("若百年后,太阳变大,所有人在地球上的生物靠着火星人的空间转移技术到qove-18号行星上继续生存这");
system("pause");
A=1;
}else
{
printf("火星所有人:为了后代!为了种族!奥里给!\n");
system("pause");
B=1;
}
}
if(bx>=x)
{
bx=0;
while(1)
{
by=rand()%85;
if(by>6&&by<20)
{
break;
}
}
score=score-10;
}
num=1;
}
num++;
if(score<0)
{
system("cls");
printf("我们的星球被毁灭了!\n这都怪你!!!");
system("pause");
A=1;
}
if(score>20)
{
system("cls");
printf("我们胜利了!我们是太阳系的霸主!可惜没有拿到关于火星人的空间转移器的图纸\n");
printf("pause");
printf("若百年,太阳不断地变大,地球人决定让人类精英乘坐火箭离开了他们的地球,剩下的人类和之前为了生存空间而冲锋的火星人的下场一样.");
system("pause");
A=1;
}
}
void kaishi()
{
printf("副手:少校快醒醒!现在只剩你的飞船了,快阻止火星人登陆地球!");
system("pause");
printf("副手:移动w a d s 发射炮弹 空格\n");
system("pause");
printf("副手:火星人很狡猾!他们的U形飞船上的AI一定程度上可以躲避我们的炮弹!\n");
system("pause");
printf("副手:如果我们火星人的有空间转移技术的话,就不会牺牲这么多人了,嘤嘤嘤~\n");
system("pause");
}
void HideCursor()
{
CONSOLE_CURSOR_INFO cursor_info = {1, 0};
SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);
}
int main()
{
kaishi();
while(A!=1)
{
HideCursor();
show();
updatewithinput();
updatawithoutinput();
}
printf("游戏结束");
return 0;
}
飞机
最新推荐文章于 2024-07-20 02:33:07 发布