狼人杀
2025-10-18 15:16:21
发布于:浙江
#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
int pm,lar,nw,lir,sw,yyj;
int rs;
int main(){
cout<<"欢迎来到狼人杀\n请输入人数(7人及以上):";
cin>>rs;
lir=rs/7;
lar=rs/3;
nw=rs/7;
sw=rs/7;
yyj=rs/7;
pm=rs-lar-nw-lir-sw-yyj;
int wjs[rs+1];
int sz[8]={0,pm,lar,nw,lir,sw,yyj};
string jsm[8]={"无","平民","狼人","女巫","猎人","守卫","预言家"};
for(int i=1;i<=rs;i++){
cout<<i<<"号玩家看词,你的角色是:";
int us=rand()%6+1;
while(sz[us]==0){
us=rand()%6+1;
}
sz[us]--;
wjs[i]=us;
cout<<jsm[us]<<endl<<"请等待五秒\n";
Sleep(5000);
system("cls");
cout<<"欢迎来到"<<rs<<"人狼人杀\n";
Sleep(5000);
}
int jieshu=1;
int xue[rs+1]={1};
while(jieshu){
cout<<"\n天黑请闭眼,狼人请睁眼\n";
int larw[lar+1]={0};
for(int i=1;i<=rs;i++){
if(jsm[wjs[i]]=="狼人"&&wjs[i]==3){
larw[i]=1;
}
}
for(int i=1;i<=rs;i++){
if(larw[i]){
cout<<i<<"号,你要杀谁(写序号)?";
int sha;
cin>>sha;
xue[sha]--;
system("cls");
Sleep(2500);
cout<<"欢迎来到"<<rs<<"人狼人杀\n";
cout<<"\n天黑请闭眼,狼人请睁眼\n";
}
}
cout<<"\n狼人请闭眼,女巫请睁眼\n";
int nww[nw+1]={0};
for(int i=1;i<=rs;i++){
if(jsm[wjs[i]]=="女巫"&&wjs[i]==4){
nww[i]=1;
}
}
for(int i=1;i<=rs;i++){
if(nww[i]){
cout<<i<<"号,你用毒药还是解药(毒药输入D,解药输入J)?";
char syy;
cin>>syy;
if(syy=='D'){
cout<<i<<"号,你要毒死谁(写序号)?";
int ds;
cin>>ds;
xue[ds]--;
}
else if(syy=='J'){
cout<<i<<"号,你要解谁的毒(写序号)?";
int jd;
cin>>jd;
xue[jd]++;
}
system("cls");
Sleep(2500);
cout<<"欢迎来到"<<rs<<"人狼人杀\n";
cout<<"\n狼人请闭眼,女巫请睁眼\n";
}
}
cout<<"\n女巫请闭眼,守卫请睁眼\n";
int sww[sw+1]={0};
for(int i=1;i<=rs;i++){
if(jsm[wjs[i]]=="守卫"&&wjs[i]==6){
sww[i]=1;
}
}
for(int i=1;i<=rs;i++){
if(sww[i]){
cout<<i<<"号,你要守卫谁(写序号)?";
int shou;
cin>>shou;
xue[shou]++;
system("cls");
Sleep(2500);
cout<<"欢迎来到"<<rs<<"人狼人杀\n";
cout<<"\n女巫请闭眼,守卫请睁眼\n";
}
}
cout<<"\n守卫请闭眼,预言家请睁眼\n";
int yjw[yyj+1]={0};
for(int i=1;i<=rs;i++){
if(jsm[wjs[i]]=="预言家"&&wjs[i]==7){
yjw[i]=1;
}
}
for(int i=1;i<=rs;i++){
if(yjw[i]){
cout<<i<<"号,你要预言谁(写序号)?";
int yy;
cin>>yy;
if(wjs[yy]!=2&&wjs[yy]!=3) cout<<"好人";
else cout<<"坏人";
system("cls");
Sleep(2500);
cout<<"欢迎来到"<<rs<<"人狼人杀\n";
cout<<"\n守卫请闭眼,预言家请睁眼\n";
}
}
cout<<"天亮了\n昨晚";
for(int i=1;i<=rs;i++){
if(xue[i]==0){
cout<<i<<"号,";
}
}
cout<<"死了";
for(int i=1;i<=rs;i++){
if(jsm[wjs[i]]=="猎人"&&wjs[i]==4&&xue[i]==0){
cout<<i<<"号,你要带走谁(写序号)?";
int n;
cin>>n;
xue[n]=0;
cout<<n<<"号死了,他是" <<jsm[wjs[i]];
}
}
int f=0;
for(int i=1;i<=rs;i++){
if(xue[i]) break;
else f=1;
}
if(f) jieshu=0;
}
cout<<"游戏结束";
return 0;
}
这里空空如也
有帮助,赞一个