提交时间:2024-01-22 11:37:52
运行 ID: 122104
#include<bits/stdc++.h> #include<cstdio> #include<cstdlib> #include<ctime> #include<windows.h> using namespace std; struct IDname { int geshu; string NAME; }; IDname jue_se[100]; struct ID { int num; bool life; string name; int know; int how; }; ID player[21]; int n,MY,kill1,kill2; char a; bool jieyao=1,duyao=1; int lieren,shouwei=0; void init1() { jue_se[1].NAME="村民 "; jue_se[2].NAME="狼人 "; jue_se[3].NAME="女巫 "; jue_se[4].NAME="预言家 "; jue_se[5].NAME="猎人 "; jue_se[6].NAME="守卫 "; } void init2(int nn) { switch(nn) { case 6: jue_se[1].geshu=3; jue_se[2].geshu=2; jue_se[3].geshu=1; jue_se[4].geshu=0; jue_se[5].geshu=0; jue_se[6].geshu=0; break; case 7: jue_se[1].geshu=3; jue_se[2].geshu=2; jue_se[3].geshu=1; jue_se[4].geshu=1; jue_se[5].geshu=0; jue_se[6].geshu=0; break; case 8: jue_se[1].geshu=3; jue_se[2].geshu=3; jue_se[3].geshu=1; jue_se[4].geshu=1; jue_se[5].geshu=0; jue_se[6].geshu=0; break; case 9: jue_se[1].geshu=3; jue_se[2].geshu=3; jue_se[3].geshu=1; jue_se[4].geshu=1; jue_se[5].geshu=1; jue_se[6].geshu=0; break; case 10: jue_se[1].geshu=4; jue_se[2].geshu=3; jue_se[3].geshu=1; jue_se[4].geshu=1; jue_se[5].geshu=1; jue_se[6].geshu=0; break; case 11: jue_se[1].geshu=4; jue_se[2].geshu=4; jue_se[3].geshu=1; jue_se[4].geshu=1; jue_se[5].geshu=1; jue_se[6].geshu=0; break; case 12: jue_se[1].geshu=4; jue_se[2].geshu=4; jue_se[3].geshu=1; jue_se[4].geshu=1; jue_se[5].geshu=1; jue_se[6].geshu=1; break; default: cout<<"输入错误,再见"<<endl; exit(0); break; } } int van[10]= {7,4,6,43,35,1,2,8,20,19}; void init3(int nn) { srand(time(0)); Sleep(rand()%44); int x=10000; int t=rand(); srand(time(NULL)); int y=van[(rand()%100*van[rand()%10]+t)%10]; if(nn<=6) x=abs(x*6/y)%3+1; else if(nn<=8) x=abs(x*7/y)%4+1; else if(nn<=11) x=abs(x*8/y)%5+1; else if(nn<=14) x=abs(x*9/y)%6+1; do { if(nn<=6) x=x%3+1; else if(nn<=8) x=x%4+1; else if(nn<=11) x=x%5+1; else if(nn<=14) x=x%6+1; if(jue_se[x].geshu>0) { player[nn].name=jue_se[x].NAME; if(player[nn].name=="猎人 ") lieren=nn; if(player[nn].name=="守卫 ") shouwei=nn; player[nn].life=1; player[nn].num=nn; player[nn].know=0; jue_se[x].geshu--; player[nn].how=0; break; } } while(jue_se[x].geshu==0); } void printhhh() { int cm=0; int sz=0; for(int i=1; i<=n; i++) { if(player[i].life==0) continue; else if(player[i].name=="村民 ") cm++; else if(player[i].name=="女巫 "||player[i].name=="预言家 "||player[i].name=="猎人 "||player[i].name=="守卫 ") sz++; } if(sz==0||cm==0) cout<<"狼人阵营胜利"<<endl; else cout<<"好人阵营胜利"<<endl; for(int i=1; i<=n; i++) { cout<<left<<setw(3)<<player[i].num<<": "<<player[i].name<<" "; if(player[i].life==0) cout<<"死亡"<<"\t"; else cout<<"存活"<<"\t"; if(player[i].how==0) cout<<"最终存活 "<<endl; else if(player[i].how==1) cout<<"最终被狼人杀死"<<endl; else if(player[i].how==2) cout<<"最终被投票投死,蹦蹦炸弹"<<endl; else if(player[i].how==3) cout<<"最终被女巫毒死"<<endl; else if(player[i].how==4) cout<<"最终被猎人射杀"<<endl; } system("pause"); system("pause"); system("pause"); } void print(int day,int ti) { HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE); if(ti==0) SetConsoleTextAttribute(handle,BACKGROUND_INTENSITY|BACKGROUND_RED|BACKGROUND_GREEN|BACKGROUND_BLUE|FOREGROUND_INTENSITY); else SetConsoleTextAttribute(handle,FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE); cout<<"\t\t\t\t第"<<day<<"天 "; if(ti==0) cout<<"白天"<<endl; else cout<<"夜晚"<<endl; cout<<"我的摸鱼位置:"<<MY<<"号"<<endl; for(int i=1; i<=6; i++) { cout<<player[i].num<<"号位 "; } cout<<endl; for(int i=1; i<=6; i++) { if(player[i].life==1) { if(ti==0) SetConsoleTextAttribute(handle,BACKGROUND_INTENSITY|BACKGROUND_RED|BACKGROUND_GREEN|BACKGROUND_BLUE|FOREGROUND_INTENSITY | FOREGROUND_GREEN); else SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | FOREGROUND_GREEN); cout<<"存活 "; } else { if(ti==0) SetConsoleTextAttribute(handle,BACKGROUND_INTENSITY|BACKGROUND_RED|BACKGROUND_GREEN|BACKGROUND_BLUE|FOREGROUND_INTENSITY | FOREGROUND_RED); else SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | FOREGROUND_RED); cout<<"已死亡"; } } if(ti==0) SetConsoleTextAttribute(handle,BACKGROUND_INTENSITY|BACKGROUND_RED|BACKGROUND_GREEN|BACKGROUND_BLUE|FOREGROUND_INTENSITY); else SetConsoleTextAttribute(handle,FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE); cout<<endl; for(int i=1; i<=6; i++) { if(player[i].know==0) cout<<" 未知 "; else if(player[i].know==1) { if(player[i].name==" 狼人 ") cout<<" 狼人 "; else cout<<" 好人 "; } else if(player[i].know==2) cout<<player[i].name<<" "; } cout<<endl<<endl; for(int i=7; i<=n; i++) { if(i<10) cout<<player[i].num<<"号位 "; else cout<<player[i].num<<"号位 "; } cout<<endl; for(int i=7; i<=n; i++) { if(player[i].life==1) { if(ti==0) SetConsoleTextAttribute(handle,BACKGROUND_INTENSITY|BACKGROUND_RED|BACKGROUND_GREEN|BACKGROUND_BLUE|FOREGROUND_INTENSITY | FOREGROUND_GREEN); else SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | FOREGROUND_GREEN); cout<<" 存活 "; } else { if(ti==0) SetConsoleTextAttribute(handle,BACKGROUND_INTENSITY|BACKGROUND_RED|BACKGROUND_GREEN|BACKGROUND_BLUE|FOREGROUND_INTENSITY | FOREGROUND_RED); else SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | FOREGROUND_RED); cout<<" 已死亡"; } } if(ti==0) SetConsoleTextAttribute(handle,BACKGROUND_INTENSITY|BACKGROUND_RED|BACKGROUND_GREEN|BACKGROUND_BLUE|FOREGROUND_INTENSITY); else SetConsoleTextAttribute(handle,FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE); cout<<endl; for(int i=7; i<=n; i++) { if(player[i].know==0) cout<<"未知 "; else if(player[i].know==1) { if(player[i].name=="狼人 ") cout<<"狼人 "; else cout<<"好人 "; } else if(player[i].know==2) cout<<player[i].name<<" "; } cout<<endl<<endl; } int shou=0; void shoushui(int hhh,int hhhh) { int x; Sleep(3000); system("cls"); print(hhh,hhhh); cout<<"守~卫~哥哥~请~睁~眼~~~"<<endl; Sleep(3000); system("cls"); print(hhh,hhhh); if(MY==shouwei&&player[MY].life==1) { cout<<"请问你要守护谁?"<<endl<<"输入:"; cin>>x; while(x==shou||x<1||x>n||player[x].life==0) { cout<<"输入错误,请重新输入"<<endl<<"输入:"; cin>>x; } shou=x; } else if(player[shouwei].life==1) { cout<<"请问你要守护谁?"<<endl; Sleep(rand()%98); srand(time(0)); x=rand()%n+1; while(x==shou||player[x].life==0) { Sleep(rand()%98); srand(time(0)); x=rand()%n+1; } shou=x; } else { cout<<"请问你要守护谁?"<<endl; Sleep(3000); shou=-1; } Sleep(3000); system("cls"); print(hhh,hhhh); cout<<"守~卫~哥哥~请~闭~眼~~~"<<endl; } struct tou { int xxx; int num; int toupiaoquan; }; tou TOU[13]; bool cmp(tou x,tou y) { if(x.xxx==y.xxx) return x.num<y.num; return x.xxx>y.xxx; } bool cmp1(tou x,tou y) { return x.num<y.num; } void toupiao(int ddd,int nnn) { //--------1-------- int x; Sleep(2000); system("cls"); print(ddd,nnn); cout<<"现在大家请投票"; for(int i=1; i<=3; i++) { cout<<"."; Sleep(500); } cout<<endl; for(int i=1; i<=n; i++) { TOU[i].num=i; TOU[i].toupiaoquan=1; TOU[i].xxx=0; } for(int i=1; i<=n; i++) { if(player[i].life==1) { Sleep(3000); if(i==MY) { cout<<"请投票...(0弃权)"<<endl; cin>>x; while(player[x].life==0&&x!=0) { cin>>x; } if(x==0) cout<<MY<<"号玩家弃权"<<endl; else cout<<MY<<"号玩家投给了"<<x<<"号玩家"<<endl; } else { srand(time(0)); if(player[i].name=="狼人 ") { x=rand()%(n+1); while(x!=0&&(player[x].life==0||player[x].name=="狼人 "||x==i)) { Sleep(rand()%98); srand(time(0)); x=rand()%(n+1); } if(x==0) cout<<i<<"号玩家弃权"<<endl; else cout<<i<<"号玩家投给了"<<x<<"号玩家"<<endl; } else if(player[i].name=="预言家 ") { x=rand()%(n+1); while(x!=0&&(player[x].life==0||player[x].name!="狼人 "||x==i)) { Sleep(rand()%98); srand(time(0)); x=rand()%(n+1); } if(x==0) cout<<i<<"号玩家弃权"<<endl; else cout<<i<<"号玩家投给了"<<x<<"号玩家"<<endl; } else { x=rand()%(n+1); while(x!=0&&(player[x].life==0||x==i)) { Sleep(rand()%98); srand(time(0)); x=rand()%(n+1); } if(x==0) cout<<i<<"号玩家弃权"<<endl; else cout<<i<<"号玩家投给了"<<x<<"号玩家"<<endl; } } if(x!=0) TOU[x].xxx++; } } Sleep(3000); sort(TOU+1,TOU+n+1,cmp); if(TOU[2].xxx!=TOU[1].xxx) { cout<<"投票结束,"<<TOU[1].num<<"号投票出局"<<endl; player[TOU[1].num].life=0; player[TOU[1].num].how=2; Sleep(3000); return; } else { TOU[1].toupiaoquan=0; TOU[2].toupiaoquan=0; system("cls"); print(ddd,nnn); cout<<TOU[1].num<<"号,"<<TOU[2].num<<"号"; int i; for(i=3; i<=n; i++) { if(TOU[i].xxx==TOU[1].xxx) { TOU[i].toupiaoquan=0; cout<<","<<TOU[i].num<<"号"; } else break; } if(i==n+1) { for(int i=1; i<=n; i++) TOU[i].toupiaoquan=1; } cout<<"平票"<<endl; } //--------2-------- sort(TOU+1,TOU+n+1,cmp1); cout<<"请再次投票"; for(int i=1; i<=3; i++) { cout<<"."; Sleep(500); } cout<<endl; for(int i=1; i<=n; i++) { if(player[i].life==1&&TOU[i].toupiaoquan==1) { Sleep(3000); if(i==MY) { cout<<"请投票...(0弃权)"<<endl; cin>>x; while((player[x].life==0||TOU[x].toupiaoquan==1)&&x!=0) { cin>>x; } if(x==0) cout<<MY<<"号玩家弃权"<<endl; else cout<<MY<<"号玩家投给了"<<x<<"号玩家"<<endl; } else { srand(time(0)); if(player[i].name=="狼人 ") { x=rand()%(n+1); while(x!=0&&(player[x].life==0||player[x].name=="狼人 "||x==i||TOU[x].toupiaoquan==1)) { srand(time(0)); x=rand()%(n+1); } if(x==0) cout<<i<<"号玩家弃权"<<endl; else cout<<i<<"号玩家投给了"<<x<<"号玩家"<<endl; } else if(player[i].name=="预言家 ") { x=rand()%(n+1); while(x!=0&&(player[x].life==0||player[x].name!="狼人 "||x==i||TOU[x].toupiaoquan==1)) { srand(time(0)); x=rand()%(n+1); } if(x==0) cout<<i<<"号玩家弃权"<<endl; else cout<<i<<"号玩家投给了"<<x<<"号玩家"<<endl; } else { x=rand()%(n+1); while(x!=0&&(player[x].life==0||x==i||TOU[x].toupiaoquan==1)) { srand(time(0)); x=rand()%(n+1); } if(x==0) cout<<i<<"号玩家弃权"<<endl; else cout<<i<<"号玩家投给了"<<x<<"号玩家"<<endl; } } if(x!=0&&TOU[i].toupiaoquan==1) TOU[x].xxx++; } } Sleep(3000); sort(TOU+1,TOU+n+1,cmp); if(TOU[2].xxx!=TOU[1].xxx) { cout<<"投票结束,"<<TOU[1].num<<"号投票出局"<<endl; player[TOU[1].num].life=0; player[TOU[1].num].how=2; Sleep(3000); return; } else { TOU[1].toupiaoquan=0; TOU[2].toupiaoquan=0; system("cls"); print(ddd,nnn); cout<<TOU[1].num<<"号,"<<TOU[2].num<<"号"; int i; for(i=3; i<=n; i++) { if(TOU[i].xxx==TOU[1].xxx) { TOU[i].toupiaoquan=0; cout<<","<<TOU[i].num<<"号"; } else break; } if(i==n+1) { for(int i=1; i<=n; i++) TOU[i].toupiaoquan=1; } cout<<"平票"<<endl; } //--------3-------- sort(TOU+1,TOU+n+1,cmp1); cout<<"请再次投票"; for(int i=1; i<=3; i++) { cout<<"."; Sleep(500); } cout<<endl; for(int i=1; i<=n; i++) { if(player[i].life==1&&TOU[i].toupiaoquan==1) { Sleep(3000); if(i==MY) { cout<<"请投票...(0是弃权)"<<endl; cin>>x; while((player[x].life==0||TOU[x].toupiaoquan==1)&&x!=0) { cin>>x; } if(x==0) cout<<MY<<"号玩家弃权"<<endl; else cout<<MY<<"号玩家投给了"<<x<<"号玩家"<<endl; } else { srand(time(0)); if(player[i].name=="狼人 ") { x=rand()%(n+1); while(x!=0&&(player[x].life==0||player[x].name=="狼人 "||x==i||TOU[x].toupiaoquan==1)) { srand(time(0)); x=rand()%(n+1); } if(x==0) cout<<i<<"号玩家弃权"<<endl; else cout<<i<<"号玩家投给了"<<x<<"号玩家"<<endl; } else if(player[i].name=="预言家 "||player[i].name=="猎人 ") { x=rand()%(n+1); while(x!=0&&(player[x].life==0||player[x].name!="狼人 "||x==i||TOU[x].toupiaoquan==1)) { srand(time(0)); x=rand()%(n+1); } if(x==0) cout<<i<<"号玩家弃权"<<endl; else cout<<i<<"号玩家投给了"<<x<<"号玩家"<<endl; } else { x=rand()%(n+1); while(x!=0&&(player[x].life==0||x==i||TOU[x].toupiaoquan==1)) { srand(time(0)); x=rand()%(n+1); } if(x==0) cout<<i<<"号玩家弃权"<<endl; else cout<<i<<"号玩家投给了"<<x<<"号玩家"<<endl; } } if(x!=0&&TOU[i].toupiaoquan==1) TOU[x].xxx++; } } Sleep(3000); sort(TOU+1,TOU+n+1,cmp); if(TOU[2].xxx!=TOU[1].xxx) { cout<<"投票结束,"<<TOU[1].num<<"号投票出局"<<endl; player[TOU[1].num].life=0; player[TOU[1].num].how=2; } else { cout<<"投票结束,无人出局"<<endl; } Sleep(5000); } bool game_over() { int pingmin=0; int langren=0; int shenzhi=0; for(int i=1; i<=n; i++) { if(player[i].life==0) continue; if(player[i].name=="狼人 ") langren++; else if(player[i].name=="村民 ") pingmin++; else if(player[i].name=="女巫 "||player[i].name=="预言家 "||player[i].name=="猎人 ") shenzhi++; } if(shenzhi==0||langren==0||pingmin==0) return 1; return 0; } void night() { system("cls"); system("color 0f"); print(1,1); cout<<"天~黑~请~闭~眼~~~"<<endl; if(n>=12) shoushui(1,1); Sleep(3000); system("cls"); print(1,1); cout<<"狼~人~哥哥~请~睁~眼~~~"<<endl; if(player[MY].name=="狼人 ") { Sleep(1000); cout<<"你的吃席同伴有:"; for(int i=1; i<=n; i++) { if(i==MY) continue; if(player[i].name=="狼人 ") { cout<<player[i].num<<"号 "; player[i].know=2; } } Sleep(3000); cout<<endl<<"请问你们要杀谁:"<<endl<<"输入:"; cin>>kill1; Sleep(1500); system("cls"); print(1,1); cout<<"今晚你们要杀的是"<<kill1<<"号玩家"<<endl; } else { Sleep(4000); system("cls"); print(1,1); cout<<"请问你们要杀谁?"<<endl; do { Sleep(rand()%18); srand(time(0)); int x=rand()%n+1; if(player[x].name!="狼人 "&&player[x].life==1) { kill1=x; break; } } while(1); Sleep(5000); } Sleep(3000); system("cls"); print(1,1); cout<<"狼~人~请~闭~眼~~~"<<endl; Sleep(2000); system("cls"); print(1,1); cout<<"女~巫~哥哥~请~睁~眼~~~"<<endl; Sleep(2000); system("cls"); print(1,1); if(player[MY].name=="女巫 "&&player[MY].life==1) { Sleep(1000); if(jieyao==1) { cout<<"今晚"<<kill1<<"号玩家被杀"<<endl; Sleep(500); cout<<"请问你要救吗???"<<endl<<"A. 救 B.不救"<<endl<<"输入:"; cin>>a; if(a=='A') { system("cls"); print(1,1); cout<<"请问你要毒吗???"<<endl; Sleep(2000); system("cls"); print(1,1); cout<<"今晚"<<kill1<<"号玩家被你从狼人手中解救"<<endl; jieyao=0; if(shou!=kill1) kill1=0; } else { if(shou==kill1) kill1=0; Sleep(2000); system("cls"); print(1,1); cout<<"请问你要毒吗???"<<endl<<"A. 毒 B.不毒"<<endl<<"输入:"; cin>>a; if(a=='A') { cout<<"请问你要毒谁???"<<endl<<"输入:"; cin>>kill2; while(player[kill2].life!=1) { cout<<"输入错误,请重新输入:"<<endl; cin>>kill2; } duyao=0; } } } else { if(shou==kill1) kill1=0; Sleep(2000); system("cls"); print(1,1); cout<<"请问你要毒吗???"<<endl<<"A. 毒 B.不毒"<<endl<<"输入:"; cin>>a; if(a=='A') { cout<<"请问你要毒谁???"<<endl<<"输入:"; cin>>kill2; while(player[kill2].life!=1) { cout<<"输入错误,请重新输入:"<<endl; cin>>kill2; } duyao=0; } } } else { bool b=0; cout<<"请问你是否要用解药???"<<endl; int FFF=0,kkkk; for(int i=1; i<=n; i++) { if(player[i].life==1&&player[i].name=="村民 ") FFF++; if(player[i].name=="女巫 ") kkkk=i; } if(jieyao==1&&player[kkkk].life==1) { if(FFF==1) { if(shou==kill1) jieyao=1; else jieyao=0; kill1=0; b=1; } else for(int i=1; i<=n; i++) { if(player[i].name=="女巫 "&&kill1==i) { kill1=0; if(shou==kill1) jieyao=1; else jieyao=0; b=1; break; } else if(player[i].name=="预言家 "&&kill1==i) { kill1=0; if(shou==kill1) jieyao=1; else jieyao=0; b=1; break; } } } Sleep(3000); if(b==0&&duyao==1&&player[kkkk].life==1) { system("cls"); print(1,1); cout<<"请问你是否要用毒药???"<<endl; srand(time(0)); int x=rand()%2; Sleep(1500); cout<<"请问你要毒谁???"<<endl; if(x==1) { duyao=0; int y=rand()%n+1; while((player[y].name=="女巫 "||player[y].name=="预言家 "||y==kill1)||player[y].life==0) y=rand()%n+1; kill2=y; } } else { Sleep(3000); system("cls"); print(1,1); cout<<"请问你是否要用毒药???"<<endl; Sleep(3000); cout<<"请问你要毒谁???"<<endl; Sleep(3000); } } Sleep(3000); system("cls"); print(1,1); cout<<"女~巫~姐姐~请~闭~眼~~~"<<endl; if(n>6) { Sleep(3000); system("cls"); print(1,1); cout<<"预~言~家~哥哥~请~睁~眼~~~"<<endl; if(player[MY].name=="预言家 ") { Sleep(3000); cout<<"请问你想查验谁???"<<endl<<"输入:"; int x; cin>>x; player[x].know=1; Sleep(2000); system("cls"); print(1,1); cout<<"他的身份是:"; if(player[x].name=="狼人 ") cout<<"狼人"<<endl; else cout<<"好人"<<endl; Sleep(3000); } else { Sleep(3000); cout<<"请问你想查验谁???"<<endl; Sleep(3000); system("cls"); print(1,1); cout<<"他的身份是:......"; Sleep(3000); } Sleep(3000); system("cls"); print(1,1); cout<<"预~言~家~哥哥~请~闭~眼~~~"<<endl; } Sleep(3000); if(kill1!=0) player[kill1].life=0; if(kill2!=0) player[kill2].life=0; player[kill1].how=1; player[kill2].how=3; system("cls"); system("color F0"); print(2,0); } void night2(int hhh,int hhhh) { system("cls"); system("color 0f"); print(hhh,hhhh); cout<<"天~黑~请~闭~眼~~~"<<endl; if(n>=12) shoushui(hhh,hhhh); Sleep(3000); system("cls"); print(hhh,hhhh); cout<<"狼~人~哥哥~请~睁~眼~~~"<<endl; if(player[MY].name=="狼人 "&&player[MY].life==1) { Sleep(3000); cout<<endl<<"请问你们要杀谁:"<<endl<<"输入:"; cin>>kill1; Sleep(1500); system("cls"); print(hhh,hhhh); cout<<"今晚你们要杀的是"<<kill1<<"号玩家"<<endl; } else { Sleep(4000); system("cls"); print(hhh,hhhh); cout<<"请问你们要杀谁?"<<endl; do { srand(time(0)); int x=rand()%n+1; if(player[x].name!="狼人 "&&player[x].life==1) { kill1=x; break; } } while(1); Sleep(5000); } Sleep(3000); system("cls"); print(hhh,hhhh); cout<<"狼~人~哥哥~请~闭~眼~~~"<<endl; Sleep(2000); system("cls"); print(hhh,hhhh); cout<<"女~巫~姐姐~请~睁~眼~~~"<<endl; Sleep(2000); system("cls"); print(hhh,hhhh); if(player[MY].name=="女巫 "&&player[MY].life==1) { Sleep(1000); if(jieyao==1) { cout<<"今晚"<<kill1<<"号玩家被杀"<<endl; Sleep(500); cout<<"请问你要救吗???"<<endl<<"A. 救 B.不救"<<endl<<"输入:"; cin>>a; if(a=='A') { system("cls"); print(hhh,hhhh); cout<<"请问你要毒吗???"<<endl; Sleep(2000); system("cls"); print(hhh,hhhh); cout<<"今晚"<<kill1<<"号玩家被你从死神手中解救"<<endl; jieyao=0; if(shou!=kill1) kill1=0; } else { if(shou==kill1) kill1=0; Sleep(2000); system("cls"); print(hhh,hhhh); cout<<"请问你要毒吗???"<<endl<<"A. 毒 B.不毒"<<endl<<"输入:"; cin>>a; if(a=='A') { cout<<"请问你要毒谁???"<<endl<<"输入:"; cin>>kill2; while(player[kill2].life!=1) { cout<<"输入错误,请重新输入:"<<endl; cin>>kill2; } duyao=0; } } } else if(duyao==1) { if(shou==kill1) kill1=0; Sleep(2000); system("cls"); print(hhh,hhhh); cout<<"请问你要毒吗???"<<endl<<"A. 毒 B.不毒"<<endl<<"输入:"; cin>>a; if(a=='A') { cout<<"请问你要毒谁???"<<endl<<"输入:"; cin>>kill2; while(player[kill2].life!=1) { cout<<"输入错误,请重新输入:"<<endl; cin>>kill2; } duyao=0; } } else { Sleep(2000); system("cls"); print(hhh,hhhh); cout<<"请问你要毒吗???"<<endl; } } else { bool b=0; cout<<"请问你是否要用解药???"<<endl; int FFF=0,kkkk; for(int i=1; i<=n; i++) { if(player[i].life==1&&player[i].name=="村民 ") FFF++; if(player[i].name=="女巫 ") kkkk=i; } if(jieyao==1&&player[kkkk].life==1) { if(FFF==1) { if(shou==kill1) jieyao=1; else jieyao=0; kill1=0; b=1; } else for(int i=1; i<=n; i++) { if(player[i].name=="女巫 "&&kill1==i) { kill1=0; if(shou==kill1) jieyao=1; else jieyao=0; b=1; break; } else if(player[i].name=="预言家 "&&kill1==i) { kill1=0; if(shou==kill1) jieyao=1; else jieyao=0; b=1; break; } } } Sleep(3000); if(b==0&&duyao==1&&player[kkkk].life==1) { system("cls"); print(hhh,hhhh); cout<<"请问你是否要用毒药???"<<endl; srand(time(0)); int x=rand()%2; Sleep(1500); cout<<"请问你要毒谁???"<<endl; if(x==1) { duyao=0; int y=rand()%n+1; while((player[y].name=="女巫 "||player[y].name=="预言家 "||y==kill1)||player[y].life==0) y=rand()%n+1; kill2=y; } } else { Sleep(3000); system("cls"); print(hhh,hhhh); cout<<"请问你是否要用毒药???"<<endl; Sleep(3000); cout<<"请问你要毒Q谁???"<<endl; Sleep(3000); } } Sleep(3000); system("cls"); print(hhh,hhhh); cout<<"女~巫~姐姐~请~闭~眼~~~"<<endl; if(n>6) { Sleep(3000); system("cls"); print(hhh,hhhh); cout<<"预~言~家~哥哥~请~睁~眼~~~"<<endl; if(player[MY].name=="预言家 "&&player[MY].life==1) { Sleep(3000); cout<<"请问你想查验谁???"<<endl<<"输入:"; int x; cin>>x; player[x].know=1; Sleep(2000); system("cls"); print(hhh,hhhh); cout<<"他的身份是:"; if(player[x].name=="狼人 ") cout<<"狼人"<<endl; else cout<<"好人"<<endl; Sleep(3000); } else { Sleep(3000); cout<<"请问你想查验谁???"<<endl; Sleep(3000); system("cls"); print(hhh,hhhh); cout<<"他的身份是:......"; Sleep(3000); } Sleep(3000); system("cls"); print(hhh,hhhh); cout<<"预~言~家~哥哥~请~闭~眼~~~"<<endl; } Sleep(3000); if(kill1!=0) player[kill1].life=0; if(kill2!=0) player[kill2].life=0; player[kill1].how=1; player[kill2].how=3; system("cls"); system("color F0"); print(hhh+1,0); } bool lr=0; void panduanlieren() { if(lr==1) return; if(MY==lieren) { cout<<"请射杀一名玩家,使其吃席"<<endl; int x; cin>>x; while(player[x].life!=1) { cout<<"输入错误,请重新输入"<<endl; cin>>x; } Sleep(1000); cout<<lieren<<"号猎人发动技能,开枪随手带走了"<<x<<"号"<<endl; player[x].life=0; player[x].how=4; } else if(n>=9) { srand(time(0)); int x=rand()%n+1; while(player[x].life!=1) { x=rand()%n+1; } Sleep(1000); cout<<lieren<<"号猎人发动技能,开枪随手带走了"<<x<<"号"<<endl; player[x].life=0; player[x].how=4; } lr=1; } void print1() { cout<<"天亮了,昨晚"; if(kill1!=0||kill2!=0) { cout<<kill1<<"号"; if(kill2!=0) { cout<<","<<kill2<<"号"; kill2=0; } cout<<"被暗杀"<<endl; } else cout<<"是平安夜"<<endl; } int main() { system("cls"); cout<<" "<<"狼人杀online PRIRGEOS"<<endl; cout<<"请输入人数个数:"<<endl; scanf("%d",&n); cout<<"正在匹配身份,加载时间长,请耐心等待."; init1(); init2(n); int k=1; do { srand(time(0)); init3(k); cout<<"."; Sleep(17); k++; } while(k<=n); system("cls"); system("color F0"); cout<<"游戏即将开始"; for(int i=1; i<=6; i++) { cout<<"."; Sleep(500); } Sleep(1500); cout<<endl<<endl<<"请大家查看身份牌......PLEASE"<<endl; Sleep(45); srand(time(0)); MY=rand()%n+1; cout<<"您的身份是:"<<player[MY].name<<endl; Sleep(500); cout<<"在"<<player[MY].num<<"号位上"<<endl; system("pause"); system("cls"); player[MY].know=2; print(1,0); cout<<"即将进入夜晚"; for(int i=1; i<=6; i++) { cout<<"."; Sleep(500); } night(); print1(); if(game_over()) { Sleep(1000); system("cls"); cout<<"游戏结束"<<endl; printhhh(); return 0; } if(player[lieren].life==0&&lr==0) { panduanlieren(); } if(game_over()) { Sleep(1000); system("cls"); cout<<"游戏结束"<<endl; printhhh(); return 0; } toupiao(2,0); system("cls"); print(2,0); if(game_over()) { Sleep(1000); system("cls"); cout<<"游戏结束"<<endl; printhhh(); return 0; } else if(player[lieren].life==0&&lr==0) { panduanlieren(); } cout<<"即将进入夜晚"; for(int i=1; i<=6; i++) { cout<<"."; Sleep(500); } night2(2,1); print1(); if(game_over()) { Sleep(1000); system("cls"); cout<<"游戏结束"<<endl; printhhh(); return 0; } if(player[lieren].life==0&&lr==0) { panduanlieren(); } if(game_over()) { Sleep(1000); system("cls"); cout<<"游戏结束"<<endl; printhhh(); return 0; } toupiao(3,0); system("cls"); print(3,0); if(game_over()) { Sleep(1000); system("cls"); cout<<"游戏结束"<<endl; printhhh(); return 0; } else if(player[lieren].life==0&&lr==0) { panduanlieren(); } cout<<"即将进入夜晚"; for(int i=1; i<=6; i++) { cout<<"."; Sleep(500); } night2(3,1); print1(); if(game_over()) { Sleep(1000); system("cls"); cout<<"游戏结束"<<endl; printhhh(); return 0; } if(player[lieren].life==0) { panduanlieren(); } if(game_over()) { Sleep(1000); system("cls"); cout<<"游戏结束"<<endl; printhhh(); return 0; } toupiao(4,0); system("cls"); print(4,0); if(game_over()) { Sleep(1000); system("cls"); cout<<"游戏结束"<<endl; printhhh(); return 0; } else if(player[lieren].life==0&&lr==0) { panduanlieren(); } if(game_over()) { Sleep(1000); system("cls"); cout<<"游戏结束"<<endl; printhhh(); return 0; } cout<<"即将进入夜晚"; for(int i=1; i<=6; i++) { cout<<"."; Sleep(500); } night2(4,1); print1(); if(game_over()) { Sleep(1000); system("cls"); cout<<"游戏结束"<<endl; printhhh(); return 0; } if(player[lieren].life==0) { panduanlieren(); } if(game_over()) { Sleep(1000); system("cls"); cout<<"游戏结束"<<endl; printhhh(); return 0; } toupiao(5,0); system("cls"); print(5,0); if(game_over()) { Sleep(1000); system("cls"); cout<<"游戏结束"<<endl; printhhh(); return 0; } else if(player[lieren].life==0&&lr==0) { panduanlieren(); } if(game_over()) { Sleep(1000); system("cls"); cout<<"游戏结束"<<endl; printhhh(); return 0; } cout<<"即将进入夜晚"; for(int i=1; i<=6; i++) { cout<<"."; Sleep(500); } night2(5,1); print1(); if(game_over()) { Sleep(1000); system("cls"); cout<<"游戏结束"<<endl; printhhh(); return 0; } if(player[lieren].life==0) { panduanlieren(); } if(game_over()) { Sleep(1000); system("cls"); cout<<"游戏结束"<<endl; printhhh(); return 0; } toupiao(6,0); system("cls"); print(6,0); if(game_over()) { Sleep(1000); system("cls"); cout<<"游戏结束"<<endl; printhhh(); return 0; } else if(player[lieren].life==0&&lr==0) { panduanlieren(); } if(game_over()) { Sleep(1000); system("cls"); cout<<"游戏结束 "<<endl; printhhh(); return 0; } cout<<"即将进入夜晚"; for(int i=1; i<=6; i++) { cout<<"."; Sleep(500); } night2(6,1); print1(); if(game_over()) { Sleep(1000); system("cls"); cout<<"游戏结束"<<endl; printhhh(); return 0; } if(player[lieren].life==0) { panduanlieren(); } if(game_over()) { Sleep(1000); system("cls"); cout<<"游戏结束"<<endl; printhhh(); return 0; } toupiao(7,0); system("cls"); print(7,0); if(game_over()) { Sleep(1000); system("cls"); cout<<"游戏结束"<<endl; printhhh(); return 0; } else if(player[lieren].life==0&&lr==0) { panduanlieren(); } if(game_over()) { Sleep(1000); system("cls"); cout<<"游戏结束"<<endl; printhhh(); return 0; } while(1) system("pause"); return 0; }