飞机

#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;
} 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值