请给出代码,使用vs运行
时间: 2023-12-12 11:03:20 浏览: 62
以下是一个简单的回合制游戏的C++代码,可以在Visual Studio中运行:
```c++
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
// 角色基类
class Character {
public:
string name;
int hp;
int atk;
int def;
int speed;
virtual void attack(Character& target) {
int damage = max(0, atk - target.def);
target.hp -= damage;
cout << name << "攻击了" << target.name << ",造成了" << damage << "点伤害!" << endl;
}
virtual void defend() {
cout << name << "防御了!" << endl;
}
virtual bool is_dead() {
return hp <= 0;
}
};
// 玩家类
class Player : public Character {
public:
Player() {
name = "玩家";
hp = 100;
atk = 20;
def = 10;
speed = 10;
}
void use_item() {
cout << name << "使用了道具!" << endl;
}
};
// 敌人类
class Enemy : public Character {
public:
Enemy(string name_, int hp_, int atk_, int def_, int speed_) {
name = name_;
hp = hp_;
atk = atk_;
def = def_;
speed = speed_;
}
};
// 回合类
class Turn {
public:
vector<Character*> characters;
void add_character(Character* character) {
characters.push_back(character);
}
void execute() {
sort(characters.begin(), characters.end(), [](Character* a, Character* b) {
return a->speed > b->speed;
});
for (auto character : characters) {
if (!character->is_dead()) {
if (dynamic_cast<Player*>(character)) { // 玩家回合
string action;
cout << character->name << "的回合,请选择行动(攻击/防御/道具):";
cin >> action;
if (action == "攻击") {
cout << "请选择攻击目标(1-3):";
int target_index;
cin >> target_index;
if (target_index >= 1 && target_index <= 3) {
auto target = characters[target_index];
character->attack(*target);
}
}
else if (action == "防御") {
character->defend();
}
else if (action == "道具") {
dynamic_cast<Player*>(character)->use_item();
}
}
else { // 敌人回合
auto target = characters[0]; // 攻击玩家
character->attack(*target);
}
}
}
}
};
int main() {
Player player;
Enemy enemy1("敌人1", 50, 10, 5, 5);
Enemy enemy2("敌人2", 50, 10, 5, 5);
Enemy enemy3("敌人3", 50, 10, 5, 5);
vector<Character*> characters = { &player, &enemy1, &enemy2, &enemy3 };
Turn turn;
while (true) {
turn.characters = characters;
turn.execute();
// 判断游戏是否结束
if (player.is_dead()) {
cout << "你已经死亡!游戏结束!" << endl;
break;
}
else if (all_of(characters.begin() + 1, characters.end(), [](Character* character) {
return character->is_dead();
})) {
cout << "所有敌人已经被打败!你赢了!" << endl;
break;
}
}
return 0;
}
```
在Visual Studio中,可以按照以下步骤运行代码:
1. 打开Visual Studio,选择“新建项目”。
2. 在“新建项目”对话框中,选择“Win32控制台应用程序”,然后设置项目名称和保存路径,点击“确定”。
3. 在“Win32应用程序向导”对话框中,选择“控制台应用程序”,然后点击“下一步”。
4. 在“应用程序设置”页面中,选择“空项目”,然后点击“完成”。
5. 在“解决方案资源管理器”中,右键单击“源文件”,选择“添加” -> “新建项”,然后在“新建项”对话框中选择“C++文件”,设置文件名称为“main.cpp”,点击“添加”。
6. 将上面的代码复制到“main.cpp”文件中。
7. 点击“生成”->“生成解决方案”。
8. 点击“调试”->“开始执行”来运行程序。
阅读全文