#include <bits/stdc++.h>
#include <windows.h>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#define random(a,b) (rand()%(b-a+1)+a)
using namespace std;//命名空间
int a[6]={0,0,0,0,0,0};
struct node{
string sf;
}sfs[4];
void wolf(){
int x;
x= random(1,6);
a[x-1]=3;
return ;
}
void yu(){
int x,y=0;
while(y==0){
x= random(1,6);
if(a[x-1]==0){
y=1;
a[x-1]=1;
return ;
}
}
}
void fa(){
int x,y=0;
while(y==0){
x= random(1,6);
if(a[x-1]==0){
y=1;
a[x-1]=2;
return ;
}
}
}
void printsetence(string &text, int interval) {
int n = text.length();
for (int i=0; i<n; i++) {
cout<<text[i];
Sleep(interval);
}
return;
}
int main(){//主函数
while(1){
sfs[0].sf="平民";
sfs[1].sf="预言家";
sfs[2].sf="法师";
sfs[3].sf="狼";
cout<<" 狼 :1 平:3 预:1 法:1" <<endl;
system("color 87") ;
system("pause") ;
system("cls");
srand((unsigned)time(NULL));
wolf();
srand((unsigned)time(NULL));
fa();
srand((unsigned)time(NULL));
yu();
string text = "你是1号,你的身份是:";
printsetence(text,25);
cout<<sfs[a[0]].sf<<endl;
system("color 87") ;
system("pause") ;
system("cls");
int tian=0;
while(1){
tian++;
cout<<"第"<<tian<<"夜";
system("color 87") ;
system("pause") ;
system("cls");
int flag=0;
if(a[0]==3){
flag=1;
int shu;
cout<<"你要刀几号?"<<endl;
cin>>shu;
a[shu-1]+=4;
int c=random(1,2);
if(c==1){
int flagg=0;
while(flagg==0) {
srand((unsigned)time(NULL));
int d=random(1,6);
if(a[d-1]<4){
flagg=1;
a[d-1]+=4;
}
}
}else{
int d=6;
while(d--){
if(a[d]>=4){
a[d]-=4;
break;
}
}
}
system("color 87") ;
system("pause") ;
system("cls");
}else if(a[0]==2){
cout<<"今晚你要毒还是救";
string shu1;
cin>>shu1;
system("color 87") ;
system("pause") ;
system("cls");
if(shu1=="毒"){
cout<<"你要毒几号" ;
int shu;
cin>>shu;
a[shu-1]+=4;
}else{
cout<<"你要救几号" ;
int shu;
cin>>shu;
if(a[shu-1]>=4){
a[shu-1]-=4;
}
}
int flagg=0;
while(flagg==0) {
srand((unsigned)time(NULL));
int b=random(1,6);
if(a[b-1]<4){
flagg=1;
a[b-1]+=4;
}
}
system("color 87") ;
system("pause") ;
system("cls");
}else if(a[0]==1){
cout<<"今晚你要预言几号";
int shu;
cin>>shu;
system("color 87") ;
system("pause") ;
system("cls");
cout<<"他的身份是";
cout<<sfs[a[shu-1]].sf<<endl;
int flagg=0;
while(flagg==0) {
srand((unsigned)time(NULL));
int b=random(1,6);
if(a[b-1]<4){
flagg=1;
a[b-1]+=4;
}
}
int c=random(1,2);
if(c==1){
flagg=0;
while(flagg==0) {
srand((unsigned)time(NULL));
int d=random(1,6);
if(a[d-1]<4){
flagg=1;
a[d-1]+=4;
}
}
}else{
int d=6;
while(d--){
if(a[d]>=4){
a[d]-=4;
break;
}
}
}
system("color 87") ;
system("pause") ;
system("cls");
}else{
int flagg=0;
while(flagg==0) {
srand((unsigned)time(NULL));
int b=random(1,6);
if(a[b-1]<4){
cout<<"狼人今晚杀了"<<b<<endl;
flagg=1;
a[b-1]+=4;
}
}
int c=random(1,2);
if(c==1){
int flagg=0;
while(flagg==0) {
srand((unsigned)time(NULL));
int d=random(1,6);
if(a[d-1]<4){
cout<<"法师今晚杀了"<<d<<endl;
flagg=1;
a[d-1]+=4;
}
}
}else{
int d=6;
while(d--){
if(a[d]>=4){
cout<<a[d]<<"法师今晚救了"<<d+1<<" "<<endl;
a[d]-=4;
cout<<a[d];
break;
}
}
}
}
int k=0;
for(int i=0;i<6;i++)
if(a[i]<4&&a[i]!=3)k=1;
if(k==0){
cout<<"狼胜";
system("color 87") ;
system("pause") ;
system("cls");
break;
}
int sum=0,hh=0;
cout<<"天亮了,过了今晚还剩";
for(int i=0;i<6;i++){
if(a[i]<4){
cout<<i+1<<"号"<<" ";
sum++;
}else if(i==0){
system("pause") ;
system("cls");
cout<<"你被杀了"<<endl;
system("pause") ;
system("cls");
hh=1;
}else if(a[i]==7){
cout<<"狼死了";
system("color 87") ;
system("pause") ;
system("cls");
hh=1;
}
}
if(hh==1){
system("color 87") ;
system("pause") ;
system("cls");
break;
}
system("color 87") ;
system("pause") ;
system("cls");
int mx=0,mxx,n,piao[6]={0,0,0,0,0,0};
cout<<"请投票"<<endl;
cin>> n;
piao[n-1]++;
sum-=1;
while(sum--){
srand((unsigned)time(NULL));
piao[random(1,6)-1]++;
}
for(int i=0;i<6;i++){
cout<<i+1<<"号:"<<piao[i]<<"票 ";
if(mx<piao[i]){
mx=piao[i];
mxx=i+1;
}
}
cout<<endl;
cout<<mxx<<"号出局"<<endl;
if(mxx-1==0){
system("pause") ;
system("cls");
cout<<"你被票了"<<endl;
system("pause") ;
system("cls");
return 0;
}
a[mxx-1]+=4;
if(a[mxx-1]==7){
cout<<"他是狼";
system("color 87") ;
system("pause") ;
system("cls");
break;
}
int o=0;
for(int i=0;i<6;i++)
if(a[i]<4&&a[i]!=3)o=1;
if(o==0){
cout<<"狼胜";
system("color 87") ;
system("pause") ;
system("cls");
break;
}
}
}
return 0;//返回值
}
07-14
12-29
770
07-20
01-01
12-27
08-13
5872
04-20
1161
07-01
416
05-12
2262