帮我写一下选择英雄的函数,用于玩家选择要进行操作的自己的英雄,以及选择电脑方的一个英雄进行攻击
时间: 2024-04-08 22:32:58 浏览: 6
好的,下面是一个示例的选择英雄的函数,可以用于玩家选择自己的英雄和选择电脑方的一个英雄进行攻击:
```cpp
#include <iostream>
#include <vector>
// 英雄类
class Hero {
public:
std::string name;
char symbol;
// 其他属性...
Hero(std::string n, char s)
: name(n), symbol(s) {}
};
// 选择英雄函数
Hero* selectHero(const std::vector<Hero>& heroes) {
std::cout << "请选择一个英雄:" << std::endl;
for (int i = 0; i < heroes.size(); i++) {
std::cout << i + 1 << ". " << heroes[i].name << std::endl;
}
int choice;
std::cin >> choice;
// 检查输入的合法性
while (choice < 1 || choice > heroes.size()) {
std::cout << "请选择一个有效的英雄:" << std::endl;
std::cin >> choice;
}
return &heroes[choice - 1];
}
int main() {
// 初始化所有英雄
std::vector<Hero> heroes;
heroes.push_back(Hero("老虎", 'T'));
heroes.push_back(Hero("狼", 'W'));
heroes.push_back(Hero("雕", 'E'));
heroes.push_back(Hero("蛇", 'S'));
heroes.push_back(Hero("野猪", 'P'));
// 玩家选择自己的英雄
Hero* playerHero = selectHero(heroes);
std::cout << "你选择了英雄:" << playerHero->name << std::endl;
// 电脑选择一个英雄
Hero* computerHero = &heroes[rand() % heroes.size()];
std::cout << "电脑选择了英雄:" << computerHero->name << std::endl;
return 0;
}
```
这个示例代码中,我们定义了一个 `Hero` 类来表示英雄,其中包含了名字和符号等属性。`selectHero` 函数用于让玩家选择一个英雄,它会打印出所有可选的英雄,并接受玩家的输入来进行选择。然后,我们在 `main` 函数中调用 `selectHero` 函数来让玩家选择自己的英雄,并将选择结果保存在 `playerHero` 指针中。接着,我们通过随机选择一个英雄的方式,让电脑选择一个英雄,并将选择结果保存在 `computerHero` 指针中。
你可以根据实际的游戏逻辑和需求,进一步完善和扩展这个代码框架。希望这可以帮到你!