c语言编写飞机大战代码
时间: 2024-01-19 17:02:31 浏览: 112
C语言实现简单飞机大战
飞机大战是一款经典的游戏,使用C语言编写可以让你更深入地了解游戏的实现原理。下面是一个简单的飞机大战代码示例:
```
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <windows.h>
#define WIDTH 50
#define HEIGHT 25
int x, y; // 飞机的坐标
int bullet_x, bullet_y; // 子弹的坐标
int enemy_x, enemy_y; // 敌机的坐标
int score; // 得分
void gotoxy(int x, int y) // 光标移动函数
{
COORD pos = {x, y};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);
}
void draw_plane() // 绘制飞机
{
gotoxy(x, y);
printf(" /\\");
gotoxy(x, y+1);
printf(" | |");
gotoxy(x, y+2);
printf("/----\\");
}
void draw_bullet() // 绘制子弹
{
gotoxy(bullet_x, bullet_y);
printf("|");
}
void draw_enemy() // 绘制敌机
{
gotoxy(enemy_x, enemy_y);
printf(" /\\");
gotoxy(enemy_x, enemy_y+1);
printf(" | |");
gotoxy(enemy_x, enemy_y+2);
printf("/----\\");
}
void update_bullet() // 更新子弹位置
{
bullet_y--;
if (bullet_y <= 0) // 子弹超出屏幕范围,重置位置
{
bullet_x = x+2;
bullet_y = y-1;
}
}
void update_enemy() // 更新敌机位置
{
enemy_y++;
if (enemy_y >= HEIGHT) // 敌机超出屏幕范围,重置位置
{
enemy_x = rand() % (WIDTH-6) + 3;
enemy_y = 0;
score++; // 得分加一
}
}
void check_collision() // 检测碰撞
{
if (bullet_x == enemy_x+1 && bullet_y == enemy_y+2) // 子弹击中敌机
{
enemy_x = rand() % (WIDTH-6) + 3;
enemy_y = 0;
bullet_x = x+2;
bullet_y = y-1;
score += 10; // 得分加十
}
if ((x == enemy_x && y == enemy_y) || (x+3 == enemy_x+4 && y == enemy_y)) // 飞机与敌机相撞
{
system("cls");
printf("Game Over!\n");
printf("Your Score: %d\n", score);
exit(0);
}
}
int main()
{
x = WIDTH / 2 - 1;
y = HEIGHT - 4;
bullet_x = x+2;
bullet_y = y-1;
enemy_x = rand() % (WIDTH-6) + 3;
enemy_y = 0;
score = 0;
while (1)
{
system("cls"); // 清屏
draw_plane(); // 绘制飞机
draw_bullet(); // 绘制子弹
draw_enemy(); // 绘制敌机
update_bullet(); // 更新子弹位置
update_enemy(); // 更新敌机位置
check_collision(); // 检测碰撞
Sleep(50); // 等待50毫秒
if (_kbhit()) // 检测键盘输入
{
char ch = _getch();
if (ch == 'a' && x > 0) x--; // 左移
if (ch == 'd' && x < WIDTH-3) x++; // 右移
if (ch == ' ') // 发射子弹
{
bullet_x = x+2;
bullet_y = y-1;
}
}
}
return 0;
}
```
这个代码示例实现了一个简单的飞机大战游戏,玩家可以使用键盘左右箭头控制飞机移动,空格键发射子弹,得分规则为击落敌机得10分,游戏结束条件为飞机与敌机相撞。你可以根据自己的需求对代码进行修改和扩展。
阅读全文