当然可以!以下是一个简单的狼人杀游戏的示例代码:

#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;
}

这只是一个最基本的示例,你可以根据自己的需求和想法进行扩展和修改

你能用C加加编一个狼人杀的小游戏吗?

原文地址: https://www.cveoy.top/t/topic/iJ8J 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录