C语言实现文字格斗游戏
时间: 2024-05-04 08:01:42 浏览: 119
C语言文字游戏
文字格斗游戏是一种比较简单的游戏,相对于图形化游戏来说,它的实现难度较低。下面就给出一个简单的 C 语言实现文字格斗游戏的示例代码。
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
// 定义人物结构体
struct character {
char name[20]; // 名称
int hp; // 生命值
int attack; // 攻击力
};
// 定义攻击函数
int attack(struct character* c1, struct character* c2) {
int damage = c1->attack; // 计算本次攻击伤害
c2->hp -= damage; // 更新被攻击者的生命值
return damage; // 返回造成的伤害值
}
// 定义主函数
int main() {
// 初始化随机数生成器
srand(time(NULL));
// 创建两个角色
struct character player = {"玩家", 100, 10};
struct character enemy = {"敌人", 100, 8};
while (1) {
// 玩家回合
printf("轮到玩家行动了!\n");
printf("请输入攻击指令:\n");
// 获取用户输入
char input[10];
scanf("%s", input);
if (strcmp(input, "attack") == 0) {
// 攻击敌人
int damage = attack(&player, &enemy);
printf("你对敌人造成了 %d 点伤害!\n", damage);
} else if (strcmp(input, "heal") == 0) {
// 恢复自己的生命值
int heal = rand() % 20 + 10;
player.hp += heal;
printf("你恢复了 %d 点生命值!\n", heal);
} else {
// 无效指令
printf("无效指令!\n");
}
// 判断游戏是否结束
if (enemy.hp <= 0) {
printf("恭喜你,你战胜了敌人!\n");
break;
}
// 敌人回合
printf("轮到敌人行动了!\n");
// 随机选择攻击或恢复
int choice = rand() % 2;
if (choice == 0) {
// 攻击玩家
int damage = attack(&enemy, &player);
printf("敌人对你造成了 %d 点伤害!\n", damage);
} else {
// 恢复自己的生命值
int heal = rand() % 20 + 10;
enemy.hp += heal;
printf("敌人恢复了 %d 点生命值!\n", heal);
}
// 判断游戏是否结束
if (player.hp <= 0) {
printf("很遗憾,你被敌人打败了!\n");
break;
}
}
return 0;
}
```
在这个示例代码中,我们定义了一个 `character` 结构体来表示游戏中的人物,其中包括名称、生命值和攻击力三个属性。我们还定义了一个 `attack` 函数来实现攻击操作,该函数接受两个 `character` 结构体指针作为参数,表示攻击方和被攻击方,计算攻击伤害并更新被攻击者的生命值。
在主函数中,我们创建了两个角色,并实现了一个简单的回合制战斗系统。玩家可以输入 `attack` 或 `heal` 指令来进行攻击或恢复操作,而敌人则随机选择攻击或恢复。每个回合结束后,程序会判断游戏是否结束,即判断玩家或敌人的生命值是否降至零。
当然,这只是一个非常简单的示例,实际实现中可以根据需要增加更多的游戏元素和功能。
阅读全文