#include<bits/stdc++.h>
#include<windows.h>
#include<conio.h>
using namespace std;
#define cls system("cls")
#define sp Sleep
#define rd rand
#define ef else if
#define pe system("pause")
#define ct cout
void pd(int s[],int n){
if(s[n]==1)ct<<"杀手";ef(s[n]==2)ct<<"警察";
ef(s[n]==3)ct<<"平民";ef(s[n]==4)ct<<"狙击手";
ef(s[n]==5)ct<<"医生";
puts("");
}
void brc1(){
srand(time(0));
int a,b=20,i,j=0,k,l=0,m[21],n=rd()%20+1,p=0,s[21]={0}
,w,d,e,f=0,g=1,lr,tp[21]={0},yy[21]={0},y=2,c=0,kk;
ct<<"你是"<<n<<"号\n正在分配身份\n";
sp(1500);
for(i=1;i<21;i++)m[i]=1;
for(i=1;i<21;i++)do{
a=rd()%5+1;
if(a==1&&l<4)l++,s[i]=1;ef(a==2&&w<4)w++,s[i]=2;
ef(a==4&&p<2)p++,s[i]=4;ef(a==3&&j<9)j++,s[i]=3;
ef(a==5&&!c)c++,s[i]=5;
}while(s[i]==0);
ct<<"你的身份是";
pd(s,n);
ct<<"游戏将在3秒后开始\n";
sp(3000);
do{
bool f1=0,f2=0;
lr=0;
ct<<"第"<<g<<"晚开始\n";
for(i=1;i<21;i++){
if(i==n&&m[n]==1){
if(s[n]==1){
for(k=1;k<21;k++)if(m[k]==1&&s[k]!=1)ct<<k<<' ';
ct<<"\n你选择杀掉\n";
cin>>a;
kk=a;
ct<<"\n杀手杀了"<<a<<"号";
pd(s,a);
b--;
}ef(s[n]==2){
for(k=1;k<21;k++)if(m[k]==1&&s[i]!=2)ct<<k<<' ';
ct<<"\n你选择查验谁的身份\n";
cin>>a;
if(s[a]==1){
ct<<a<<"号是杀手,请注意\n";
sp(1000);
}ef(s[a]==4){
ct<<a<<"号是狙击手,请注意\n";
sp(1000);
}else ct<<a<<"号是平民\n";
}ef(s[n]==4){
for(k=1;k<21;k++)if(m[k]==1&&s[i]!=4)ct<<k<<' ';
ct<<"\n你选择杀掉\n";
cin>>a;m[a]=0;
ct<<"\n狙击手杀了"<<a<<"号";
pd(s,a);
b--;
}
}ef(s[i]==1&&m[i]==1&&s[n]!=1&&!f1){
f1=1;
do a=rd()%20+1;while(a==i||m[a]==0||s[a]==1);
ct<<"杀手杀掉了"<<a<<"号";
pd(s,a);
kk=a;
b--;
}ef(s[i]==2&&m[i]==1&&s[n]!=2&&!f2){
f2=1;
if(f==0||m[f]==0){
do a=rd()%20+1;while(a==i||m[a]==0);
if(s[a]==1)yy[a]=1;ef(s[a]==3)yy[a]=3;
}
}ef(s[i]==1&&m[i]==1){
do a=rd()%20+1;while(a==i||m[a]==0);
ct<<"狙击手杀掉了"<<a<<"号";
pd(s,a);
m[a]=0;
b--;
}ef(s[i]==5){
f=0;
while(f==0){
a=rand()%2+1;
if(a==1&&y>0){
y--;
f=1;
int a;
do a=rand()%15+1;while(a==i||m[a]==0);
m[a]=0;
cout<<"医生针死了"<<b<<"号";
pd(s,a);
b--;
}ef(a==2&&g>1&&y>0){
y--;
f=1;
kk=0;
b++;
cout<<"医生救活了"<<kk<<"号\n";
m[a]=1;
}else break;
}
}
}
if(s[n]==4){
cout<<"\n你选择 1.杀 还是 2.救\n";
f=0;
while(f==0){
cin>>a;
if(a==1&&y){
y--;
f=1;
for(k=1;k<21;k++)if(m[k]==1&&k!=n)ct<<k<<' ';
cin>>a;
pd(s,a);
m[a]=0;
b--;
}ef(a==2&&y>0){
y--;
f=1;
kk=0;
b++;
}else cout<<"针剂不足\n";
}
}
m[kk]=0;
sp(1000);
int p[21]={0};
ct<<"第"<<g<<"晚结束\n\n";
if(m[n]==0){
ct<<"你已经>>死<<了";
break;
}
ct<<"存活:\n ";
for(i=1;i<21;i++)if(m[i]==1)ct<<i<<' ';
ct<<"\n请投票....\n";
for(i=1;i<21;i++){
if(i==n&&m[n]==1){
ct<<"你选择投几号\n";
cin>>a;
p[a]++;
ct<<"\n"<<i<<"->"<<a<<'\n';
if(s[a]==3)tp[a]=i;
}ef(m[i]==1){
do a=rd()%20+1;while(m[a]==0||a==i);
p[a]++;
ct<<i<<"->"<<a<<'\n';
}
}
pe;ct<<"投票情况:\n";
for(i=1;i<21;i++)if(m[i]==1)ct<<i<<"号票数:"<<p[i]<<'\n';
e=-100;
for(i=1;i<21;i++)if(p[i]>e)d=i,e=p[i];
m[d]=0;
ct<<d<<"死了\nta的身份是";
b--;
pd(s,d);
g++;
if(s[n]!=1)for(i=1;i<21;i++)if(s[i]==1&&m[i]==1)lr=1;
ef(s[n]==1&&b==2)lr=0;
pe;
}while(m[n]==1&&b>1&&lr);
ct<<"\n\n\n游戏结束\n";
for(i=1;i<21;i++){
ct<<i<<"号的身份是:";
pd(s,i);
if(m[i])cout<<"存活\n";else cout<<"死亡\n";
}
}
int main(){
cout<<"1.20人模式(医生,警察,狙击手,平民,杀手)\n";
int a=getch();
if(a=='1')brc1();
}
相关推荐
C++小游戏狼人杀
【代码】C++小游戏狼人杀。
C++程序设计:狼人杀网络游戏开发完整源码.zip
C++程序设计:狼人杀网络游戏开发完整源码 C++编写,使用MFC做界面,分为服务器和客户端,附有源代码,启动时要先启动服务器,支持4-8人同时游戏
超长代码c++狼人杀
(抄板) #include<bits/stdc++.h> #include<cstdio> #include<cstdlib> #include<ctime> #include<windows.h> using namespace std; struct IDname { int geshu; string NAME; }; IDname jue_se[100]; struct ID { int num; bool life; s
狼人杀 c++游戏(直接复制)
内容概要:本文档提供了一个用C++编写的狼人杀简易模拟程序。程序中定义了角色身份、存活状态、道具使用等多个数组变量来跟踪每轮游戏的状态变化。玩家在启动时被随机分配为其中一种身份——预言家、女巫、两个平民或两个狼人之一,并根据不同的角色执行对应的功能函数。这些功能包括夜间行动(如杀人、解药救人等)、预言和白天讨论投票等环节。每个角色的具体行为都由预设逻辑控制,确保符合规则的同时增加游戏趣味性和不确定性。最终当某方所有成员死亡后,则另一方获得胜利。 适合人群:具有一定C++编程能力并对狼人杀游戏感兴趣的学习者或是开发者。 使用场景及目标:适用于教学环境,帮助学生理解面向对象编程思想以及掌握复杂程序结构的设计方法;同时也能作为狼人杀爱好者们练习游戏技巧的小工具。 其他说明:本程序仅实现了狼人杀的核心玩法,没有界面显示效果,需要用户通过命令行交互操作完成一轮又一轮的游戏体验。建议开发者根据实际情况对源码进行修改扩展,比如增加更多游戏角色或者优化用户体验等方面。
智能哨音设备JaguarJack:声学工程与户外安全的完美结合
声学工程在现代户外安全设备中扮演着关键角色,通过精确控制声波频率和传播特性,可以显著提升紧急信号的识别度与传播距离。JaguarJack哨采用三级共振腔设计和钛合金材质,实现了120分贝以上的高频穿透音效,有效覆盖300-4000Hz人耳敏感频段。这种基于物理原理的优化,使得设备在复杂地形中仍能维持800米以上的有效传播范围,比传统哨音提升2.3倍环境穿透力。结合人体工学设计,该产品特别适合户外探险、专业救援等场景,展现了基础物理器件在极端环境下的可靠性。
狼人杀C++代码分享
【代码分享】狼人杀C++代码分享。
c++小游戏(狼人杀)
d代表要杀、r代表要救,n代表不用药"
狼人杀原c++代码
#include<bits/stdc++.h> #include<windows.h> #include<conio.h> using namespace std; const int daytime=0,night=1; int day=0, during_time=daytime, player_number, my_number; HWND hwnd=GetForegroundWindow();//窗口定义 /*设置颜色*/ const int blue=0,y
c++狼人杀源代码(免费复制)
else if (player[i].name == "女巫 " || player[i].name == "预言家 " || player[i].name == "猎人 " || player[i].name == "守卫 ")else if (player[i].name == "女巫 " || player[i].name == "预言家 " || player[i].name == "猎人 " || player[i].name == "守卫 ")= "狼人 " || x == i))
c++狼人杀源代码
分享狼人杀的c++源代码。
C++狼人杀源代码(可复制)
include <iostream>cout<<" "<<i<<"号"<<" 票数:"<<p[i]<<endl;cout<<" "<<a<<"号是杀手,请注意"<<endl;cout<<i<<"号,身份:"<<s[i]<<" "<<endl;cout<<" "<<sw<<"死了"<<endl;
c++狼人杀终极版.cpp
c++狼人杀终极版.cpp
狼人杀c语言代码,1089 狼人杀-简单版——C/C++实现
题目1089 狼人杀-简单版 (20 point(s))以下文字摘自《灵机一动·好玩的数学》:“狼人杀”游戏分为狼人、好人两大阵营。在一局“狼人杀”游戏中,1 号玩家说:“2 号是狼人”,2 号玩家说:“3 号是好人”,3 号玩家说:“4 号是狼人”,4 号玩家说:“5 号是好人”,5 号玩家说:“4 号是好人”。已知这 5 名玩家中有 2 人扮演狼人角色,有 2 人说的不是实话,有狼人撒谎但并不...
c++狼人杀代码!
c++狼人杀代码
狼人杀2.1.2(部分原创) C++代码
这是狼人杀2.1.2的C++代码。本代码为部分原创,如想看原创请转到链接: C++实现狼人杀_Mark_GXc的博客-CSDN博客_狼人杀代码话不多说,直接上代码吧作者太懒,所以没加注释#include <iostream>#include <cstdlib>#include <ctime>#include <Windows.h>#include <conio.h>using namespace std;void brc(){system("cl
狼人杀2.1.3(部分原创) C++代码
这是狼人杀2.1.3的C++代码。本代码为部分原创,如想看原创请转到链接:C++实现狼人杀_Mark_GXc的博客-CSDN博客_狼人杀代码话不多说,直接上代码吧作者太懒,所以没加注释#include <iostream>#include <cstdlib>#include <ctime>#include <Windows.h>#include <conio.h>using namespace std;void brc(){system("cls"
狼人杀1.1.1(非原创)C++代码
C++小游戏——狼人杀_黑马星云的博客-CSDN博客_c++狼人杀。1.1.1的C++代码。话不多说,直接上代码。
狼人杀2.1.1(非原创) C++代码
这是狼人杀2.1.1的C++代码。本代码为非原创,如想看原创请转到链接:C++实现狼人杀_Mark_GXc的博客-CSDN博客_狼人杀代码话不多说,直接上代码吧作者太懒,所以没加注释#include <iostream>#include <cstdlib>#include <ctime>#include <Windows.h>#include <conio.h>using namespace std;void brc(){system("cls")

598




被折叠的 条评论
为什么被折叠?



