用c语言编写一个格斗小游戏
时间: 2023-09-06 12:11:29 浏览: 69
好的,下面是一个简单的格斗小游戏的示例代码,你可以参考一下:
```c
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <windows.h>
#define MAX_HP 100
#define MAX_ATTACK 50
#define MAX_DEFENSE 20
struct character {
char *name;
int hp;
int attack;
int defense;
};
struct character player = {"Player", MAX_HP, MAX_ATTACK, MAX_DEFENSE};
struct character enemy = {"Enemy", MAX_HP, MAX_ATTACK, MAX_DEFENSE};
void clear_screen() {
system("cls");
}
void draw_game() {
clear_screen();
printf("%s:%d/%d\n\n", player.name, player.hp, MAX_HP);
printf("%s:%d/%d\n\n", enemy.name, enemy.hp, MAX_HP);
printf("=====================\n\n");
}
void attack(struct character *attacker, struct character *defender) {
int damage = attacker->attack - defender->defense;
if (damage < 0) {
damage = 0;
}
defender->hp -= damage;
printf("%s attacks %s and deals %d damage!\n", attacker->name, defender->name, damage);
}
void defend(struct character *defender) {
defender->defense += 5;
printf("%s defends and increases defense by 5!\n", defender->name);
}
void update_game(int key) {
switch (key) {
case 'w':
attack(&player, &enemy);
break;
case 'a':
defend(&player);
break;
case 'i':
attack(&enemy, &player);
break;
case 'j':
defend(&enemy);
break;
default:
break;
}
if (player.hp <= 0 || enemy.hp <= 0) {
printf("Game over!\n");
exit(0);
}
}
int main() {
while (1) {
draw_game();
int key = getch();
update_game(key);
}
return 0;
}
```
这个游戏有两个角色,分别是玩家和敌人,玩家可以使用 w 键攻击敌人,使用 a 键防御自己,敌人则会自动攻击玩家并防御自己。当其中一个角色的血量减为 0 时,游戏结束。
注意:这个示例代码仅供参考,如果你想要实现更多功能和更好的游戏体验,需要自己进行扩展和优化。