我的编程空间,编程开发者的网络收藏夹
学习永远不晚

用c语言实现《狼人杀》游戏发牌系统

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

用c语言实现《狼人杀》游戏发牌系统

1.前言

新年将至,亲戚朋友在家中免不了玩一下桌游,狼人杀确实是一个不错选择。那么针对正常的狼人杀玩法(8人局和12人局),博主利用一上午时间做了一个《狼人杀自动发牌系统》(可查看游戏教程和人物属性)。接下来就直接看程序效果和完整代码吧! 

2.程序效果

3.完整代码

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<windows.h>
 
void charability();
 
void gamerule8();
 
void gamerule12();
 
void sortplayer(int x);
 
void giveplayer8();
 
void giveplayer12();
 
int main()
{
	while(1)
	{
	
	int number; 
	printf("-----------------------------------输入“1”选择发牌模式(8人局 or 12人局)--------------------------------------------\n");
	printf("------------------------------------------输入“2”查看游戏规则--------------------------------------------------------\n"); 
	printf("------------------------------------------输入“3”查看角色技能-------------------------------------------------------\n");
	printf("------------------------------------------输入“4”退出游戏------------------------------------------------------------\n");
	printf("请输入:\n");
	scanf("%d",&number);
	if(number==1)
	{
    int number2; 
    system("cls");
	printf("------------------------------------------输入“1”为8人局模式发牌-----------------------------------------------------\n");
	printf("------------------------------------------输入“2”为12人局模式发牌----------------------------------------------------\n");
	printf("请输入:\n");
	scanf("%d",&number2);
	system("cls");
	if(number2==1)
	{
	giveplayer8();
	}else if(number2==2)
	{
	giveplayer12();	
	}else{
		
		goto start;
	}
	
	}else if(number==2)
	{
	system("cls");
	int number4;
	printf("----------------------------------------输入“1”查看8人局规则-----------------------------------------------------\n");
	printf("----------------------------------------输入“2”查看12人局规则-----------------------------------------------------\n");	
	printf("请输入:\n");
	scanf("%d",&number4);
	system("cls");
	if(number4==1)
	{
		gamerule8();
	}else if(number4==2){
		gamerule12();
	}else{
		
		goto start;
	}
	
	}else if(number==3){
		charability();
	}else if(number==4)
	{
		break;
	}else{
	start:
	printf("----------------------------------------请重新输入正确的指令--------------------------------------------------\n\n");
	}
}
   system("cls");
   printf("-------------------------------------------游戏结束--------------------------------------------------------------------\n");
   printf("-------------------------------------------游戏结束--------------------------------------------------------------------\n");
   printf("-------------------------------------------游戏结束--------------------------------------------------------------------\n");
   printf("--------------------------------------MADE BY CSDN: Wccyy883-----------------------------------------------------------\n");
   system("pause");
   return 0;
}
void charability()
{
	system("cls");
	printf("1.普通村民:\n本身没有任何能力,一觉睡到天亮却要考虑很多事情。平民会接收到真假混杂的信息,需要从中分辨和判断出正确的信息。\n");
	printf("2.狼人:\n每天晚上会残忍地杀害一个村民,到了白天,狼人要假扮村民隐藏自己的身份,故意误导或陷害其他村民。\n") ;
	printf("3.预言家:\n每晚预言家可以窥视一个玩家的真实身份,是村庄里的灵魂人物,带领好人走向胜利。\n"); 
	printf("4.女巫:\n女巫拥有两瓶药,解药可以救活一名当晚被狼人杀害的玩家,毒药可以毒杀一名玩家,女巫在每天晚上最多使用一瓶药,女巫不可自救.\n");
	printf("5.猎人:\n当猎人被狼人杀害或被村民处决时,他可以射杀任意一个玩家。但当猎人由于意外死亡(如女巫的毒药或者被殉情而死)他不可在死前射出子弹\n");
	printf("6.警长:\n附加身份牌,游戏开始后第一天从所有玩家中通过投票选举出一名玩家授予警长。警长在白天最后发言并且投票时有1.5 票。\n");
	printf("7.白痴:\n好人阵营,隐神牌,白痴平时与普通村民无异,但当他被村民票死的时候,他可以翻牌亮出身份,若如此做就能免死。在所有玩家发言结束后,多一次发言机会,但是翻牌以后的白痴不能投票。\n");
}
void gamerule8()
{
    printf("8人狼人杀的配置一般为:3个狼、2个平民、1个预言家、1个猎人和1个女巫,这也是能凑成一局狼人杀最基本的搭配\n"); 
    printf("因为正常情况下一局狼人杀无论人数多少都需要3个狼人和3个神职人员,否则游戏很难进行下去,平民人数则根据你们现实的人数进行调整\n"); 
    
}
void gamerule12()
{
	printf("(标准12人局包括:4个平民,4个狼人,1个预言家,1个女巫,1个猎人,1个白痴) 法官:天黑请闭眼,狼人请睁眼。 假如你手牌是狼人(即12号玩家):\n");
	printf("法官:天黑请闭眼,狼人请睁眼。 假如你手牌是狼人(即12号玩家): 你需要睁开眼睛,此时会看见另外3个睁眼玩家,没错,他们就是你的狼同伴了,你的任务就是和他们一起,携手把好人杀掉。\n");
	printf("你无需比划任何手势,也不需要努力去参透伙伴中所谓的高玩在比划的任何手势,静静的看着他们即可,仅仅只需要记住伙伴们最终向法官出示的选择杀掉的那个号码。 然后闭眼,等待。 法官:狼人请闭眼,女巫请睁眼。\n");
	printf("假如你手牌是女巫(即11号玩家): 整局游戏女巫手上有 一瓶救药 和 一瓶毒药,分别用来 救一个人 和 毒死一个人。 每一个晚上最多使用一瓶。\n");
 
}   
 
void sortplayer(int x)
{
	if(x==1)printf("普通平民\n");
	else if(x==2)printf("普通平民\n");
	else if(x==3)printf("狼\n");
	else if(x==4)printf("狼\n");
	else if(x==5)printf("狼\n");
	else if(x==6)printf("女巫\n");
	else if(x==7)printf("预言家\n");
	else if(x==8)printf("猎人\n"); 
	else if(x==9)printf("普通平民\n");
	else if(x==10)printf("普通平民\n");
	else if(x==11)printf("狼\n");
	else if(x==12)printf("白痴\n");
}
void giveplayer8()
{
	srand(time(NULL));
	int a[8]={0};
	int i;
	int all;
	for(i=0;i<8;i++)
	{
		while(1){
		 all=rand()%8+1;
		int j,t;
		t=0;
		for(j=0;j<8;j++)
		{
			if(a[j]==all)
			{
				t=1;
			}
		}
		if(t==0)
		{
			break;
		}
	}
	a[i]=all;
	}
	printf("\n");
   for(i=0;i<8;i++)
	{
		printf("%d号玩家身份:\n",i+1);
		sortplayer(a[i]);
	}
	
}
 
void giveplayer12()
{
	srand(time(NULL));
	int a[12]={0};
	int i;
	int all;
	for(i=0;i<12;i++)
	{
		while(1){
		 all=rand()%12+1;
		int j,t;
		t=0;
		for(j=0;j<12;j++)
		{
			if(a[j]==all)
			{
				t=1;
			}
		}
		if(t==0)
		{
			break;
		}
	}
	a[i]=all;
	}
	printf("\n");
   for(i=0;i<12;i++)
	{
		printf("%d号玩家身份:\n",i+1);
		sortplayer(a[i]);
	}
}

总结

到此这篇关于用c语言实现《狼人杀》游戏发牌系统的文章就介绍到这了,更多相关c语言狼人杀内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

用c语言实现《狼人杀》游戏发牌系统

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

利用C++实现简易的狼人杀游戏

狼人杀游戏是一款非常有趣的角色扮演游戏,它需要玩家之间互相猜测身份并进行投票,通过推理来找出真正的狼人。本文将用C++实现这一游戏,感兴趣的可以了解一下
2023-05-14

怎么用C++实现简易的狼人杀游戏

本篇内容介绍了“怎么用C++实现简易的狼人杀游戏”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!以下是一个基本的狼人杀游戏的C++实现,其中包
2023-07-05

怎样用C语言实现纸牌游戏

今天就跟大家聊聊有关怎样用C语言实现纸牌游戏,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1. 基本要求一副没有花牌(J、Q、K、A、大小王)的扑克牌,两个人进行纸牌游戏,其中一个人
2023-06-22

怎么用C语言实现开发飞机游戏

这篇“怎么用C语言实现开发飞机游戏”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么用C语言实现开发飞机游戏”文章吧。一、前
2023-06-29

如何使用C语言实现校园导游系统

这篇文章主要介绍了如何使用C语言实现校园导游系统,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。设计目的中国地大物博,文化底蕴颇深,旅游资源更是丰富多彩,也越来越流行“大学打卡
2023-06-29

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录