c++_狼人杀升级版

#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;//返回值
}

狼人杀:c++_游戏_狼人杀-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值