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


  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
创建一个简单的打飞机游戏需要基本的图形处理、输入处理以及一些游戏逻辑。由于C语言本身的限制,它并不直接支持复杂的图形界面,所以我们会使用文本模式进行演示,实际游戏中会推荐使用更现代的游戏框架如SDL、SFML等。 以下是一个非常基础的命令行版本的“打地鼠”游戏概念: ```c #include <stdio.h> #include <stdlib.h> #include <time.h> #define SCREEN_WIDTH 40 #define SCREEN_HEIGHT 20 typedef struct { int x; int y; } Plane; void draw_screen(Plane plane) { printf("\033[1;H\033[J"); // 清屏并移动到屏幕顶部 for (int i = 0; i < SCREEN_HEIGHT; i++) { for (int j = 0; j < SCREEN_WIDTH; j++) { if (i == plane.y && j == plane.x) printf("*"); else printf(" "); } printf("\n"); } } int main() { srand(time(NULL)); // 设置随机种子 Plane enemy; enemy.x = rand() % SCREEN_WIDTH; // 飞机随机位置 enemy.y = SCREEN_HEIGHT - 1; // 飞机始终在底部 while (true) { draw_screen(enemy); // 显示当前画面 char input = getchar(); // 获取用户输入 if (input == 'q') break; // 如果按Q退出游戏 // 暂时忽略玩家操作,仅作为示例,实际游戏会检测碰撞并处理 } return 0; } ``` 这个程序定义了一个简单的“敌机”结构体,并在主循环中不断更新屏幕显示。用户可以通过按下 'q' 键来退出游戏。然而这只是一个非常基础的开始,真正的打飞机游戏通常会有更多的元素,如动态控制的飞机、敌人攻击、得分系统、碰撞检测等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值