狼人杀(立马删除)
  • 板块灌水区
  • 楼主Dxuhaoyang
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/8/7 21:26
  • 上次更新2024/8/7 21:28:25
查看原帖
狼人杀(立马删除)
1082488
Dxuhaoyang楼主2024/8/7 21:26
#include<bits/stdc++.h> 
#include<windows.h> 
using namespace std;
int n,s;
int _pai;
string ss[13]={"","存活","存活","存活","存活","存活","存活","存活","存活","存活","存活","存活","存活"};
string zs[13]={"","狼人","守卫","狼人","狼人","女巫","猎人","狼人","预言家","村民","猎人","村民","守卫"}; 
string pai=" 3141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067913267845900239485671000128479124792157325430"; 
void l6(){
	for(int i=1;i<=5 and (n<1 or n>12);i++){
		system("cls");//清空 
		printf("别闹了!好好选:");
		cin>>n; 
	} 
	return;
}
void zjm(){
	printf("我是%d号位\n",n);
	printf("1号位  2号位  3号位  4号位  5号位  6号位\n");
	for(int i=1;i<=6;i++){
		cout<<ss[i];
		if(ss[i]=="已死亡"){
			cout<<" ";
		}
		else{
			cout<<"   ";
		}
	}
	cout<<endl<<endl;
	printf("7号位  8号位  9号位  10号位  11号位  12号位\n");
	for(int i=7;i<=9;i++){
		cout<<ss[i];
		if(ss[i]=="已死亡"){
			cout<<" ";
		}
		else{
			cout<<"   ";
		}
	}
	for(int i=10;i<=12;i++){
		cout<<ss[i];
		if(ss[i]=="已死亡"){
			cout<<"  ";
		}
		else{
			cout<<"    ";
		}
	}
	cout<<endl<<endl;
	return;
}
void sf(int s){
	cout<<zs[n];
	if(zs[n]=="狼人"){
		ss[1]="狼人";
		ss[3]="狼人";
		ss[4]="狼人";
		ss[7]="狼人";
	}
	Sleep(2050);
	return;
}
int h;
char c;
void hy(){
	system("cls");//清空 
	zjm();
	printf("守卫请睁眼~~~\n");
	Sleep(1500);
	printf("请问你要守护谁?\n");
	Sleep(1500);
	if(zs[n]=="守卫"){
		printf("->");
		cin>>h;
	}
	else{
		printf("……\n");
	}
	Sleep(1500);
	printf("守卫请闭眼~~~\n");
	Sleep(1500);
	system("cls");//清空 
	zjm();
	printf("狼人请睁眼~~~\n");
	Sleep(1500);
	printf("请问你要刀(杀)谁?\n");
	Sleep(1500);
	if(zs[n]=="狼人"){
		printf("->");
		cin>>h;
		ss[h]="已死亡"; 
	}
	else{
		printf("……\n");
	} 
	Sleep(1500);
	printf("狼人请闭眼~~~\n");
	Sleep(1500);
	system("cls");//清空 
	zjm();
	printf("女巫请睁眼~~~\n");
	Sleep(1500);
	printf("请问你要使用?\n");
	Sleep(1500);
	int z=rand()%13;
	while(ss[z]=="已死亡" or z==0){
		z=rand()%13;		
	}
	ss[z]="已死亡";
	if(zs[n]=="女巫"){
		printf("A. 解药   B.毒药");
		cout<<endl;
		cin>>c;		
		if(c=='A'){ 			
			Sleep(1500);
			printf("昨晚%d号位被刀(杀)了,",z);
			Sleep(1500);
			printf("请问你要解救谁?\n ");
			cin>>h;			
		}
		else{
			Sleep(1500);
			printf("请问你要谁毒谁? ");
			cin>>h;
			ss[h]="已死亡";
		}
	}	
	else{
		printf("……\n");
	} 
	Sleep(1500);
	printf("女巫请闭眼~~~\n");
	Sleep(1500);
	system("cls");//清空 
	zjm();	
	printf("预言家请睁眼~~~\n");
	Sleep(1500);
	printf("请问你要预言谁的身份?\n");
	Sleep(1500);
	if(zs[n]=="预言家"){			
		cin>>h;
		cout<<zs[h];
		if(ss[h]!="已死亡"){
			ss[h]=zs[h];
		}	
	}
	else{
		printf("……\n");
	} 
	Sleep(1500);
	printf("预言家请闭眼~~~\n");
	if(h==z) ss[z]="存活"; 
	Sleep(1500);
	system("cls");//清空 	
	zjm();
	printf("天亮了\n");
	Sleep(1500);
	printf("昨晚……"); 
	Sleep(750);
	for(int i=1;i<=12;i++){
		if(ss[i]=="已死亡"){
			system("cls");//清空 
		 	zjm();
			return;
		}
	} 
	printf("是平安夜~~~");
	Sleep(1750);
	system("cls");//清空 
	zjm();
	printf("\n\n");
	return;
}
int sl;
int lr;
inline void aa(){
	sl=0;
	lr=0;
	for(int i=1;i<=12;i++){
		if(ss[i]!="已死亡"){
			sl++;
		}		
		if(ss[i]!="已死亡" and zs[i]=="狼人"){
			lr++;
		}	
	}
}
int f=1;
int v[1005]={0};
bool vn=false;
bool bs_10=true;
bool bs_6=true;
void tp(){
	memset(v,0,sizeof(v));
	if((ss[10]=="已死亡" and bs_10==true) or (ss[6]=="已死亡" and bs_6)){
		if(ss[10]=="已死亡"){
			bs_10=false;
		}
		else if(ss[6]=="已死亡"){
			bs_6=false;
		}
		printf("猎人发动技能,开枪带走了");
		if(ss[1]!="已死亡"){
			cout<<"1号狼人";
			ss[1]= "已死亡";
			Sleep(2500);
			system("cls");//清空 
			zjm();
		}
		else if(ss[3]!="已死亡"){
			cout<<"3号狼人";
			ss[3]= "已死亡";
			Sleep(2500);
			system("cls");//清空 
			zjm();
		}
		else if(ss[4]!="已死亡"){
			cout<<"4号狼人";
			ss[4]= "已死亡";
			Sleep(2500);
			system("cls");//清空 
			zjm();
		}
		else if(ss[7]!="已死亡"){
			cout<<"7号狼人";
			ss[7]= "已死亡";
			Sleep(2500);
			system("cls");//清空 
			zjm();
		}
		aa();
		if(lr==0){
			Sleep(1200);
			system("cls");//清空 
			printf("\n\n\n\n-----------好人胜利!-------------\n\n\n\n");
			vn=true;
			return;
		}
	}
	for(int i=1;i<=12;i++){
		int j;
		if(ss[i]!="已死亡"){
			while(ss[(pai[f]-'0')]=="已死亡" or (pai[f]-'0')==i){
				f++;
			}
			if(i!=n){
				printf("%d号位把票投给了",i); 
				if(pai[f]=='0'){
					cout<<"10号位"<<endl;
					v[10]++;
					f++;
				}  
				else{
					cout<<pai[f]<<"号位"<<endl;
					v[(pai[f]-'0')]++;
					f++;
				}			
			}		
			else if(i==n){
				printf("请问你要把票投给谁?\n");
				cin>>j;
				printf("%d号位把票投给了%d号位\n",i,j); 
				v[j]++;
			} 
			Sleep(1500);
		}		
	}
	int maxn=0,maxn1=0;
	int vi;
	for(int i=1;i<=12;i++){
		if(v[i]>maxn){
			maxn=v[i];
			vi=i;
			maxn1=0;
		}
		else if(v[i]==maxn){
			maxn1=v[i];
		}
	}
	if(maxn!=maxn1){
		system("cls");//清空 
		printf("投票结束,%d号位被投票出局",vi); 
		ss[vi]="已死亡";
		Sleep(2250); 
		system("cls");//清空
		Sleep(500);
		zjm();
	}
	else{
		printf("本轮平票,游戏继续\n");
		Sleep(1750);
		system("cls");//清空		
		zjm();
	}
	return; 
}
int main(){
	printf("欢迎来到-狼人杀24版-(12人机版)\n");
	printf("由<@你亲爱的小许>研发,免费开放\n");
	printf("-------------------------------\n");
	printf("请选择你的位置(1~12号位):");
	cin>>n;
	l6();	
	if(n<1 or n>12){
		printf("你个老6,我真的是服了你了!!!【忍无可忍】");
		return 0; 
	}
	system("cls");//清空 
	printf("你不能在大余6人时死亡(猎人除外)\n");
	printf("在没有让你输入时,请不要输入按键【非常重要!!!】");
	Sleep(3500);
	system("cls");//清空 
	zjm();
	printf("\n天黑了……\n");
	printf("你的身份是——"); 
	sf(s);
	do{
		hy();
		printf("开始投票->\n");
		Sleep(1500);
		tp();
		if(vn==true){
			return 0;
		}
		Sleep(5000);
		aa();
		if(lr==0){
			system("cls");//清空 
			printf("\n\n\n\n-----------好人胜利!-------------\n\n\n\n");
			Sleep(2000);
			return 0;
		}
		if(lr>=(sl+1)/2){
			system("cls");//清空 
			printf("\n\n\n\n-----------狼人胜利!-------------\n\n\n\n");
			Sleep(2000);
			return 0;
		} 
		if(ss[n]=="已死亡" and sl>=6 and zs[n]!="猎人"){
			system("cls");//清空 
			printf("\n\n\n\n------游戏结束------\n\n\n\n");
			Sleep(250);
			return 0;;	
		}
	}while(sl>2);
	return 0;
}
2024/8/7 21:26
加载中...