一. 简易狼人杀选人系统
使用随机数给自己随机选择一个角色:平民1,平民2,平民3,狼人
请注意一局只能是:平民1,平民2,平民3,狼人
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <string>
using namespace std;
int main() {
// 初始化随机数种子
srand(time(0));
// 生成1-4的随机数
int roleNumber = rand() % 4 + 1;
string role;
// 根据随机数分配角色
switch(roleNumber) {
case 1:
role = "平民1";
break;
case 2:
role = "平民2";
break;
case 3:
role = "平民3";
break;
case 4:
role = "狼人";
break;
}
// 输出结果
cout << "你的角色是:" << role << endl;
return 0;
}
二. 简易狼人身份系统
第一夜:选择杀人对象
第一日:使用随机数,swith淘汰对象(被淘汰则游戏失败结束)
第二夜:只剩下一个平民,直接杀死游戏胜利结束
角色:狼人(我),平民1,平民2,平民3
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <string>
using namespace std;
int main() {
srand(time(0));
cout << "我是狼人" << endl;
cout << "第一夜:" << endl;
cout << "请选择你的杀人对象:【平民1,平民2,平民3】:";
string kill_1;
cin >> kill_1;
int ko_1;
if(kill_1 == "平民1") {
cout << "平民1死亡,黑夜结束,进入白天" << endl;
// 从平民2、平民3和狼人中随机淘汰一个
ko_1 = rand() % 3 + 2; // 生成2-4的随机数(2:平民2, 3:平民3, 4:狼人)
switch(ko_1) {
case 2:
cout << "平民2被淘汰" << endl;
// 进入第二夜
cout << "第二夜: 必须杀死平民3" << endl;
cout << "平民3死亡,进入第二天" << endl;
// 第二日只有你和被杀死的平民3,自动胜利
cout << "你成功存活到最后!游戏胜利!" << endl;
break;
case 3:
cout << "平民3被淘汰" << endl;
// 进入第二夜
cout << "第二夜: 必须杀死平民2" << endl;
cout << "平民2死亡,进入第二天" << endl;
// 第二日只有你和被杀死的平民2,自动胜利
cout << "你成功存活到最后!游戏胜利!" << endl;
break;
case 4:
cout << "我(狼人)被淘汰,游戏失败结束" << endl;
break;
}
}
else if(kill_1 == "平民2") {
cout << "平民2死亡,黑夜结束,进入白天" << endl;
// 从平民1、平民3和狼人中随机淘汰一个
ko_1 = (rand() % 2 == 0) ? 1 : (rand() % 2 + 3); // 1:平民1, 3:平民3, 4:狼人
switch(ko_1) {
case 1:
cout << "平民1被淘汰" << endl;
// 进入第二夜
cout << "第二夜: 必须杀死平民3" << endl;
cout << "平民3死亡,进入第二天" << endl;
cout << "你成功存活到最后!游戏胜利!" << endl;
break;
case 3:
cout << "平民3被淘汰" << endl;
// 进入第二夜
cout << "第二夜: 必须杀死平民1" << endl;
cout << "平民1死亡,进入第二天" << endl;
cout << "你成功存活到最后!游戏胜利!" << endl;
break;
case 4:
cout << "我(狼人)被淘汰,游戏失败结束" << endl;
break;
}
}
else if(kill_1 == "平民3") {
cout << "平民3死亡,黑夜结束,进入白天" << endl;
// 从平民1、平民2和狼人中随机淘汰一个
ko_1 = rand() % 3 + 1; // 生成1-3的随机数(1:平民1, 2:平民2, 4:狼人)
if(ko_1 == 3) ko_1 = 4; // 把3转换为狼人
switch(ko_1) {
case 1:
cout << "平民1被淘汰" << endl;
// 进入第二夜
cout << "第二夜: 必须杀死平民2" << endl;
cout << "平民2死亡,进入第二天" << endl;
cout << "你成功存活到最后!游戏胜利!" << endl;
break;
case 2:
cout << "平民2被淘汰" << endl;
// 进入第二夜
cout << "第二夜: 必须杀死平民1" << endl;
cout << "平民1死亡,进入第二天" << endl;
cout << "你成功存活到最后!游戏胜利!" << endl;
break;
case 4:
cout << "我(狼人)被淘汰,游戏失败结束" << endl;
break;
}
}
else {
cout << "输入错误" << endl;
}
return 0;
}
三. 简易平民身份系统
预备:使用随机数赋予 平民1-3其中一个为狼人
第一夜:使用随机数淘汰 真平民对象 (我被淘汰则游戏失败结束)
第一日:选择投票对象 (淘汰狼人则成功且游戏结束)
第二夜:使用随机数淘汰 真平民对象 (被淘汰则游戏失败结束)
第二日:选择投票对象 (淘汰狼人则成功且游戏结束:没有淘汰狼人则失败且游戏结束)
角色:平民1,平民2,平民3,平民4(我)【平民1-3其中一个狼人】
狼人可自刀:狼人存活到第二日,直接胜利
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main() {
srand(time(0));
// 随机确定狼人身份(1-3中的一个)
int wolf = rand() % 3 + 1;
cout << "你的身份是:平民4" << endl;
// 第一夜
cout << "\n=== 第一夜 ===" << endl;
int night1 = rand() % 4 + 1; // 随机淘汰1人(1-4)
if (night1 == 4) {
cout << "你被杀害!游戏失败!" << endl;
return 0;
} else {
cout << "平民" << night1 << "被杀害" << endl;
if (night1 == wolf) {
cout << "狼人(平民" << wolf << ")被杀害,平民胜利!" << endl;
return 0; // 游戏立即结束
}
}
// 第一日
cout << "\n=== 第一日 ===" << endl;
cout << "请投票选择怀疑对象(1-3): ";
int vote1;
cin >> vote1;
if (vote1 == wolf) {
cout << "投票正确!狼人(平民" << wolf << ")被淘汰,平民胜利!" << endl;
return 0;
} else {
cout << "平民" << vote1 << "被投票淘汰" << endl;
}
// 第二夜 - 确保不重复杀害
cout << "\n=== 第二夜 ===" << endl;
int night2;
night2 = rand() % 3 + 1; // 先尝试1-3
if (night2 == night1 || night2 == vote1) {
night2 = 4; // 如果冲突就选择4(玩家)
}
if (night2 == 4) {
cout << "你被杀害!游戏失败!" << endl;
return 0;
} else {
cout << "平民" << night2 << "被杀害" << endl;
if (night2 == wolf) {
cout << "狼人(平民" << wolf << ")被杀害,平民胜利!" << endl;
return 0;
}
}
// 第二日(狼人存活到第二日,直接胜利)
cout << "\n=== 第二日 ===" << endl;
cout << "狼人(平民" << wolf << ")存活到最后,狼人胜利!" << endl;
return 0;
}
狼人不可自刀:
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <string>
using namespace std;
int main() {
srand(time(0));
// 随机确定狼人身份(1-3中的一个)
int wolf = rand() % 3 + 1;
cout << "你的身份是:平民4" << endl;
// 第一夜
cout << "\n=== 第一夜 ===" << endl;
int night1 = rand() % 3 + 1; // 先随机选择1-3
// 确保狼人不会自刀
if(night1 == wolf) {
// 如果选到狼人,就改为选择其他平民
if(wolf == 1) {
night1 = (rand() % 2) + 2; // 选择2或3
} else if(wolf == 2) {
night1 = (rand() % 2) == 0 ? 1 : 3;
} else { // wolf == 3
night1 = (rand() % 2) + 1; // 选择1或2
}
}
cout << "平民" << night1 << "被杀害" << endl;
// 第一日
cout << "\n=== 第一日 ===" << endl;
cout << "请投票选择怀疑对象(1-3): ";
int vote1;
cin >> vote1;
if(vote1 == wolf) {
cout << "投票正确!狼人被淘汰!游戏胜利!" << endl;
return 0;
} else {
cout << "平民" << vote1 << "被投票淘汰" << endl;
}
// 第二夜 - 不使用循环确保不重复杀害且狼人不自刀
cout << "\n=== 第二夜 ===" << endl;
int night2;
// 确定剩余存活的平民
if(night1 != 1 && vote1 != 1 && wolf != 1) {
night2 = 1;
} else if(night1 != 2 && vote1 != 2 && wolf != 2) {
night2 = 2;
} else {
night2 = 3;
}
// 如果所有平民都死了,就只能杀玩家
if((night1 == 1 || vote1 == 1 || wolf == 1) &&
(night1 == 2 || vote1 == 2 || wolf == 2) &&
(night1 == 3 || vote1 == 3 || wolf == 3)) {
night2 = 4;
}
if(night2 == 4) {
cout << "你被杀害!游戏失败!" << endl;
return 0;
} else {
cout << "平民" << night2 << "被杀害" << endl;
}
// 第二日
cout << "\n=== 第二日 ===" << endl;
cout << "请投票选择怀疑对象(剩余存活的平民): ";
int vote2;
cin >> vote2;
if(vote2 == wolf) {
cout << "投票正确!狼人被淘汰!游戏胜利!" << endl;
} else {
cout << "投票错误!狼人存活!游戏失败!" << endl;
}
return 0;
}