飞机大战c语言
时间: 2023-07-03 14:13:45 浏览: 175
c语言飞机大战
5星 · 资源好评率100%
飞机大战是一种经典的游戏,可以使用C语言来实现。游戏的基本思路是通过控制一个飞机,在屏幕上不断地射击敌机并躲避敌机的攻击,直到击败所有敌人为止。以下是一个简单的飞机大战游戏的C语言代码示例:
```c
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
#define MAX_X 70 // 游戏屏幕宽度
#define MAX_Y 20 // 游戏屏幕高度
int x, y; // 飞机的坐标
int score; // 得分
int enemyCount = 10; // 敌机数量
int sleepTime = 100; // 刷新间隔时间
// 飞机移动函数
void move(int dx, int dy) {
if (x + dx >= 0 && x + dx < MAX_X && y + dy >= 0 && y + dy < MAX_Y) {
x += dx;
y += dy;
}
}
// 显示函数
void show() {
system("cls"); // 清屏
// 显示飞机
for (int i = 0; i < MAX_X; i++) {
if (i == x) {
printf("A");
} else {
printf(" ");
}
}
printf("\n");
// 显示敌机
srand(time(NULL));
for (int i = 0; i < enemyCount; i++) {
int ex = rand() % MAX_X;
int ey = rand() % MAX_Y;
printf("\033[%d;%dH", ey + 1, ex + 1); // 设置光标位置
printf("*");
}
// 显示得分
printf("\033[%d;1H", MAX_Y + 1); // 设置光标位置
printf("Score: %d\n", score);
}
// 碰撞检测函数
int checkCollision() {
for (int i = 0; i < enemyCount; i++) {
int ex = rand() % MAX_X;
int ey = rand() % MAX_Y;
if (ex == x && ey == y) {
return 1;
}
}
return 0;
}
int main() {
// 初始化
x = MAX_X / 2;
y = MAX_Y - 1;
score = 0;
// 游戏循环
while (1) {
show();
int dx = 0, dy = 0;
char ch = getch();
if (ch == 'a') {
dx = -1;
} else if (ch == 'd') {
dx = 1;
} else if (ch == 'w') {
dy = -1;
} else if (ch == 's') {
dy = 1;
}
move(dx, dy);
if (checkCollision()) {
break;
}
if (score == enemyCount) {
break;
}
Sleep(sleepTime);
}
// 游戏结束
system("cls");
printf("\033[%d;%dH", MAX_Y / 2, MAX_X / 2 - 5); // 设置光标位置
printf("Game Over\n");
printf("\033[%d;%dH", MAX_Y / 2 + 1, MAX_X / 2 - 5); // 设置光标位置
printf("Score: %d\n", score);
return 0;
}
```
这个代码示例实现了一个简单的飞机大战游戏,玩家可以通过键盘控制飞机的移动来躲避敌机的攻击,并通过射击敌机来得分。游戏结束条件是玩家被击中或者击败所有敌机。
阅读全文