服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C/C++ - 用c语言实现《狼人杀》游戏发牌系统

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

2022-09-01 11:47Wccyy883 C/C++

大家好,本篇文章主要讲的是用c语言实现《狼人杀》游戏发牌系统,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下

1.前言

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

2.程序效果

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

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

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

3.完整代码

?
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
#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语言狼人杀内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/weixin_64524066/article/details/122639351

延伸 · 阅读

精彩推荐
  • C/C++C/C++语言八大排序算法之桶排序全过程示例详解

    C/C++语言八大排序算法之桶排序全过程示例详解

    这篇文章主要为大家介绍了C/C++语言八大排序算法之桶排序算法过程的示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步...

    xr4157992022-02-25
  • C/C++EasyC++全局变量

    EasyC++全局变量

    这篇文章主要介绍了EasyC++全局变量,外部变量是在函数外部定义的,因此对于所有的函数而言都是外部的。因此外部变量也被称为全局变量。接下来一起进...

    梁唐6472022-07-16
  • C/C++利用C/C++实现贪吃蛇游戏

    利用C/C++实现贪吃蛇游戏

    这篇文章主要为大家详细介绍了利用C/C++实现贪吃蛇游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    what how when why5772022-02-10
  • C/C++C语言实现大学生考勤管理系统

    C语言实现大学生考勤管理系统

    这篇文章主要为大家详细介绍了C语言实现大学生考勤管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    哈拉泽空10922021-10-18
  • C/C++C语言实现简单航班管理系统

    C语言实现简单航班管理系统

    这篇文章主要为大家详细介绍了C语言实现简单航班管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    h___q5212021-08-11
  • C/C++C++可变参数的函数与模板实例分析

    C++可变参数的函数与模板实例分析

    这篇文章主要介绍了C++可变参数的函数与模板,非常重要的概念,需要的朋友可以参考下...

    C++教程网9572021-01-28
  • C/C++学习C和C++的9点经验总结

    学习C和C++的9点经验总结

    本文给大家总结了一下我们在学习C和C++的时候的一些经验和需要注意的事项,希望能给大家一些帮助,少走些弯路...

    hebedich9992021-03-18
  • C/C++C/C++利用libxml2高效输出XML大文件详解

    C/C++利用libxml2高效输出XML大文件详解

    这篇文章主要给大家介绍了关于C/C++利用libxml2高效输出XML大文件的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学...

    infoworld9462021-06-10