Category 战队专区

狼人杀(以后都在这更新)

HUANGKE99

·

2024-07-01 19:17:39

·

休闲·娱乐

狼人杀

Wolf Killing

狼人杀大事祭

2024.6.27 第一版(狼人、平民、女巫、预言家、猎人(未完善)) 1.0

2024.6.28 第二版(引入了故事开头和经典结尾GameOver)1.1

2024.6.29 第三版(加入了守卫(未完善),加入了投票系统)1.2 交互更新

2024.6.29 第四版(守卫完善) 1.2.1 乱七八杂的更新

2024.6.29 人物表

2024.6.30 第五版(加入了白痴,加入了自主输入系统)1.2.2 自定义更新

2024.7.1 第六版(加入了咒狐、守墓人,猎人完善,加入了发表意见系统(未完善),代码300+行)1.3 黑暗世界1更新

2024.7.2 第七版(加入了乌鸦,完善了投票系统、发表意见系统,加入了人物序号的阐述,发现了自主输入的bug)[特别鸣谢 @hymax ] 1.3.1 黑暗世界2更新/交互2更新

2024.7.3 第八版(加入了狼王) 1.4狼之界1更新

2024.7.3 第九版(加入了选择警长系统(未完善)和标志牌——警长)1.5 守护者1更新

2024.7.3 第十版(完善了警长系统)1.5.1 守护者2更新

2024.7.3 第十一版(阻止了狼人自刀,加入了魔术师)1.6 魔法世界更新

2024.7.4 第十二版(加入了防偷看系统,英文错误已改,完善了咒狐的胜利系统,代码400+行)[特别鸣谢 @James_L] 1.6.1 乱七八杂的更新

2024.7.4 第十三版(加入了摄梦人)1.6.2 梦魇更新

2024.7.5 第十四版(解决了bug)[特别鸣谢 @James_L ] 1.6.3乱七八杂的更新

2024.7.6 第十五版(加入了骑士和决斗系统)1.7 战斗与荣耀更新

2024.7.7 第十六版(加入了遗言系统,代码500+行)1.8 黑暗世界3更新

2024.7.7 第十七版(加入了奇迹商人、禁言长老和天选之子(奇迹商人选中的天选之子)系统)1.9魔法世界2更新

2024.7.7 第十八版(加入了老流氓和猎魔人,代码破600+行)1.10 1.10 黑暗世界4更新

2024.7.8 第十九版(加入了纯白之女,定序王子和驯熊师)1.11 魔法世界3更新/时间与魔法1更新

2024.7.9 第二十版(加入了隐狼和狼美人,完善了驯熊师,代码700+行)1.12 狼之界2更新

2024.7.9 第二十一版(完善了预言家,天选之子和狼美人)1.13 魔法世界4更新/狼之界3更新/黑暗世界5更新

2024.7.10 第二十二版(加入了石像鬼,代码800+行)1.14黑暗世界6更新

2024.7.31 第二十三版(修好了一个小bug)1.14.1乱七八杂的更新

2024.11.23 第二十四(Man)版(加入了蚀时狼妃(未完善)) 1.14.2 狼之界4更新/黑暗世界7更新/时间与魔法2更新

Code

#include

#include

#include

using namespace std;

const int N=20;

//1 狼人 2 平民 3 女巫 4 预言家 5 猎人

//6 守卫 7 白痴 8 咒狐 9 守墓人 10 乌鸦

//11 狼王 12 魔术师 13 摄梦人 14 骑士 15 禁言长老

//16 奇迹商人 17 老流氓 18 猎魔人 19 纯白之女 20 定序王子

//21 驯熊师 22 隐狼 23 狼美人 24 石像鬼 25 蚀时狼妃

int Knight_Show_Identity;

int Ershi_Wolf_Concubine;

int Prince_Show_Identity;

int Live_of_Player[N];

int Died_Yesterday[N];

int Witch_of_Panacea;

int Choose_Police[N];

int Witch_of_Poison;

int Knights_Number;

int Magic1,Magic2;

int Vote_List[N];

int Job_List[N];

int Good_Player;

bool Find_Idiot;

int Sleepwalker;

int Prohibition;

int Roue_Number;

int Bad_Player;

int Player_Num;

int Police_Man;

bool Curse_Fox;

int Chosen_Son;

int Day,Job_CS;

int Charm;

void Game_Start(){

printf("这是一个 弱肉强食 的世界\n只有更强的人,才能活下来……\n");

printf("天神,为了保护弱者而出现的平民……\n");

printf("狼人,一种诡异的狼族,可以幻化为人……\n");

printf("平民,一个靠智慧活下来的物种……\n");

printf("一场逻辑推理的游戏开始了……");

getch();

system("cls");

}

void Tell_Character(int i){

int Game_Player=Job_List[i];

if(Game_Player==1)

printf("你是 杀人如麻的[狼人]\n每天早上伪装成平民,晚上可以杀人\n阵营:[坏人]");

else if(Game_Player==2)

printf("你是 手无寸铁的[平民]\n只能用推理保全自己的性命\n阵营:[好人]");

else if(Game_Player==3)

printf("你是 善恶两面的[女巫]\n每天晚上可以用[灵药]救人,也可以用[毒药]杀人\n阵营:[好人]");

else if(Game_Player==4)

printf("你是 神通广大的[预言家]\n每天晚上可以预言一个人的身份\n阵营:[好人]");

else if(Game_Player==5)

printf("你是 保护百姓的[猎人]\n当你临死前,可以杀一个玩家(不管是好的还是坏的)\n阵营:[好人]");

else if(Game_Player==6)

printf("你是 守卫众人的[守卫]\n每天晚上可以保护一个人\n阵营:[好人]");

else if(Game_Player==7)

printf("你是 无比愚蠢的[白痴]\n当有人要放逐你时,你可以报出身份,但不能再投票了\n阵营:[好人]");

else if(Game_Player==8)

printf("你是 见风使舵的[咒狐]\n你可以是好人阵营,也可以是狼人阵营,但如果预言家预言你,你就死定了\n阵营:[第三方]");

else if(Game_Player==9)

printf("你是 守墓一生的[守墓人]\n每天晚上你可以与死去的鬼魂沟通,知道他的阵营\n阵营:[好人]");

else if(Game_Player==10)

printf("你是 被人厌恶的[乌鸦]\n每天晚上你可以诅咒一个玩家,是他在投票时多一票\n阵营:[好人]");

else if(Game_Player==11)

printf("你是 凶残无比的[狼王]\n每天早上伪装成平民,晚上可以杀人,当被他人杀死或被放逐,可以带走一人\n阵营:[坏人]");

else if(Game_Player==12)

printf("你是 神秘莫测的[魔术师]\n每天晚上可以交换两人身份,天明时两人身份互换回来\n阵营:[好人]");

else if(Game_Player==13)

printf("你是 使人梦游的[摄梦人]\n每天晚上可以是一人成为梦游者,使他无视所有伤害\n阵营:[好人]");

else if(Game_Player==14)

printf("你是 神勇无敌的[骑士]\n在警长竞选之后,投票放逐之前翻牌,并选择一人决斗 如果是狼人,就杀死他;如果是好人,就自刎(出局)\n阵营:[好人]");

else if(Game_Player==15)

printf("你是 危言耸听的[禁言长老]\n你可以在每天晚上禁言一人\n阵营:[好人]");

else if(Game_Player==16)

printf("你是 奔波四方的[奇迹商人]\n你可以选择一个幸运儿,给予他守卫的光辉结界(或者猎人的王者之枪)、预言家的命运之眼和女巫的致命毒药\n阵营:[好人]");

else if(Game_Player==17)

printf("你是 流落街头的[老流氓]\n你可以硬抗所有伤害,直至第二天发言结束,然后你就出局了\n阵营:[好人]");

else if(Game_Player==18)

printf("你是 杀魔如麻的[猎魔人]\n每天晚上,你可以狩猎一人:如果此人是狼人,则狼人出局;若此人是平民,则你自刎(你出局)\n阵营:[好人]");

else if(Game_Player==19)

printf("你是 清纯善良的[纯白之女]\n每天晚上可以查看一人的身份,从第二个晚上开始,一旦验到狼人,则狼人出局\n阵营:[好人]");

else if(Game_Player==20)

printf("你是 掌控时间的[定序王子]\n可以选择第二天早上自爆身份,并逆转时空,回到第二天投票之前\n阵营:[好人]");

else if(Game_Player==21)

printf("你是 能懂兽语的[驯熊师]\n当早晨,熊(存活状态下)发现自己旁边存活的人里有狼人,上帝/法官会发出警告 [熊咆哮了]\n阵营:[好人]");

else if(Game_Player==22)

printf("你是 伪善子虚的[隐狼]\n当语言家语言你的时候,始终为好人(所以不能刀人),如果所有队友都死了,你将获得刀人的权利\n阵营:[坏人]");

else if(Game_Player==23)

printf("你是 妩媚娇美的[狼美人]\n每晚可魅惑一人,当你死去时,此人也会被带走\n阵营:[坏人]");

else if(Game_Player==24)

printf("你是 诡异恐怖的[石像鬼]\n你可以具体查验一个人的身份,下半夜若其他狼人存活则不进狼窝处于闭眼状态\n阵营:[坏人]");

else if(Game_Player==25)

printf("你是 铁石心肠的[蚀时狼妃]\n你可以将任意玩家封锁到时空夹缝当中,当晚,此玩家的任何技能都视为对自己释放,使用后,此技能将永久失效\n阵营:[坏人]");

getch();

system("cls");

printf("玩家%d 请离开",i);

if(i!=Player_Num)

printf("玩家%d 请按下 Enter键 查看身份",i+1);

}

void Game_Player_Print(){//人物输出

for(int i=1;i<=Player_Num;i++){

printf("玩家%d:",i);

Tell_Character(i);

char ch;

scanf("%c",&ch);

system("cls");

}

}

void Wolf_Man(){//发动技能

printf("狼人,你要杀谁?");

int Kill;

scanf("%d",&Kill);

while(Job_List[Kill]==1){

printf("他是同类,请换一个\n");

scanf("%d",&Kill);

}

if(Kill==Sleepwalker)

Live_of_Player[Kill]=0;

if(Live_of_Player[Kill]!=2)

Live_of_Player[Kill]=-1;

}

void Witch(){

bool flag=0;

printf("女巫,");

if(Witch_of_Panacea){

printf("你有一瓶灵药,今天");

int Help,Witch_number=0;

bool flag2=0;

for(int j=1;j<=Player_Num;j++){

if(Live_of_Player[j]==-1){

printf("玩家%d ",j);

flag2=1;

}

if(Job_List[j]==3)

Witch_number=j;

}

if(!flag2)

printf("没有人死去");

else{

printf("\n被杀了,你要救谁?");

scanf("%d",&Help);

if(Knight_Show_Identity==Witch_number)

Help=Witch_number;

Live_of_Player[Help]=0;

if(Help!=0)

Witch_of_Panacea--;

}

printf("\n");

flag=1;

}

if(Witch_of_Poison){

printf("你有一瓶毒药,你要杀谁?");

int Witch_number=0;

for(int j=1;j<=Player_Num;j++)

if(Job_List[j]==3)

Witch_number=j;

int Kill;

scanf("%d",&Kill);

if(Knight_Show_Identity==Witch_number)

Kill=Witch_number;

Live_of_Player[Kill]=-1;

if(Kill==Sleepwalker)

Live_of_Player[Kill]=0;

if(Kill!=0)

Witch_of_Poison--;

printf("\n");

flag=1;

}

if(!flag)

printf("你什么都没有了");

}

void Prophet(){

printf("预言家,你要预言谁?");

int Problem;

scanf("%d",&Problem);

printf("玩家%d,是",Problem);

int Prophet_number=0;

for(int i=1;i<=Player_Num;i++)

if(Job_List[i]==4)

Prophet_number=i;

if(Knight_Show_Identity==Prophet_number)

Problem=Prophet_number;

if(Job_List[Problem]==1||Job_List[Problem]==11||Job_List[Problem]==23||Job_List[Problem]==24)

printf("坏人");

else if(Job_List[Problem]!=8)

printf("好人");

else{

printf("咒狐");

Live_of_Player[Problem]=-1;

}

char c;

scanf("%c",&c);

}

void Guard(){

printf("守卫,你要守护谁?");

int Help;

scanf("%d",&Help);

int Guard_number=0;

for(int i=1;i<=Player_Num;i++)

if(Job_List[i]==6)

Guard_number=i;

while(Help>Player_Num||Live_of_Player[Help]==1){

printf("不能输入此编号\n");

scanf("%d",&Help);

}

if(Knight_Show_Identity==Guard_number)

Help=Guard_number;

if(Job_List[Help]!=8)

Live_of_Player[Help]=2;

}

void Tomb_Keeper(){

printf("守墓人,昨晚死去的 ");

for(int i=1;i<=Player_Num;i++)

if(Died_Yesterday[i]==1){

printf("玩家%d 是",i);

if(Job_List[i]==1||Job_List[i]==8||Job_List[i]==11)

printf(" 坏人 ");

else

printf(" 好人 ");

}

}

void Crow(){

printf("乌鸦,你要诅咒谁?");

int Curse;

scanf("%d",&Curse);

Vote_List[Curse]++;

}

void Wolf_King(){

printf("狼王,你要杀谁?");

int Kill;

scanf("%d",&Kill);

while(Job_List[Kill]==1){

printf("他是同类,请换一个\n");

scanf("%d",&Kill);

}

if(Kill==Sleepwalker)

Live_of_Player[Kill]=0;

if(Live_of_Player[Kill]!=2)

Live_of_Player[Kill]=-1;

}

void Magician(){

printf("魔术师,你要交换哪两个人的身份?");

scanf("%d%d",&Magic1,&Magic2);

swap(Job_List[Magic1],Job_List[Magic2]);

}

void Dream_Photographer(){

printf("摄梦人,你要选择谁是梦游者?");

scanf("%d",&Sleepwalker);

Live_of_Player[Sleepwalker]=2;

}

void Knight(){

printf("骑士,你明天要翻牌吗?(要输入1,不要输入0)");

scanf("%d",Knight_Show_Identity);

}

void Forbidden_Elder(){

printf("禁言长老,你明天要禁言谁?");

scanf("%d",&Prohibition);

}

void Miracle_Merchant(){

printf("奇迹商人,你要选择谁为幸运儿?");

scanf("%d",&Chosen_Son);

printf("那你要让他获得什么?(守卫的光辉结界是1、预言家的命运之眼是2、女巫的致命毒药是3)");

scanf("%d",&Job_CS);

}

void Demon_Hunter(int x){

printf("猎魔人,你要杀谁?");

int Kill;

scanf("%d",&Kill);

if(Job_List[Kill]==1||Job_List[Kill]==11){

printf("玩家%d死去了",&Kill);

Live_of_Player[Kill]=-1;

}else{

printf("你死去了");

Live_of_Player[x]=-1;

}

}

void Pure_White_Daughter(){

printf("纯白之女,你要检验谁?");

int Problem;

scanf("%d",&Problem);

printf("玩家%d,是",Problem);

if(Job_List[Problem]==1||Job_List[Problem]==11)

printf("坏人");

else

printf("好人");

}

void Prince_of_Order(){

printf("定序王子,你要暴身份吗?(要输入1,不要输入0)");

scanf("%d",&Prince_Show_Identity);

}

void Hidden_Wolf(){

if(Bad_Player!=1)

printf("隐狼,请继续掩藏自己的身份");

else{

printf("隐狼,你的亲戚朋友都死了,你要报仇,你成为了狼人一般的怪物");

printf("\n你要杀谁?");

int Kill;

scanf("%d",&Kill);

Live_of_Player[Kill]=-1;

}

}

void Wolf_Beauty(){

printf("狼美人,你要杀谁?");

int Kill;

scanf("%d",&Kill);

while(Job_List[Kill]==1){

printf("他是同类,请换一个\n");

scanf("%d",&Kill);

}

if(Kill==Sleepwalker)

Live_of_Player[Kill]=0;

if(Live_of_Player[Kill]!=2)

Live_of_Player[Kill]=-1;

printf("狼美人,你要魅惑谁?");

scanf("%d",&Charm);

}

void Gargoyl(){

printf("石像鬼,你要查验谁的身份?");

int Problem;

scanf("%d",&Problem);

printf("玩家%d他是 ",Problem);

switch(Problem){

case 1:

printf("狼人");

break;

case 2:

printf("平民");

break;

case 3:

printf("女巫");

break;

case 4:

printf("预言家");

break;

case 5:

printf("猎人");

break;

case 6:

printf("守卫");

break;

case 7:

printf("白痴");

break;

case 8:

printf("咒狐");

break;

case 9:

printf("守墓人");

break;

case 10:

printf("乌鸦");

break;

case 11:

printf("狼王");

break;

case 12:

printf("魔术师");

break;

case 13:

printf("摄梦人");

break;

case 14:

printf("骑士");

break;

case 15:

printf("禁言长老");

break;

case 16:

printf("奇迹商人");

break;

case 17:

printf("老流氓");

break;

case 18:

printf("猎魔人");

break;

case 19:

printf("纯白之女");

break;

case 20:

printf("定序王子");

break;

case 21:

printf("驯熊师");

break;

case 22:

printf("隐狼");

break;

case 23:

printf("狼美人");

break;

case 24:

printf("石像鬼");

break;

}

if(Player_Num==1){

printf("\n石像鬼,你的亲戚朋友都死了,你要报仇,你成为了狼人一般的怪物");

printf("\n你要杀谁?");

int Kill;

scanf("%d",&Kill);

Live_of_Player[Kill]=-1;

}

}

bool Is_Idiot(int x){//其他函数

return Job_List[x]==7;

}

void Chosen_Son_of_Guard(){

printf("天选之子,你要守护谁?");

int Help;

scanf("%d",&Help);

while(Help>Player_Num||Live_of_Player[Help]==1){

printf("不能输入此编号\n");

scanf("%d",&Help);

}

if(Job_List[Help]!=8)

Live_of_Player[Help]=2;

}

void Chosen_Son_of_Prophet(){

printf("天选之子,你要预言谁?");

int Problem;

scanf("%d",&Problem);

printf("玩家%d,是",Problem);

if(Job_List[Problem]==1||Job_List[Problem]==11||Job_List[Problem]==23)

printf("坏人");

else if(Job_List[Problem]!=8)

printf("好人");

else{

printf("咒狐");

Live_of_Player[Problem]=-1;

}

char c;

scanf("%c",&c);

}

void Chosen_Son_of_Witch(){

bool flag=0;

printf("天选之子,你有一瓶毒药,你要杀谁?");

int Kill;

scanf("%d",&Kill);

Live_of_Player[Kill]=-1;

if(Kill==Sleepwalker)

Live_of_Player[Kill]=0;

flag=1;

}

void Last_Words(){

printf("请发表遗言:");

char c='0';

while(c!='\n')

scanf("%c",&c);

}

void Knight_Deul(){

if(Knight_Show_Identity==1){

printf("玩家%d:勇敢的骑士,你要与谁决斗?",Knights_Number);

int Deul_People;

scanf("%d",&Deul_People);

if(Job_List[Deul_People]==1||Job_List[Deul_People]==11){

printf("死去的是 玩家%d,他是狼人",Deul_People);

Live_of_Player[Deul_People]=1;

}else{

printf("死去的是 玩家%d,他是勇敢的骑士",Knights_Number);

Live_of_Player[Knights_Number]=1;

}

}

getch();

system("cls");

}

void Hunter_Angry(int x){//死前释放技能

printf("玩家%d:是猎人\n",x);

printf("他决定在放逐前杀一个危险人物……");

int Kill;

scanf("%d",&Kill);

while(Kill>Player_Num||Live_of_Player[Kill]==1){

printf("不能输入此编号\n");

scanf("%d",&Kill);

}

Live_of_Player[Kill]=1;

}

void Wolf_King_Angey(int x){

printf("玩家%d:是狼王\n",x);

printf("他决定在放逐前杀一个玩家……");

int Kill;

scanf("%d",&Kill);

Live_of_Player[Kill]=1;

}//以下是狼人杀系统函数

void Day_is_Light(){//天亮了

Day++;

swap(Job_List[Magic1],Job_List[Magic2]);

printf("天亮了\n昨晚");

bool flag=1;

for(int i=1;i<=Player_Num;i++)

if(Live_of_Player[i]==-1&&Job_List[i]==13)

Live_of_Player[Sleepwalker]=-1;

else if(Live_of_Player[i]==-1&&Job_List[i]==23)

Live_of_Player[Charm]=-1;

for(int i=1;i<=Player_Num;i++){

Died_Yesterday[i]=0;

if(Live_of_Player[i]==-1&&i!=Roue_Number){

printf("玩家%d ",i);

Live_of_Player[i]=1;

Died_Yesterday[i]=1;

if(Job_List[i]==1||Job_List[i]==11||Job_List[i]==23||Job_List[i]==24)

Bad_Player--;

else

Good_Player--;

if(Job_List[i]==8)

Curse_Fox=1;

flag=0;

}else if(Live_of_Player[i]==2){

Live_of_Player[i]=0;

}

}

if(!flag){

printf("死了\n");

if(Day!=2)

for(int i=1;i<=Player_Num;i++)

if(Live_of_Player[i]==1){

printf("玩家%d",i);

Last_Words();

}

for(int i=1;i<=Player_Num;i++){

if(Live_of_Player[i]==1)

if(Job_List[i]==5)

Hunter_Angry(i);

else if(Job_List[i]==11)

Wolf_King_Angey(i);

}

}else

printf("是个平安夜");

}

void Ones_Vote(int x){//投票

printf("玩家%d :你觉得谁是狼人?",x);

int Suspected_Player;

scanf("%d",&Suspected_Player);

while(Live_of_Player[Suspected_Player]==1||Is_Idiot(Suspected_Player)){

if(Live_of_Player[Suspected_Player]==1)

printf("此人已死,请换一个人\n");

else{

printf("此人是白痴,请换一个人\n");

Find_Idiot=1;

}

scanf("%d",&Suspected_Player);

}

Vote_List[Suspected_Player]++;

if(x==Police_Man)

Vote_List[Suspected_Player]++;

printf("\n");

}

void Vote(){//投票总函数

printf("\n投票 开始!\n");

for(int i=1;i<=Player_Num;i++){

if(Live_of_Player[i]!=1){

if(Find_Idiot&&Job_List[i]==7)

continue;

Ones_Vote(i);

}

}

int maxx=-1;

for(int i=1;i<=Player_Num;i++){

if(Vote_List[i]>=Vote_List[maxx])

maxx=i;

}

if(maxx!=-1){

printf("玩家%d 的票最多,村长叫武士将他放逐……\n玩家%d Out",maxx,maxx);

Live_of_Player[maxx]=1;

Died_Yesterday[maxx]=1;

if(Job_List[maxx]==5)

Hunter_Angry(maxx);

else if(Job_List[maxx]==11)

Wolf_King_Angey(maxx);

if(Job_List[maxx]==1||Job_List[maxx]==11||Job_List[maxx]==23||Job_List[maxx]==24)

Bad_Player--;

else

Good_Player--;

}else

printf("所有人都弃票了,新一轮生死争斗又开始了……");

for(int i=1;i<=Player_Num;i++)

Vote_List[i]=0;

char ch1;

scanf("%c",&ch1);

scanf("%c",&ch1);

system("cls");

}

void Idea(){//发表意见

printf("众人发表意见……\n");

for(int i=1;i<=Player_Num;i++){

if(Live_of_Player[i]==0&&i!=Prohibition){

printf("玩家%d发表意见:",i);

char ch='0';

while(ch!='\n')

scanf("%c",&ch);

printf("\n");

}

}

if(Live_of_Player[Roue_Number]==-1){

Live_of_Player[Roue_Number]=1;

printf("老流氓尽了自己最后一口气,发表了意见……");

}

}

void Prince_of_Idea(int x){

printf("定序王子(玩家%d)又发表了意见:",x);

char ch='0';

while(ch!='\n')

scanf("%c",&ch);

printf("\n");

}

void Reverse_space_time(){

int Prince=0;

for(int i=1;i<=Player_Num;i++)

if(Job_List[i]==20)

Prince=i;

printf("玩家%d拿出了那神秘的镇国之宝……",Prince);

printf("时间倒流,时间又回到了投票之前……\n");

printf("等众人反应过来时,发表意见和投票再次开始……\n");

Idea();

Prince_of_Idea(Prince);

Vote();

}

void Police_Man_Choose(){

printf("现在,开始竞选警长\n");

for(int i=1;i<=Player_Num;i++){

if(Live_of_Player[i]==0){

printf("玩家%d:你认为谁最适合当警长?",i);

int Choose;

scanf("%d",&Choose);

while(Live_of_Player[Choose]==1){

printf("此人已死,请换个人\n");

scanf("%d",&Choose);

}

Choose_Police[Choose]++;

printf("\n");

}

}

Police_Man=-1;

for(int i=1;i<=Player_Num;i++)

if(Choose_Police[i]>Choose_Police[Police_Man])

Police_Man=i;

if(Police_Man!=-1)

printf("玩家%d 很荣幸成为警长\n",Police_Man);

else

printf("很遗憾,没有人成为警长\n");

for(int i=1;i<=Player_Num;i++)

Choose_Police[i]=0;

char c;

scanf("%c",&c);

system("cls");

}

void Anti_Peeping_Interface(int x){

printf("玩家%d请闭眼",x);

if(x!=Player_Num)

printf(",玩家%d请睁眼",x+1);

return ;

}

void Day_is_Dark(){//天黑了

printf("天黑了……\n");

printf("狼人出来觅食了……\n");

printf("神职人员的使命……\n");

char ch;

scanf("%c",&ch);

system("cls");

printf("天黑,请闭眼\n");

for(int i=1;i<=Player_Num;i++){

if(Live_of_Player[i]==1)//鬼不能用技能

continue;

printf("玩家%d:",i);

if(i==Chosen_Son&&Job_List[i]!=1&&Job_List[i]!=11){

printf("你是奇迹商人选中的幸运儿(天选之子),你获得了:");

if(Job_CS==1){

printf("守卫的光辉结界,所以……\n");

Chosen_Son_of_Guard();

}else if(Job_CS==2){

printf("预言家的命运之眼,所以……\n");

Chosen_Son_of_Prophet();

}else{

printf("女巫的致命毒药,所以……\n");

Chosen_Son_of_Witch();

}

}

if(Job_List[i]==2||//平民不能睁眼

Job_List[i]==7||//白痴不能睁眼

Job_List[i]==8||//咒狐不能睁眼

Job_List[i]==17||//老流氓不能睁眼

Job_List[i]==21)//训熊师不能睁眼

printf("请开动脑筋,让自己存活,使己方取得胜利!");

else if(Job_List[i]==1)

Wolf_Man();

else if(Job_List[i]==3)

Witch();

else if(Job_List[i]==4)

Prophet();

else if(Job_List[i]==6)

Guard();

else if(Job_List[i]==9)

Tomb_Keeper();

else if(Job_List[i]==10)

Crow();

else if(Job_List[i]==11)

Wolf_King();

else if(Job_List[i]==12)

Magician();

else if(Job_List[i]==13)

Dream_Photographer();

else if(Job_List[i]==14){

Knights_Number=i;

Knight();

}else if(Job_List[i]==15)

Forbidden_Elder();

else if(Job_List[i]==16)

Miracle_Merchant();

else if(Job_List[i]==18)

Demon_Hunter(i);

else if(Job_List[i]==19)

Pure_White_Daughter();

else if(Job_List[i]==20)

Prince_of_Order();

else if(Job_List[i]==22)

Hidden_Wolf();

else if(Job_List[i]==23)

Wolf_Beauty();

//新的人物正在更新……

char c;

scanf("%c",&c);

system("cls");

Anti_Peeping_Interface(i);

scanf("%c",&c);

system("cls");

}

}

void Game_not_Start(){//初始化

Witch_of_Panacea=1;

Witch_of_Poison=1;

}

void Bear_Tamer(){

int Bear_Trainer=0;

for(int i=1;i<=Player_Num;i++)

if(Job_List[i]==21)

Bear_Trainer=i;

if(Bear_Trainer==0)

return ;

for(int i=Bear_Trainer-1;i>=1;i--)

if(Live_of_Player[i]==0){

if(Job_List[i]==1||Job_List[i]==11){

printf("熊咆哮了!");

return ;

}

break;

}

for(int i=Bear_Trainer+1;i<=Player_Num;i++)

if(Live_of_Player[i]==0){

if(Job_List[i]==1||Job_List[i]==11){

printf("熊咆哮了!");

return ;

}

break;

}

}

void Noon(){

Bear_Tamer();

if(Player_Num<=12)

Police_Man_Choose();

if(Knight_Show_Identity==1)

Knight_Deul();

Idea();

Vote();

if(Prince_Show_Identity==1)

Reverse_space_time();

}

void Game_Run(){//游戏运行

Game_not_Start();

while(Good_Player>0&&Bad_Player>0){

Day_is_Dark();

Day_is_Light();

if(Good_Player&&Bad_Player>0){

Noon();

}

}

}

void Game_Over(){//游戏结束

if(Curse_Fox==0){//特殊情况

printf("咒狐赢了……\n");

printf("两大种族都没有成为最后的赢家……\n");

printf("那只咒狐在山崖上狂笑不止……\n");

}else if(Bad_Player==0){

printf("平民赢了……\n");

printf("村庄恢复了宁静……\n");

printf("狼人的尸体在村庄中被火化……\n");

printf("丛林中再也没有狼嚎……");

}else{

printf("狼人赢了……\n");

printf("村庄……有着死一般的宁静……\n");

printf("村民的尸体,被狼人吃得只剩白骨……\n");

printf("狼人,又开始对下一个村庄的屠杀……");

}

char ch;

scanf("%c",&ch);

system("cls");

printf("GameOver");

}

void Init_Job(){

printf("主持人,请问:\n");

printf("一共有多少人?\n");

scanf("%d",&Player_Num);

printf("好的,他们分别是什么身份?\n");

printf("以下是人物列表(输入身份时,请输入数字)\n");

printf("1 狼人 2 平民 3 女巫 4 预言家 5 猎人 \n");

printf("6 守卫 7 白痴 8 咒狐 9 守墓人 10 乌鸦 \n");

printf("11 狼王 12 魔术师 13 摄梦人 14 骑士 15 禁言长老\n");

printf("16 奇迹商人 17 老流氓 18 猎魔人 19 纯白之女 20 定序王子\n");

printf("21 驯熊师 22 隐狼 23 狼美人 24 石像鬼 25 蚀时狼妃\n");

Curse_Fox=1;

for(int i=1;i<=Player_Num;i++){

scanf("%d",&Job_List[i]);

if(Job_List[i]!=1&&Job_List[i]!=8&&Job_List[i]!=11&&Job_List[i]!=22&&Job_List[i]==23&&Job_List[i]==25)

Good_Player++;

else

Bad_Player++;

if(Job_List[i]==8)

Curse_Fox=0;//初始化

if(Job_List[i]==9)

Roue_Number=i;//初始化

}

printf("好……\n");

printf("游戏开始……\n");

char c;

scanf("%c",&c);

system("cls");

}

int main(){

Game_Start();

Init_Job();

Game_Player_Print();

Game_Run();

Game_Over();

return 0;

}

Copyright © 2088 竞技暴风-网游赛事活动中心 All Rights Reserved.
友情链接