你能用C加加编一个狼人杀的小游戏吗?
当然可以!以下是一个简单的狼人杀游戏的示例代码:
#include <iostream>
#include <vector>
#include <random>
using namespace std;
// 玩家角色枚举
enum Role { Villager, Werewolf, Seer };
// 玩家结构体
struct Player {
string name;
Role role;
bool alive;
};
int main() {
int numPlayers;
cout << "请输入玩家数量:";
cin >> numPlayers;
vector<Player> players(numPlayers);
// 初始化玩家
for (int i = 0; i < numPlayers; i++) {
cout << "请输入玩家 " << i+1 << " 的名字:";
cin >> players[i].name;
players[i].alive = true;
}
// 分配角色
int numWerewolves = numPlayers / 3;
int numSeers = 1;
int numVillagers = numPlayers - numWerewolves - numSeers;
for (int i = 0; i < numWerewolves; i++) {
int index = rand() % numPlayers;
while (players[index].role != Villager) {
index = rand() % numPlayers;
}
players[index].role = Werewolf;
}
for (int i = 0; i < numSeers; i++) {
int index = rand() % numPlayers;
while (players[index].role != Villager) {
index = rand() % numPlayers;
}
players[index].role = Seer;
}
// 游戏主循环
bool gameOver = false;
while (!gameOver) {
// 执行游戏逻辑
// ...
// 游戏结束条件
int numAliveWerewolves = 0;
int numAliveVillagers = 0;
for (const auto& player : players) {
if (player.alive) {
if (player.role == Werewolf) {
numAliveWerewolves++;
} else if (player.role == Villager) {
numAliveVillagers++;
}
}
}
if (numAliveWerewolves >= numAliveVillagers) {
cout << "狼人胜利!" << endl;
gameOver = true;
} else if (numAliveWerewolves == 0) {
cout << "村民胜利!" << endl;
gameOver = true;
}
}
return 0;
}
这只是一个最基本的示例,你可以根据自己的需求和想法进行扩展和修改
原文地址: https://www.cveoy.top/t/topic/iJ8J 著作权归作者所有。请勿转载和采集!