6
#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="守衛(wèi) ";
}
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=="守衛(wèi) ")
?? ??? ??? ??? ?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=="守衛(wèi) ")
?? ??? ??? ?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<<"守~衛(wèi)~請~睜~眼~~~"<<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<<"守~衛(wèi)~請~閉~眼~~~"<<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<<"現(xiàn)在大家請投票";
?? ?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棄權(quán))"<<endl;
?? ??? ??? ??? ?cin>>x;
?? ??? ??? ??? ?while(player[x].life==0&&x!=0) {
?? ??? ??? ??? ??? ?cin>>x;
?? ??? ??? ??? ?}
?? ??? ??? ??? ?if(x==0)
?? ??? ??? ??? ??? ?cout<<MY<<"號玩家棄權(quán)"<<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<<"號玩家棄權(quán)"<<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<<"號玩家棄權(quán)"<<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<<"號玩家棄權(quán)"<<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<<"投票結(jié)束,"<<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棄權(quán))"<<endl;
?? ??? ??? ??? ?cin>>x;
?? ??? ??? ??? ?while((player[x].life==0||TOU[x].toupiaoquan==1)&&x!=0) {
?? ??? ??? ??? ??? ?cin>>x;
?? ??? ??? ??? ?}
?? ??? ??? ??? ?if(x==0)
?? ??? ??? ??? ??? ?cout<<MY<<"號玩家棄權(quán)"<<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<<"號玩家棄權(quán)"<<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<<"號玩家棄權(quán)"<<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<<"號玩家棄權(quán)"<<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<<"投票結(jié)束,"<<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棄權(quán))"<<endl;
?? ??? ??? ??? ?cin>>x;
?? ??? ??? ??? ?while((player[x].life==0||TOU[x].toupiaoquan==1)&&x!=0) {
?? ??? ??? ??? ??? ?cin>>x;
?? ??? ??? ??? ?}
?? ??? ??? ??? ?if(x==0)
?? ??? ??? ??? ??? ?cout<<MY<<"號玩家棄權(quán)"<<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<<"號玩家棄權(quán)"<<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<<"號玩家棄權(quán)"<<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<<"號玩家棄權(quán)"<<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<<"投票結(jié)束,"<<TOU[1].num<<"號投票出局"<<endl;
?? ??? ?player[TOU[1].num].life=0;
?? ??? ?player[TOU[1].num].how=2;
?? ?} else {
?? ??? ?cout<<"投票結(jié)束,無人出局"<<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<<"請問你要毒誰???"<<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<<"號獵人發(fā)動技能,開槍帶走了"<<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<<"號獵人發(fā)動技能,開槍帶走了"<<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"<<endl;
?? ?cout<<"請輸入人數(shù)個數(shù):"<<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<<"請大家查看身份牌......"<<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<<"游戲結(jié)束"<<endl;
?? ??? ?printhhh();
?? ??? ?return 0;
?? ?}
?? ?if(player[lieren].life==0&&lr==0) {
?? ??? ?panduanlieren();
?? ?}
?? ?if(game_over()) {
?? ??? ?Sleep(1000);
?? ??? ?system("cls");
?? ??? ?cout<<"游戲結(jié)束"<<endl;
?? ??? ?printhhh();
?? ??? ?return 0;
?? ?}
?? ?toupiao(2,0);
?? ?system("cls");
?? ?print(2,0);
?? ?if(game_over()) {
?? ??? ?Sleep(1000);
?? ??? ?system("cls");
?? ??? ?cout<<"游戲結(jié)束"<<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<<"游戲結(jié)束"<<endl;
?? ??? ?printhhh();
?? ??? ?return 0;
?? ?}
?? ?if(player[lieren].life==0&&lr==0) {
?? ??? ?panduanlieren();
?? ?}
?? ?if(game_over()) {
?? ??? ?Sleep(1000);
?? ??? ?system("cls");
?? ??? ?cout<<"游戲結(jié)束"<<endl;
?? ??? ?printhhh();
?? ??? ?return 0;
?? ?}
?? ?toupiao(3,0);
?? ?system("cls");
?? ?print(3,0);
?? ?if(game_over()) {
?? ??? ?Sleep(1000);
?? ??? ?system("cls");
?? ??? ?cout<<"游戲結(jié)束"<<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<<"游戲結(jié)束"<<endl;
?? ??? ?printhhh();
?? ??? ?return 0;
?? ?}
?? ?if(player[lieren].life==0) {
?? ??? ?panduanlieren();
?? ?}
?? ?if(game_over()) {
?? ??? ?Sleep(1000);
?? ??? ?system("cls");
?? ??? ?cout<<"游戲結(jié)束"<<endl;
?? ??? ?printhhh();
?? ??? ?return 0;
?? ?}
?? ?toupiao(4,0);
?? ?system("cls");
?? ?print(4,0);
?? ?if(game_over()) {
?? ??? ?Sleep(1000);
?? ??? ?system("cls");
?? ??? ?cout<<"游戲結(jié)束"<<endl;
?? ??? ?printhhh();
?? ??? ?return 0;
?? ?} else if(player[lieren].life==0&&lr==0) {
?? ??? ?panduanlieren();
?? ?}
?? ?if(game_over()) {
?? ??? ?Sleep(1000);
?? ??? ?system("cls");
?? ??? ?cout<<"游戲結(jié)束"<<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<<"游戲結(jié)束"<<endl;
?? ??? ?printhhh();
?? ??? ?return 0;
?? ?}
?? ?if(player[lieren].life==0) {
?? ??? ?panduanlieren();
?? ?}
?? ?if(game_over()) {
?? ??? ?Sleep(1000);
?? ??? ?system("cls");
?? ??? ?cout<<"游戲結(jié)束"<<endl;
?? ??? ?printhhh();
?? ??? ?return 0;
?? ?}
?? ?toupiao(5,0);
?? ?system("cls");
?? ?print(5,0);
?? ?if(game_over()) {
?? ??? ?Sleep(1000);
?? ??? ?system("cls");
?? ??? ?cout<<"游戲結(jié)束"<<endl;
?? ??? ?printhhh();
?? ??? ?return 0;
?? ?} else if(player[lieren].life==0&&lr==0) {
?? ??? ?panduanlieren();
?? ?}
?? ?if(game_over()) {
?? ??? ?Sleep(1000);
?? ??? ?system("cls");
?? ??? ?cout<<"游戲結(jié)束"<<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<<"游戲結(jié)束"<<endl;
?? ??? ?printhhh();
?? ??? ?return 0;
?? ?}
?? ?if(player[lieren].life==0) {
?? ??? ?panduanlieren();
?? ?}
?? ?if(game_over()) {
?? ??? ?Sleep(1000);
?? ??? ?system("cls");
?? ??? ?cout<<"游戲結(jié)束"<<endl;
?? ??? ?printhhh();
?? ??? ?return 0;
?? ?}
?? ?toupiao(6,0);
?? ?system("cls");
?? ?print(6,0);
?? ?if(game_over()) {
?? ??? ?Sleep(1000);
?? ??? ?system("cls");
?? ??? ?cout<<"游戲結(jié)束"<<endl;
?? ??? ?printhhh();
?? ??? ?return 0;
?? ?} else if(player[lieren].life==0&&lr==0) {
?? ??? ?panduanlieren();
?? ?}
?? ?if(game_over()) {
?? ??? ?Sleep(1000);
?? ??? ?system("cls");
?? ??? ?cout<<"游戲結(jié)束"<<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<<"游戲結(jié)束"<<endl;
?? ??? ?printhhh();
?? ??? ?return 0;
?? ?}
?? ?if(player[lieren].life==0) {
?? ??? ?panduanlieren();
?? ?}
?? ?if(game_over()) {
?? ??? ?Sleep(1000);
?? ??? ?system("cls");
?? ??? ?cout<<"游戲結(jié)束"<<endl;
?? ??? ?printhhh();
?? ??? ?return 0;
?? ?}
?? ?toupiao(7,0);
?? ?system("cls");
?? ?print(7,0);
?? ?if(game_over()) {
?? ??? ?Sleep(1000);
?? ??? ?system("cls");
?? ??? ?cout<<"游戲結(jié)束"<<endl;
?? ??? ?printhhh();
?? ??? ?return 0;
?? ?} else if(player[lieren].life==0&&lr==0) {
?? ??? ?panduanlieren();
?? ?}
?? ?if(game_over()) {
?? ??? ?Sleep(1000);
?? ??? ?system("cls");
?? ??? ?cout<<"游戲結(jié)束"<<endl;
?? ??? ?printhhh();
?? ??? ?return 0;
?? ?}
?? ?while(1)
?? ??? ?system("pause");
?? ?return 0;
}