c语言结构体实现双人飞机大战
时间: 2024-01-12 16:05:06 浏览: 172
C语言结构体可以用来实现双人飞机大战游戏。你可以使用结构体来定义飞机的属性,例如坐标、血量、位置和类型等。然后,通过使用数组来存储多个飞机的结构体对象,实现多个飞机的移动和碰撞检测。
以下是一个简单的示例代码,演示了如何使用结构体实现双人飞机大战游戏:
```c
#include <stdio.h>
#include <conio.h>
#define MAX_PLAYERS 2
// 定义飞机结构体
typedef struct {
int x;
int y;
int health;
char type;
} Plane;
// 初始化飞机
void initPlanes(Plane planes[]) {
for (int i = 0; i < MAX_PLAYERS; i++) {
planes[i].x = 0;
planes[i].y = 0;
planes[i].health = 100;
planes[i].type = 'A' + i;
}
}
// 移动飞机
void movePlane(Plane *plane, char direction) {
switch (direction) {
case 'w':
plane->y--;
break;
case 's':
plane->y++;
break;
case 'a':
plane->x--;
break;
case 'd':
plane->x++;
break;
}
}
// 碰撞检测
int checkCollision(Plane planes[]) {
for (int i = 0; i < MAX_PLAYERS; i++) {
for (int j = i + 1; j < MAX_PLAYERS; j++) {
if (planes[i].x == planes[j].x && planes[i].y == planes[j].y) {
return 1;
}
}
}
return 0;
}
int main() {
Plane planes[MAX_PLAYERS];
char input;
initPlanes(planes);
while (1) {
// 清空屏幕
system("cls");
// 打印飞机位置
for (int i = 0; i < MAX_PLAYERS; i++) {
printf("Player %c: (%d, %d)\n", planes[i].type, planes[i].x, planes[i].y);
}
// 获取用户输入
input = getch();
// 移动飞机
for (int i = 0; i < MAX_PLAYERS; i++) {
movePlane(&planes[i], input);
}
// 碰撞检测
if (checkCollision(planes)) {
printf("Collision detected!\n");
break;
}
}
return 0;
}
```
这个示例代码中,我们定义了一个`Plane`结构体来表示飞机,包含了飞机的坐标、血量和类型。然后,我们使用`initPlanes`函数初始化了两个飞机对象,并使用`movePlane`函数来移动飞机。最后,我们使用`checkCollision`函数来检测飞机之间是否发生碰撞。
阅读全文