用python来解 PAT乙级1089 狼人杀-简单版 -20-满分无超时(带注释)

用python做一个简易的狼人杀 我不大会写注释,大佬们应该也能看懂。 耗时5小时 #狼人杀 ver2.2~~~ from random import * import time,os a=["平民 ","平民","狼人","女巫"]#身份,用列表表示(用元组也行) xing=("王","李","张","刘","徐","冯","袁","邓","韩","杜") zhongjian=("既","海","若","树","丽","虎","涵") zuihou=("羽","生","茵","芹","乔","智","丽") p1=choice(xi 阅读详情

题意概括,在第i行用正负号+j的形式顺序输入,表示i号对j号的发言,+是好人,-是狼人,输出最小的解告诉大家狼人是哪两个,撒谎的人是一个好人和一个狼人一共两个人,无解输出‘No Solution’

所以本题思路可以先假设两只狼,然后看所有人的逻辑是否都行得通,因为多解时是输出最小的解,所以可以直接遍历假设狼的号码,遇到正确解就直接中断并输出

代码如下(有注释):

n = int(input())
s = [int(input()) for i in range(n)]  # 将他们说的话放在一个列表里

for i in range(1,n):#假设第一只狼
    for j in range(i+1, n+1):#假设第二只狼
        good_peo = 0#定义说谎的好人变量
        wolves = 0#定义说谎的狼人变量
        for k in range(1,n+1):
            #如果有人说i或者j是好人,或者说i和j之外的人是狼人,那么这个人说谎了
            if (s[k-1] > 0 and (s[k-1] == i or s[k-1] == j)) or (s[k-1] < 0 and abs(s[k-1]) != i and abs(s[k-1]) != j):
                if k == i or k == j:#对照看这个说谎的人是不是狼人,是的话说谎的狼人+1
                    wolves += 1

                else:#看这个说谎的人是不是好人,是的话说谎的好人+1
                    good_peo += 1
        if wolves == 1 and good_peo == 1:#如果说谎的人包括一个好人和一个狼人
            print(i, j)#答案正确,直接输出
            exit()
print('No Solution')#遍历结束没有正确答案,输出‘No Solution’

提交结果:

狼人杀小程序源码 狼人杀小程的序源代码大家快来参考参考啦! 立即下载

相关推荐

python桌游小游戏——狼人杀版7人阿瓦隆

python桌游小游戏——狼人杀版7人阿瓦隆

python狼人杀小游戏9人单机版(待改进)

print(f"今天晚上,玩家 {werewolves_choice} 死了,你是否要救(输入0为否,输入1为是)")print(f"{vote_results[0]}号玩家身份是猎人,猎人选择开枪带走{dairen}号")print(f"{vote_results[0]}号玩家身份是猎人,猎人选择开枪带走{dairen}号")(输入数字" + c + ")")(输入数字" + c + ")")print("\t\t\t\t\t\t第" + str(days) + "天~~~~~~~~~~~~~~~")

2301_76903398的博客 1408

python3.x tkinter 狼人杀1.0-4.1

python3.x tkinter 狼人杀1.0-4.1

关于用python 去解决 ‘狼人杀游戏’

摘要: 题目来源于LeetCode的一道竞赛题 (链接:https://leetcode-cn.com/circle/article/EJf9yW/) 1.分析题目: 题目描述 小李的同事们很喜欢玩狼人杀,每次都找他当法官。小李觉得很累,决定写一个程序来跑出狼人杀的结果。 狼人杀是一个桌游。常见局由 12 名玩家和 1 名法官组成。12 名玩家坐成一个圈。每个玩...

yq5201314520的博客 3927

狼人杀游戏源码

狼人杀游戏源码,开发语言c#,实现了基本功能,网络通讯,上帝语言,基本流程实现,有兴趣的可以下载参考。

微信小程序-狼人杀小游戏源码

微信小程序-狼人杀小游戏源码。资源中包含了详细的系统图文搭建教程。源码都是实际项目,经过测试可以正常稳定运行在服务器,需要具备基础服务器搭建知识,不会搭建的请谨慎购买。

请用Python写一段狼人杀小程序

狼人杀是一个社交游戏,需要多人参与才能进行。下面是一个简单的 Python 版本的狼人杀小程序,它可以帮助你理解游戏规则。 #玩家类 class Player: def __init__(self,name,role): self.name = name self.role = role #狼人类 class Wolf: def __init__(...

weixin_35750953的博客 906

Python实现的AI狼人杀游戏,大模型自动扮演村民、狼人、女巫等角色

一个用Python开发的狼人杀AI游戏程序,核心逻辑由大语言模型驱动,支持多个角色(狼人、村民、女巫、猎人、预言家)自主发言、推理和投票。项目包含完整Web服务接口,基于FastAPI框架搭建,前端适配明暗主题,内置角色头像资源与中文字体,开箱即用。部署流程清晰:解压后安装requirements.txt依赖,配置ERNIE SDK的ACCESS_TOKEN环境变量,运行uvicorn启动服务,默认监听8080端口。附带aistudio部署说明文档,适配百度AI Studio平台一键部署;README.md提供基础介绍与运行指引;assets目录存放所有静态资源,包括角色图标(wolf、villager、witch、hunter、prophet)、背景图(day/night)、字体文件及样式脚本。无需额外训练模型,直接调用ERNIE大模型API完成角色对话生成与逻辑判断,侧重游戏交互流程模拟与多角色协同推理。

PAT乙级_1089 狼人杀-简单版_Python_AC解法_含疑难点

本文介绍了PAT乙级1089题"狼人杀-简单版"的Python解法。题目要求在N名玩家中找出2名狼人,满足只有1个狼人和1个人说谎的条件。AC解法通过双重循环遍历可能的狼人组合,检查说谎情况是否符合要求,输出最小序列解或无解。作者指出根据回答遍历的方法会导致测试点4错误,建议采用预设狼人身份的方法。文章包含题目描述、输入输出格式、AC代码及注意事项,并附上存在错误的解法代码供参考改进。

CongQianS1的博客 1058

新手网工别慌!手把手带你搞定华为OLT开局配置(从登录到业务下发全流程)

本文为新手网络工程师提供华为OLT设备开局配置的详细指南,涵盖从设备登录、基础配置到业务部署的全流程。通过实战案例和常见问题排查,帮助读者快速掌握华为OLT配置技巧,确保业务顺利开通。

weixin_33721344的博客 481

WRF和WPS模型在Ubuntu系统上的安装与常见问题解决指南

本文详细介绍了在Ubuntu系统上安装WRF和WPS模型的完整教程,涵盖系统环境配置、依赖库安装、源代码编译以及常见问题的解决方案。重点解决了WPS编译中intmath.f文件的修改、环境变量设置和编译器兼容性等关键难点,帮助用户高效部署气象研究与预报模型。

weixin_29213525的博客 382

pat乙级 1089 狼人杀-简单版

以下文字摘自《灵机一动·好玩的数学》:“狼人杀”游戏分为狼人、好人两大阵营。在一局“狼人杀”游戏中,1 号玩家说:“2 号是狼人”,2 号玩家说:“3 号是好人”,3 号玩家说:“4 号是狼人”,4 号玩家说:“5 号是好人”,5 号玩家说:“4 号是好人”。已知这 5 名玩家中有 2 人扮演狼人角色,有 2 人说的不是实话,有狼人撒谎但并不是所有狼人都在撒谎。扮演狼人角色的是哪两号玩家?

weixin_72947837的博客 443

基于three.js的室内全景3D展馆案例分享

3D场景展厅

acheng 3558

Python PAT乙级1089 狼人杀-简单版 (20分)

以下文字摘自《灵机一动·好玩的数学》:“狼人杀”游戏分为狼人、好人两大阵营。在一局“狼人杀”游戏中, 1 号玩家说:“2 号是狼人”,2 号玩家说:“3 号是好人”,3 号玩家说:“4 号是狼人”,4 号玩家说:“5 号是好人”, 5 号玩家说:“4 号是好人”。已知这 5 名玩家中有 2 人扮演狼人角色,有 2 人说的不是实话,有狼人撒谎但并不是所有狼人都在撒谎。 扮演狼人角色的是哪两号玩家? 本题是这个问题的升级版:已知 N 名玩家中有 2 人扮演狼人角色,有 2 人说的不是实话,有狼人撒谎但并不是所

qq_42344132的博客 579

【电子元件篇】电力电子中的变压器原理、作用、选型与测量指南-超简单解读

变压器虽小,却是电力电子的 “关键纽带”——从识别符号型号,到理解 “传交流隔直流” 的特点,再到按用途选参数、用万用表检测,只要抓住 “场景对应核心” 的逻辑,就能轻松掌握它的用法。

2301_81299416的博客 3026

31.华为路由器:PPPOE配置模拟实验及NAT配置

实验环境 pppoe-client上面的接口信息 [AR1]dis ip interface brief *down: administratively down ^down: standby (l): loopback (s): spoofing The number of interface that is UP in Physical is 2 The number of interface that is DOWN in Physical is 1 The number of interface

迷逝 8117

【PAT_Python解】1089 狼人杀-简单版

多学习其他大佬的AC代码!

新时代先锋的博客 616

模型泛化能力提升:领域自适应与迁移学习

模型泛化能力提升:领域自适应与迁移学习​ ,人工智能,计算机视觉,大模型,AI,在机器学习和深度学习的应用中,模型的泛化能力是一个关键问题。泛化能力指的是模型在新的、未见过的数据上表现良好的能力。然而,实际情况中,训练数据和测试数据往往来自不同的领域,存在分布差异,这会导致模型的泛化能力下降。领域自适应与迁移学习正是为了解决这一问题而发展起来的重要技术。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 3万+

PAT乙级_1089 狼人杀-简单版 (20 分)_python

题目: 以下文字摘自《灵机一动·好玩的数学》:“狼人杀”游戏分为狼人、好人两大阵营。在一局“狼人杀”游戏中,1 号玩家说:“2 号是狼人”,2 号玩家说:“3 号是好人”,3 号玩家说:“4 号是狼人”,4 号玩家说:“5 号是好人”,5 号玩家说:“4 号是好人”。已知这 5 名玩家中有 2 人扮演狼人角色,有 2 人说的不是实话,有狼人撒谎但并不是所有狼人都在撒谎。扮演狼人角色的是哪两号玩家? 本题是这个问题的升级版:已知 N 名玩家中有 2 人扮演狼人角色,有 2 人说的不是实话,有狼人撒谎但并不是

Mamba的博客 298

雷达工程师面试题目

详细描述项目背景、目标、你的具体职责和贡献,分析在项目实施过程中遇到的主要技术难题及解决方案,总结项目取得的成果和经验教训。

道亦无名 738

手把手教你学Simulink——无刷直流电机(BLDC)霍尔传感器(Hall Sensor)信号处理电路仿真

在中,转子位置靠​ 给出,换相逻辑(Commutation Table)据此决定。实际霍尔输出是,且常有:比较迟滞(内置或外加分压)RC 低通(防 EMI 尖刺)与 MCU 间想让你霍尔三相 UVW 理想方波(120° each, 换相每 60°elec)经观察:原始 HU/HV/HW、滤波后波形、整形后 TTL 电平验证换相表(001→100→010…)与转子转向匹配是破局关键。

amy_mhd的博客 38

PAT 乙级(Python) #1089 狼人杀-简单版 (20 分)

1089 狼人杀-简单版 (20 分) 代码展示: N = eval(input()) statements = [None] for i in range(N): statements.append(input()) # print("N =",N) # print('statements =',statements) def check(wolf_1,wolf_2): is_wolvs = ['+'] * (N+1) is_wolvs[wolf_1],is_wolvs[wo

敲代码的小风 854

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

PAT 乙级 1089 狼人杀-简单版(20 分)

以下文字摘自《灵机一动·好玩的数学》:“狼人杀”游戏分为狼人、好人两大阵营。在一局“狼人杀”游戏中,1 号玩家说:“2 号是狼人”,2 号玩家说:“3 号是好人”,3 号玩家说:“4 号是狼人”,4 号玩家说:“5 号是好人”,5 号玩家说:“4 号是好人”。已知这 5 名玩家中有 2 人扮演狼人角色,有 2 人说的不是实话,有狼人撒谎但并不是所有狼人都在撒谎。扮演狼人角色的是哪两号玩家? 本题...

白水不是泉的博客 1190

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

PAT乙级 (Basic Level) python3语言实现代码(全120道)

PAT乙级 (Basic Level) Practice (中文)题目共120道。本文所有代码均用python3语言编写,除了11道题因为个别测试点超时未通过外,其他均通过。

梁山伯的专栏 937

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

全部博文链接汇总(不断更新)

用python来解 PAT 1001 害死人不偿命的(3n+1)猜想-15-满分 用python来解 PAT 1002 写出这个数 -20-满分 用python来解PAT乙级1042 字符统计-20-满分 用python来解 PAT乙级 1022D进制的A+B -20-满分 用python来解 PAT 1048数字加密-20-满分无超时 用python来解 PAT 1050螺旋矩阵-25-满分无超时 用python来解 PAT 1060爱丁顿数-25-满分无超时 用python来解 PAT 1061判断题-

pythonuser1的博客 360

用Python写个迷你版 狼人杀游戏

狼人杀估计很多小伙伴都玩过,是一个非常有趣的游戏!以前公司团建的时候,经常一堆人围一桌玩,心理素质比较高的同学会玩的比较好,有的时候一玩会从下午玩到晚上,真的非常怀念那段...

数据森麟 2546
上一篇: 用python来解 PAT乙级1082射击比赛 -20-满分
下一篇: 用python来解PAT乙级1075链表元素分类-25-20分 (有注释)最后一个超时
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值