角色扮演游戏 之 狼人杀

设计游戏:

狼人杀大家都熟悉,游戏主要由狼人、特殊村民和普通村民组成,狼人的目标是吃掉所有村民,而村民的目标则是找出隐藏在村民中的狼人并消灭他们。这个游戏实质上就是通过一些线索去猜测每个人的真实身份,根据这个游戏的规则,我们将这个游戏进行细微的调整。具体的游戏设计如下:

(1)自定义两个异常类,用来控制角色猜错的次数和判断胜利的条件。

(2)定义玩家和角色,并将两者随机匹配,,使得每一次游戏的角色不会重复。

(3)每个玩家只能对其身份进行两次猜测,总错误次数不得超过5次,否则就gameover~

(4)如果每个玩家的身份都猜对了,那么你就是winner!

具体代码如下:

import random
# 自定义异常类
class MuchError(Exception):pass
class Victory(Exception):pass# 定义玩家与角色
player = ['莉亚', '玛祖', '希德', '爱丽丝']
role = ['女巫', '猎人', '狼人', '村民','守卫', '长老', '预言家', '白狼王']
# 将玩家与角色的顺序打乱并匹配
player = random.sample(player, len(player))
role = random.sample(role, len(player))
print('游戏中全部身份有:' + '、'.join(role))
matching = {}
for t in range(len(player)):matching[player[t]] = role[t]# 游戏逻辑
try:result, err = 0, 0for t in player:for i in range(2):guess = input('你认为' + t + '的身份是:')if guess == matching[t]:result += 1print('你猜对了')breakelse:err += 1print('猜错了,你还有'+ str(1-i) + '次机会')if err > 5:raise MuchError('错误次数已超出5次,游戏结束')if result == len(player):raise Victory('恭喜你,全部猜对了')except MuchError as errInfo:print(errInfo)

代码解析:

整段代码主要分为三部分:自定义异常类、玩家与角色的设定和匹配、游戏逻辑。其中游戏逻辑是整个游戏的核心代码,具体说明如下:

(1)首先将每位玩家进行循环遍历,以保证每位玩家都可以进行身份猜测。

(2)然后对每位玩家再循环两次,代表每位玩家的身份有两次猜测机会,每循环一次都会执行if……else判断,判断猜测的结果是否正确。

(3)最后分别判断错误次数err和正确次数result。如果错误次数大于5,抛出自定义异常MuchError,直接终止try里面的所有for循环,并控制程序执行。如果正确次数等于4,也就是全部玩家的身份都猜中了,就会抛出自定义异常Victory异常。

适合新手的python练习(9)相关推荐

  1. 适合新手的python练习1

    适合新手的python练习1 过家家游戏 家庭设定: 在某个家庭中有三个成员,父亲.母亲和儿子,三者组成一个家庭,每个人都有自己的姓名.年龄和一些属于自己的小秘密. 实现方法: 因为一个家庭里有三个成 ...

  2. python3项目源代码下载_GitHub 上适合新手的 Python 开源项目

    剧照:<隐秘而伟大> 作者:卤蛋 来源:HelloGithub 随着 Python 语言的流行,越来越多的人加入到了 Python 的大家庭中.为什么这么多人学 Python ?我要喊出那 ...

  3. python3 excel数据处理_求推荐python3入门教程,适合新手的(python excel数据处理)

    excel和python哪个难学 excel 分应用和VBA编程,phthon本就是编程语言,对数据分析来说,excel足够了,而且是最容易学习的数据处理与分析应用软件,Python肯定比excel难 ...

  4. 适合新手的python书籍推荐_推荐一本适合初学者全面自学python的书(附赠电子书)...

    原标题:推荐一本适合初学者全面自学python的书(附赠电子书) 今天一个朋友问我:有个朋友要学习 python,她属于那种特别能啃书的,让我推荐.我学 python 都是无师自通的,没有看过什么书, ...

  5. 最适合新手的python刷题网站_有没有适合新手练习Python的网站(做题类)?

    直接在知乎看我整理的练习题就可以了, 给你分享一下我自己亲身经历过的python考试题(下面还有练习题大全哦~~~) 记得给小达点个关注~ 你可以参考下面的题进行练习,考试题换汤不换药,希望对你有帮助 ...

  6. python自学 适合新手的 python人机对战小游戏

    目录 前言 一,游戏规则 二,游戏拆解: 版本1.0(自定属性,人工PK) 版本2.0(随机属性,自动PK) 版本3.0(打印结果,三局两胜) 前言 有很多人问,怎样学python可以进步最快,我回顾 ...

  7. python入门新手项目-Python入门实战项目有哪些适合新手?

    Python入门实战项目有哪些适合新手?目前市面上有很多适合新手的Python入门练手项目,Python入门需要理论与实践相结合,前面夯实基础知识,后面通过实战项目帮助你更好的运用这些Python知识 ...

  8. 5个适合新手练习的Python刷题网站

    公众号后台回复"图书",了解更多号主新书内容 作者:朱卫军 来源:Python大数据分析 知乎上有人问,有没有适合新手练习 Python 的做题类网站? 根据我刷题找资料的经验,推 ...

  9. 新手学Python,通过这几个刷题网,你也能成为程序员大佬!

    有人学习Python轻松简单,有人学习Python却感觉困难,其实这很大一部分原因是因为掌握的方法不同. 虽然Python是编程语言中最通俗易懂的一种,但如果掌握了正确的学习方法,学习进度会更快.到底 ...

  10. python基础教程第二版和第三版哪个好-python基础教程 2版和3版哪个适合新手?!...

    python基础教程 2版和3版哪个适合新手? 现在学是学python3. 两者的差异发者本身影响并不大,个别语法细微的差比如python3的print数方式使用,一些常用模块的名称差异,一些机制的差 ...

最新文章

  1. 服务器如何删除所有磁盘信息,关于怎样删除EFI分区,简单省事,很多换下来的硬盘都有这个分区...
  2. 下载Java Jar包的网站(托管厂库)
  3. 【转】如何在编程生涯中有一个好的开端
  4. P2685 [TJOI2012]桥
  5. 使用 RMAN 同步数据库
  6. android自定义view(自定义数字键盘)
  7. 带你看清梦饷集团如何成为上海在线新经济四小龙
  8. iOS原生实现二维码拉近放大
  9. 机器面试-处理分类问题
  10. 【C++编程技巧】根据字符串中的指定字符作为分界将字符串拆分
  11. iOS第三方开源库的吐槽和备忘
  12. pythoncss50使用教程_Python学习(二十) —— 前端之CSS
  13. mldn andoird
  14. 【观察】神州数码:三生万物,云起神州
  15. Shiro保姆级教程
  16. Spring Cloud 微服务架构图
  17. GEE系列:第7单元 利用GEE进行遥感影像分类【随机森林分类】
  18. 【生活中的逻辑谬误】对人不对事和两难陷阱
  19. IDEA集成docker-maven-plugin配置CA安全证书
  20. . 尐儍苽 推荐一个专业的社团网站给您

热门文章

  1. 在微型计算机中ega,在微机系统中,常有VGA、EGA等说法,它们的含义是什么
  2. 计算机处理器性能排名,2019电脑cpu处理器性能排名:AMD 32核撕裂者遥遥领先(2)...
  3. SpringBoot中配置文件
  4. 通过网页版邮箱的实现“联系我们”
  5. 数据组织与存储(一)
  6. 【综述】矩阵补全问题
  7. debian修改键盘布局
  8. 商城订单实时语音提醒功能JavaScript部分 附提醒语音音频文件
  9. 恒流源差分放大电路静态分析_多级放大电路以及差分放大电路
  10. 3.21 Refused Bequest 被拒绝的馈赠