c++游戏 狼人杀(升级)

代码:

#include <iostream>//C++输入输出流库
#include <cstdlib>//使用srand函数要用到这个库
#include <ctime>//使用time函数要用到这个库
#include <Windows.h>
#include <conio.h>long long sr=0;
using namespace std;
void brc()
{system("cls");long long jy=1,wd=3;long long sy=3,wj=3;srand((int)time(0));long long n=rand()%15+1;cout<<"                                你是"<<n<<"号"<<endl;cout<<"                               正在分配身份"<<endl;Sleep(1500);long long m[20];for(long long i=1;i<=15;i++)m[i]=1;long long s[20]={0};long long yy[20]={0};long long l=0,w=0,j=0,p=0;for(long long i=1;i<=15;i++){do{long long a=rand()%4+1;if(a==1&&l<1){l++;s[i]=1;sr=i;}else if(a==2&&w<2){w++;s[i]=2;}else if(a==4&&p<3){p++;s[i]=4;}else if(a==3&&j<9){j++;s[i]=3;}}while(s[i]==0);}if(s[n]==1)cout<<"                               你是>>杀手<<"<<endl;else if(s[n]==2)cout<<"                               你是>>预言家<<"<<endl;else if(s[n]==3)cout<<"                               你是>>平民<<"<<endl;elsecout<<"                               你是>>法师<<"<<endl;cout<<"                             游戏将在5秒后开始"<<endl; Sleep(5000);long long c=15;long long f=0,flag=0;long long day=1;long long lr;long long tp[20]={0};do{lr=0;system("cls");cout<<"                                 第"<<day<<"晚开始"<<endl;cout<<"你是"<<n<<"号"<<endl;long long x;for(long long i=1;i<=15;i++) {if(i==n&&m[n]==1){if(s[n]==1){cout<<"                                 你是杀手"<<endl;for(long long j=1;j<=15;j++)if(m[j]==1&&s[j]!=1)cout<<j<<" ";cout<<endl;cout<<"                                 你选择杀掉"<<endl; long long a;cin>>a;m[a]=0;cout<<endl;cout<<"                                 杀手杀了"<<a<<"号"; if(s[a]==1)cout<<"(杀手)"<<endl;else if(s[a]==2)cout<<"(预言家)"<<endl;else if(s[a]==3)cout<<"(平民)"<<endl;elsecout<<"(法师)"<<endl;c--;}	elseif(s[n]==2){cout<<"                                 你是预言家"<<endl;cout<<"                               ";for(long long j=1;j<=15;j++)if(m[j]==1)cout<<j<<" ";cout<<endl<<"                              你选择预言谁的身份"<<endl;long long a;cin>>a;if(s[a]==1){cout<<"                        "<<a<<"号是杀手,请注意"<<endl;Sleep(1000);}elsecout<<"                            "<<a<<"号是好人"<<endl; }}else if(s[i]==1&&m[i]==1){long long a;do{a=rand()%15+1;}while(a==i||m[a]==0||s[a]==1);cout<<"                           杀手杀掉了"<<a<<"号"; if(s[a]==1)cout<<"(杀手)"<<endl;else if(s[a]==2)cout<<"(预言家)"<<endl;else if(s[a]==3)cout<<"(平民)"<<endl;elsecout<<"(法师)"<<endl;m[a]=0;c--;break;//}else if(s[i]==2){if(flag==0||m[flag]==0){long long a;do{a=rand()%15+1;}while(a==i||m[a]==0);if(s[a]==1)yy[a]=1;	else if(s[a]==3)yy[a]=3;}	}else if(s[i]==4){f=0;while(f==0){long long a;a=rand()%3+1;if(a==3)break;if(a==1){if(sy>0){sy--;f=1; long long b;do{b=rand()%15+1;b=rand()%15+1;}while(b==i||m[b]==0);m[b]=0;cout<<"                           法师毒死了"<<b<<"号"; if(s[b]==1)cout<<"(杀手)"<<endl;else if(s[b]==2)cout<<"(预言家)"<<endl;else if(s[b]==3)cout<<"(平民)"<<endl;c--;if(s[b]==1&&n!=sr){cout<<endl<<"							   "<<sr<<"号是杀手!"; cout<<endl<<"								杀手已死亡!"<<endl;cout<<"                          	游戏结束"<<endl;return ;}break;//}}else if(a==2&&day>1){if(jy>0){jy--;f=1; long long b;do{b=rand()%15+1;}while(b==i||m[b]==1);c++;cout<<"                           法师复活了"<<b<<"号"<<endl;m[b]=1;if(m[sr]==0&&n!=sr){cout<<endl<<"							   "<<sr<<"号是杀手!"; cout<<endl<<"						杀手已死亡!"<<endl;cout<<"                          	游戏结束"<<endl;return ;}break;//}}}}}if(s[n]==4){cout<<"                                 你是法师"<<endl;cout<<"存活状况:"<<endl; for(long long j=1;j<=15;j++)if(m[j]==1)cout<<j<<" ";cout<<endl;cout<<"                        你选择 1.* 杀 *还是 2.* 救 * 3.* 啥都不做 *"<<endl;long long a,f=0;while(f==0){cin>>a;if(a==3) break;if(a==1){if(wd>0){wd--;f=1; cout<<"                                你选择了杀人"<<endl;for(long long i=1;i<=15;i++)if(m[i]==1)cout<<i<<" ";cout<<endl; long long b;cin>>b;if(s[b]==1)cout<<"(杀手)"<<endl;else if(s[b]==2)cout<<"(预言家)"<<endl;else if(s[b]==3)cout<<"(平民)"<<endl;elsecout<<"(法师)"<<endl;m[b]=0;c--; if(m[sr]==0&&n!=sr){cout<<endl<<"							   "<<sr<<"号是杀手!"; cout<<endl<<"						杀手已死亡!"<<endl;cout<<"                          	游戏结束"<<endl;return ;}}else{cout<<">>毒药<<不足"<<endl; }}else if(a==2){if(wj>0){wj--;f=1; cout<<"你选择了复活"<<endl;cout<<"阵亡名单:"<<endl;for(long long i=1;i<=15;i++)if(m[i]==0)cout<<i<<"号,身份:"<<s[i]<<" "<<endl;;long long b;cin>>b;m[b]=1;c++;}else{cout<<">>复活药水<<不足"<<endl; }}}}Sleep(1000);long double p[20]={0};cout<<"                                 第"<<day<<"晚结束"<<endl;cout<<endl;if(m[n]==0){cout<<"                             你已经>>死<<了";	break;}cout<<"                                    存活:"<<endl;cout<<"                       ";for(long long i=1;i<=15;i++)if(m[i]==1)cout<<i<<" ";cout<<endl;cout<<"                                    请投票...."<<endl;for(long long i=1;i<=15;i++){if(i==n&&m[n]==1){cout<<endl;cout<<"                                 你选择投几号"<<endl; long long a=99;while(a==99) {cin>>a;if(a==99)for(long long i=1;i<=15;i++)if(m[i]==1)cout<<"                                    "<<i<<"."<<s[i]<<endl;}if(s[i]==3&&day>4)p[a]+=1.5;elsep[a]++;	cout<<endl;cout<<"                                    "<<i<<"->"<<a<<endl;if(s[a]==3){tp[a]=i;}}else if(s[i]==1&&m[i]==1){long long a;do{a=rand()%15+1;	}while(m[a]==0||a==i||s[a]==1);p[a]++;cout<<"                                    "<<i<<"->"<<a<<endl;if(s[a]==3){tp[a]=i;}}else if(s[i]==2&&m[i]==1){if(flag!=0){p[f]++;cout<<"                                    "<<i<<"->"<<flag<<endl;}else{long long a;do{a=rand()%15+1;	}while(m[a]==0||a==i||yy[a]==3);p[a]++;if(s[a]==3)	{tp[a]=i;}cout<<"                                    "<<i<<"->"<<a<<endl;}} else if(s[i]==3&&m[i]==1){if(tp[i]==0){long long a;do{a=rand()%15+1;	}while(m[a]==0||a==i);p[a]++;cout<<"                                    "<<i<<"->"<<a<<endl;}else{if(m[tp[i]]==1){p[tp[i]]++;cout<<"                                    "<<i<<"->"<<tp[i]<<endl;}else{long long a;do{a=rand()%15+1;	}while(m[a]==0||a==i);system("color F4") ;p[a]++;cout<<"                                    "<<i<<"->"<<a<<endl;}}}else if(s[i]==4&&m[i]==1){long long a;do{a=rand()%15+1;	}while(m[a]==0||a==i);p[a]++;system("color F4") ;cout<<"                                    "<<i<<"->"<<a<<endl;}}system("cls");cout<<"                                 投票情况:"<<endl;for(long long i=1;i<=15;i++)if(m[i]==1)cout<<"                                 "<<i<<"号"<<"  票数:"<<p[i]<<endl; long long sw,max=-100; for(long long i=1;i<=15;i++){if(p[i]>max){sw=i;max=p[i];}}m[sw]=0;system("color F4") ;cout<<"                                  "<<sw<<"死了"<<endl;c--;cout<<"                              "<<sw<<"号的身份是"; if(s[sw]==1)cout<<"杀手"<<endl;else if(s[sw]==2)cout<<"预言家"<<endl;else if(s[sw]==3)cout<<"平民"<<endl;else cout<<"法师"<<endl; if(s[sw]==1&&n!=sr){system("color F4") ;cout<<endl<<"							   "<<sr<<"号是杀手!"; cout<<endl<<"						杀手已死亡!"<<endl;cout<<"                          	游戏结束"<<endl;return ;}day++;  if(s[n]!=1)   {for(long long i=1;i<=15;i++)if(s[i]==1&&m[i]==1)lr=1;}else{system("color F4") ;if(s[n]==1&&c==2)lr=0;}system("pause"); cout<<endl;if(m[sr]==0&&n!=sr){system("color F4") ;cout<<endl<<"							   "<<sr<<"号是杀手!"<<endl; cout<<endl<<"						杀手已死亡!"<<endl;cout<<"                          	游戏结束"<<endl;return ;}}while(m[n]==1&&c>1);system("color F4") ;if(sr==n&&m[n]==1){cout<<"								你杀掉了所有人!!!"<<endl;}cout<<"                          	游戏结束"<<endl;return ;
}
int main()
{system("color F4") ;srand((int)time(0));  char a='1';while(1){system("color F4") ;system("cls");cout<<"                                   			杀手游戏"<<endl;cout<<"------------------------------------------------------------------------------------------------------------------------";cout<<"                                 		   1.开始游戏"<<endl;cout<<"                                		  2.查看游戏规则"<<endl;a=getch();if(a=='1'){system("color F4") ;cout<<"                                 		   1. 15人场"<<endl;cout<<"                          			2. 30人娱乐战(10猎人)<敬请期待>"<<endl;a='2';while(a=='2'){system("color F4") ;a=getch();switch(a){case '1':brc();//break;}if(a=='1'){system("color F4") ;}//break;}if(a=='1'){system("color F4") ;}//break;}else if(a=='2'){system("color F4") ;cout<<"杀手:每当晚上的时候可使用杀人权杀掉一人"<<endl;//1cout<<"预言家:每天晚上可以知道一个人的身份"<<endl;//2 cout<<"平民:无技能,当玩家是平民时,在第5天拥有1.5票的投票权"<<endl;//3cout<<"猎人:此身份仅限于30人娱乐局中,死亡后可带走一人"<<endl; cout<<"投票细则:\n(游戏中除了你以外全是由超级AI人工代替)"<<endl;cout<<"预言家如果预言到杀手将一直对他投票,如果预言到好人将永远不会对他投票"<<endl;cout<<"平民将投上一个晚上对他投票他的人"<<endl;cout<<"********利用好超级AI游戏规则找出杀手**********"<<endl;system("pause");}}return 0;
}



狼人杀

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/789335.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring——依赖注入

开启DI服务(依赖注入) DI依赖注入的理解 依赖开发人员提供相关输入依赖Spring容器对象将相关数据赋到属性中 基于XML文件 通过set方法注入 property标签通过调用属性对应的set方法完成赋值属性赋值 基本类型赋值 value"xxx"引用类型赋值 ref "xxx" …

VScode-配置文件

导入配置文件 ShiftCtrlp 输入&#xff1a; import 选择文件 点击确认 导出配置文件 设置选择导出 确认导出 保存为本地文件 保存文件

黄金票据攻击

黄金票据攻击——域内横向移动技术 一、黄金票据攻击介绍&#xff1a; 黄金票据攻击是一种滥用Kerberos身份认证协议的攻击方式&#xff0c;它允许攻击者伪造域控krbtgt用户的TGT&#xff08;Ticket-Granting Ticket&#xff09;。通过这种方法&#xff0c;攻击者可以生成有效…

【原创】基于springboot+vue疫苗预约管理系统设计与实现

个人主页&#xff1a;程序猿小小杨 个人简介&#xff1a;从事开发多年&#xff0c;Java、Php、Python、前端开发均有涉猎 博客内容&#xff1a;Java项目实战、项目演示、技术分享 文末有作者名片&#xff0c;希望和大家一起共同进步&#xff0c;你只管努力&#xff0c;剩下的交…

element-ui tableData导出为xlsx文件

下载 npm i / yarn add file-saver、xlsx库 引入 import FileSaver from “file-saver”; import XLSX from “xlsx”; const simexport (data) > {// if (data.create_time && data.create_time.length > 0) {// data.start_time parseTime(data.create_tim…

Rust vs C++:2024,谁更懂错误处理?

讲动人的故事,写懂人的代码 「席双嘉,听说你的C++项目又因为忘了检查返回值导致内存泄漏,又加班了?」 周五中午,在国内某科技巨头熙熙攘攘的员工餐厅,贾克强半开玩笑地戳了戳坐在隔壁的席双嘉,眼神中满是戏谑。 贾克强,一个热衷于Rust的程序员,总是乐于挑战和探索新…

mfw-攻防世界

题目 点击about发现Git感觉是Git泄露 直接访问.git 本来用githack去扒源码但是成功了没文件一脸懵&#xff0c; 后面换一个工具githacker注意二个之间有区别 githack和githacker 然后去结果里查看文件 发现flag文件但是 没什么用 <?php // TODO // $FLAG ; ?> 然后…

算法设计和分析1( 算法问题求解基础)

chapter1 算法问题求解基础 1.1算法概述 1.什么是算法 算法—用计算机实现的问题求解方法。5个特征 &#xff08;1&#xff09;输入&#xff1a;0或多个 &#xff08;2&#xff09;输出&#xff1a;至少一个 &#xff08;3&#xff09;确定性&#xff1a;算法每一条指令都有…

QCC发射(TX SOURCE)USB发射A2DP音乐,实现MIC声音到主机

之前写过 CSR8670/8675 发射&#xff08;TX SOURCE&#xff09;USB发射A2DP音乐&#xff0c;实现MIC声音到主机的文章&#xff0c;目前把该方案移植到QCC方案&#xff08;QCC3040 QCC3056&#xff09;。 因 CSR8670/8675成本比较贵&#xff0c;现在移植到QCC平台。 由于众多游…

Pytorch for training1——read data/image

blog torch.utils.data.Dataset create dataset with class torch.utils.data.Dataset automaticly import torch from torch.utils.data import Datasetclass MyDataset(Dataset):def __init__(self, data):self.data datadef __getitem__(self, index):# 根据索引获取样本…

一句命令pip卸载所有已安装库

pip3 list --formatfreeze | grep -v ^\-e | grep -v pip | grep -v setuptools | cut -d -f 1 | xargs -n1 pip3 uninstall -y 这个命令的解释如下&#xff1a; pip list --formatfreeze&#xff1a;列出所有已安装的库及其版本号。grep -v ^\-e&#xff1a;排除那些以-e开…

华为OD面试手撕算法-合并排序数组

题目描述 本题是leetcode一道简单题&#xff1a;合并两个有序数组&#xff0c;但是对于时间和空间复杂度面试官明确给出了限制。 // 给定两个排序后的数组 A 和 B&#xff0c;其中 A 的末端有足够的缓冲空间容纳 B。 编写一个方法&#xff0c;将 B 合并入 A 并排序。 // 初始化…

maya移除节点 修改节点

目录 maya移除节点 使用 Maya 用户界面&#xff1a; 使用脚本&#xff1a; maya 修改节点名字 使用 Maya 用户界面&#xff1a; 使用 MEL 脚本&#xff1a; 使用 Python 脚本&#xff1a; 注意事项&#xff1a; maya移除节点 使用 Maya 用户界面&#xff1a; 在“层次…

Gin框架(3)

文件上传与下载 文件上传 单文件上传 单文件上传指的是一次只上传一个文件。在Gin中&#xff0c;可以使用c.SaveUploadedFile方法来保存单个上传的文件。 // SaveUploadedFile uploads the form file to specific dst. func (c *Context) SaveUploadedFile(file *multipart…

对 NGINX、Kong 和 Amazon 的 API 管理解决方案进行基准测试:它们能否交付实时 API?

原文作者&#xff1a;Alessandro Fael Garcia of F5 原文链接&#xff1a;对 NGINX、Kong 和 Amazon 的 API 管理解决方案进行基准测试&#xff1a;它们能否交付实时 API&#xff1f; 转载来源&#xff1a;NGINX 开源社区 NGINX 唯一中文官方社区 &#xff0c;尽在 nginx.org.c…

HAL STM32 硬件I2C方式读取AS5600磁编码器获取角度例程

HAL STM32 硬件I2C方式读取AS5600磁编码器获取角度例程 &#x1f4cd;相关篇《STM32 软件I2C方式读取AS5600磁编码器获取角度例程》 ✨stm32使用硬件I2C去读取角度数据&#xff0c;通过STM32CubeMX工具配置工程&#xff0c;读取角度数据&#xff0c;只需要调用一个函数&#xf…

常见的服务器技术

常见的服务器技术 1.虚拟化技术&#xff1a;虚拟化技术允许在一台物理服务器上创建多个虚拟服务器&#xff0c;每个虚拟服务器都可以独立运行不同的操作系统和应用程序。这大大提高了服务器的资源利用率&#xff0c;并提供了更好的灵活性、可扩展性和可靠性。 2.负载均衡技术&…

谷歌(Google)技术面试——在线评估问题(一)

谷歌&#xff08;Google&#xff09;面试过程的第一步&#xff0c;你可能会收到一个在线评估链接。 评估有效期为 7 天&#xff0c;包含两个编码问题&#xff0c;需要在一小时内完成。 以下是一些供你练习的在线评估问题。 在本章结尾处&#xff0c;还提供了有关 Google 面试不…

使用 RisingWave、NATS JetStream 和 Superset 进行实时物联网监控

在物联网&#xff08;IoT&#xff09;背景下&#xff0c;处理实时数据会遇到一些特定的障碍&#xff0c;如边缘计算资源不足、网络条件限制、扩展性存在问题、设备间有多样性差异。要克服这些挑战&#xff0c;需要高效的边缘计算技术、强大的安全措施、标准化协议、可扩展的管理…

接口自动化框架搭建(六):多进程执行

1&#xff0c;背景目的 当测试用例太多之后&#xff0c;想缩短执行时间&#xff0c;就需要多线程或者多进程执行。 多线程执行&#xff1a; 每条测试用例是独立的&#xff0c;测试用例之间的参数不能共同使用 采坑举例&#xff1a;接口自动化中请求头是公共参数&#xff0c;…