Description
PL很喜欢和同学一起在网上玩狼人杀,特别是狼人身份,但是PL每次玩狼人身份总是输,他觉得狼人太难赢了,于是他想自己做一个狼人杀游戏和大家一起玩,他就可以自由的设置游戏的各项参数了。
PL剥夺了游戏里神职的特殊技能,并且PL可以自由设置玩家人数以及游戏中狼人,神职,以及村民的数量。
游戏规则:
每天狼人可以让一名编号为Mur的玩家出局,同时玩家们还会统一意见让一名编号为Vot的玩家出局(死亡)。
1.村民全部死亡或者神职全部死亡,则狼人阵营获得胜利;
2.若狼人全部死亡,则好人阵营获得胜利;
3.若狼人全部死亡并且村民全部死亡或者狼人全部死亡并且神职全部死亡,则无人胜利。
Input 第一行输入一个正整数N,表示玩家的数量
第二行输入三个正整数G,V,W,分别表示神职数量,村民数量,狼人数量
接下来N行,每行分别输入一个字符串S表示玩家的姓名(只包含字母和数字),一个正整数U表示玩家在本局游戏中的编号(编号从1~n),字符串I表示玩家的身份,神职为“god“,村民为”villager“,狼人为”werewolf“。
接下来每行输入两个正整数Mur,Vot分别表示狼人选择出局的玩家的编号、玩家们统一意见选择出局的玩家的编号,直至游戏结束。
Output 在每天狼人和玩家们选择完毕后,输出当前游戏是否结束:
若游戏没有结束,则输出"The game continue"。
如果游戏结束,则输出游戏结果:
狼人阵营胜利则输出"Game over: Werewolf wins";
好人阵营胜利则输出"Game over: Good person wins";
无人胜利则输出"Game over: No one wins"。
游戏结束输出游戏结果后,按玩家编号升序每行分别输出每位存活玩家的编号,姓名,身份信息:\text{"Player U:S is alive. I"}
#include<stdio.h> #include<string.h> struct lrs { char name[25]; int xuhao; char shenfen[25]; }; struct lrs wj[25],temp; int main() { struct lrs wj[25]; int n,i,j,mur,vot,g,v,w,m,r,s,t; scanf("%d",&n); scanf("%d%d%d",&g,&v,&w); t=n; scanf(" "); for(i=0;i<n;i++) { scanf("%s",wj[i].name); scanf("%d",&wj[i].xuhao); scanf("%s",wj[i].shenfen); } wj[n].xuhao=1000000; while(n) { scanf("%d%d",&mur,&vot); n=n-2; for(j=0;j<t;j++) { if(wj[j].xuhao==mur) for(;j<t;j++) wj[j]=wj[j+1]; } t--; for(j=0;j<t;j++) { if(wj[j].xuhao==vot) for(;j<=t;j++) wj[j]=wj[j+1]; } t--; for(j=0;j<t;j++) { if(!strcmp(wj[j].shenfen,"werewolf")) r++; if(!strcmp(wj[j].shenfen,"villager")) m++; if(!strcmp(wj[j].shenfen,"god")) s++; } if(r!=0&&m!=0&&s!=0) printf("The game continue\n"); else if(r==0&&m!=0&&s!=0) { printf("Game over: Good person wins\n"); break; } else if(r!=0) { printf("Game over: Werewolf wins\n"); break; } else { printf("Game over: No one wins\n"); break; } r=0;m=0;s=0; } for(i=0;i<n-1;i++) { for(j=0;j<n-i;j++) if((wj[j].xuhao>wj[j+1].xuhao)&&wj) { temp=wj[j]; wj[j]=wj[j+1]; wj[j+1]=temp; } } for(i=0;i<n;i++) { printf("Player %d:%s is alive. %s",wj[i].xuhao,wj[i].name,wj[i].shenfen); printf("\n"); } return 0; } //wj[2].xuhao