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

本文介绍了一位作者如何使用Python解决LeetCode上的狼人杀游戏竞赛题。作者从初始化全局角色数组开始,实现了角色功能如判断输赢、熊、女巫、猎人的行为,并详细说明了游戏流程,包括数据的来源(MySQL)。文章还分享了遇到的编码错误和MySQL密码遗忘问题的解决方案,并探讨了如何增加游戏的可变玩性。最后,作者呼吁大家疫情期间注意安全,并希望读者喜欢这篇文章。
摘要由CSDN通过智能技术生成

摘要:
        题目来源于LeetCode的一道竞赛题

(链接:https://leetcode-cn.com/circle/article/EJf9yW/)

1.分析题目:

   

题目描述
小李的同事们很喜欢玩狼人杀,每次都找他当法官。小李觉得很累,决定写一个程序来跑出狼人杀的结果。

狼人杀是一个桌游。常见局由 12 名玩家和 1 名法官组成。12 名玩家坐成一个圈。每个玩家在游戏开始时随机抽取一张角色卡牌,只能知道自己的身份。 玩家分为两个阵营,狼人和村民。

狼人的胜利条件是 狼人阵营的玩家数 >= 村民阵营的玩家数
村民的胜利条件是 所有狼人出局
游戏过程

游戏分为夜晚和白天。

(夜晚) 拿到狼人身份的玩家睁眼,其他人闭眼。狼人们商量后选择一名玩家击杀;
(白天) 所有人睁眼;
法官宣布昨晚出局的玩家,以及熊是否咆哮了;
出局的玩家离开游戏,发动技能(如果有);
法官检查胜利条件,如果任何一个满足则结束游戏;
在场玩家进行一轮发言,并票选最可疑的玩家出局;
被选中的玩家离开游戏,发动技能(如果有);
法官检查胜利条件,如果任何一个满足则结束游戏;
重复 1;
游戏角色

【村民阵营】x8

村民(villager, 下称"vil") x5:没有特殊技能
猎人("hunter") x1:技能是在出局时(被投票或被狼人击杀)可以向所有人亮出底牌选择带走一名玩家
白痴("idiot") x1:技能是在白天被投票出局后自动亮出底牌并且不出局
驯熊人(bear tamer, 下称"bear") x1:(简称熊)每天夜里,如果相邻两名存活玩家有任何一个是狼人,熊会发出咆哮。如果驯熊人已经死亡,则这一局熊不再咆哮。驯熊人如果当晚被杀,熊也不会咆哮。(相邻指向左找第一名存活玩家和向右找第一名存活玩家,当晚被杀的玩家也视为死亡)
【狼人阵营】x4

狼人(werewolf, 下称"ww") x4:可以知道同伴,但不知道好人的具体角色。
对于所有人:

白天可以投票
除了发言的环节,玩家不能发言或者交换信息
模拟器设定
我们用 c 来模拟每名玩家在游戏开始时在他人眼中的可信度。0 < c < 100 。越小则越像狼人
狼人只击杀非狼人,并且在场玩家知晓这点
在投票环节,c 最低的玩家出局。如果有多个目标,则座位号小号出局。
狼人优先击
  • 11
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值