c写的一个简单的打飞机游戏

我没用链表  ,直接数组写了     还得学习奋斗


#include "stdafx.h"
#include  "head.h"
#include <conio.h>
#include <Windows.h>
#include <time.h>
int x=-1,y=-1;
int nx=7,ny=19;
int key=0;
void 显示();
void 产生随机战机();
void 敌方战机移动();
void 我方战机移动();
void 画战机();
void 判断是否死亡();
void 子弹移动();
int _tmain(int argc, _TCHAR* argv[])
{
	srand(time(0));
	while(1)
	{
		system("cls");
		产生随机战机();
		画战机();
		显示();
		敌方战机移动();
		判断是否死亡();
		我方战机移动();
		子弹移动();
		Sleep(250);
	}
}
void 显示()
{
	for(int i=0;i<20;i++)
	{
		for(int j=0;j<15;j++)
		{
			if(qipan[i][j]==0)
			{
				printf("  ");
			}
			if (qipan[i][j]==1)
			{//我方战机
				printf("⊥");
			}
			if(qipan[i][j]==2)
			{//敌方战机
				printf(" ");
			}
			if(qipan[i][j]==4)
			{
				printf("1 ");
			}
		}
	printf("\n");
	}
}


void 子弹移动()
{
	for(int i=0;i<20;i++)
	{
		for(int j=0;j<15;j++)
		{
			if(qipan[i][j]==4)
			{
				qipan[i-1][j]=4;
				if(qipan[i-2][j]==2)
				{
					子弹移动();
					qipan[i-1][j]=0;
				}
				qipan[i][j]=0;

			}
		}
	}
}
void 画战机()
{
	for(int i=0;i<20;i++)
	{
		for(int j=0;j<15;j++)
		{
			if(qipan[i][j]==1)
			{
				qipan[i][j]=0;
			}
		}
	}

	qipan[ny][nx]=1;
}
void 产生随机战机()
{	
	
		do 
		{
			x=rand()%15;
			y=rand()%2;
			if((rand()%6)!=0)
				return;

		}
		while (qipan[y][x]==2);
		qipan[y][x]=2;

}
void 敌方战机移动()
{
	int a=0,b=0;
	for(int i=0;i<20;i++)
	{
		for(int j=0;j<15;j++)
		{
			if(qipan[i][j]==2)
			{
					qipan[i+1][j]=3;
					qipan[i][j]=0;
					a++;
			}
		}
	}
	for(int i=0;i<20;i++)
	{
		for(int j=0;j<15;j++)
		{
			if(qipan[i][j]==3)
			{
				qipan[i][j]=2;
				b++;
			}
		}
	}
}
void 我方战机移动()
{
	if(kbhit()!=0)
	{
		while(kbhit()!=0)
			key=getch();
		if(key==72)//上
			ny=ny-1;
		if(key==80)//下
			ny=ny+1;
		if(key==75)//左 
			nx=nx-1;	
		if(key==77)//右
			nx=nx+1;
		if(key==32)
		{
			qipan[ny-1][nx]=4;
		}
	}
}
void 判断是否死亡()
{
	int a=0;
	for(int i=0;i<20;i++)
	{
		for(int j=0;j<15;j++)
		{
			if(qipan[i][j]==1)
			{
				a++;
			}
		}
	}
	if(a!=1)
	{
		printf("游戏结束\n");
		system("pause");
		exit(0);
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值