知行编程网知行编程网  2022-03-18 09:00 知行编程网 隐藏边栏 |   抢沙发  81 
文章评分 0 次,平均分 0.0

狼人杀估计很多小伙伴都玩过,是一个非常有趣的游戏!以前公司团建的时候,经常一堆人围一桌玩,心理素质比较高的同学会玩的比较好,有的时候一玩会从下午玩到晚上,真的非常怀念那段时光,今天我们用Python写一个简易版的狼人杀,非常有意思,适合小白入门Python。

狼人杀的角色,我们这里只模拟三种 狼人,猎人和村民

游戏的逻辑,我们这里做了处理,弄的很简单,随机发牌,用一个死循环,让用户一直玩这个游戏时:

  • 打印游戏的说明;
  • 创建一个狼人杀卡牌的列表;
  • 在3张卡牌中随机分配狼人、猎人或村名类型;
  • 提示用户选择一个牌的编号;
  • 挑选到了狼人,你会被杀死
  • 挑选到了猎人,你会被获救
  • 挑选到了村名,你会就没事
  • 遇到了狼人,你可以选择攻击

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

01.

最菜的代码逻辑

小白上来写代码一定是让代码work,还记得我曾经给大家讲菜鸟写程序的成长(菜鸟写Python程序,如何从新手变老手),我们先把代码的重要功能一块一块先写出来,然后再进行拼接起来。

1).显示游戏主题,获取用户输入

再小的游戏有一个介绍和玩法,我们肯定要告诉用户如何玩:

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

2).创建卡牌的类型

我们用3个角色,这里用最简单的数据结构列表去存放 。事先设定3种角色,然后用一个随机数来存放到卡牌列表里面:

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

3).提示用户输入

因为我们的游戏是通过让用户选卡牌数字进行,所以一定会用到input这样函数,提示用户输入信息:

4).展现卡片的内容

我们随机产生的卡片列表,我们需要展现给用户看,哦目前有5张卡片,3个角色,打印出来:

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

为了更直观,把你选中的那个角色加粗显示出来

5).根据用户的选择,显示游戏逻辑结果

我们这里很简单的逻辑超级简单,就是把用户输入的数字转为角色,然后进行判断:狼人直接挂掉,猎人或者村名就幸存。

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

6).把代码串起来

每一个小的功能我们都已经写好了,下面是该把所以的小块代码连起来,就像乐高一样。

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

  • 先显示游戏说明show_welcome_msg
  • 接着一个死循环hold住,加一个标志位进行控制
  • 建立卡片的类型数据
  • 获取用户的输入数字
  • 打印狼人杀角色卡片
  • 处理输入数字,显示结果

忙活了半天,看一下效果:

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

02.

增加和狼人对打功能

编程写游戏其实是一个非常不错的学习方法!很多初学者老是说编程坚持不下来,为啥打游戏会很放松很上瘾,就是因为好玩啊!如果你换一个角度用玩Python的心态来学,一定会非常有趣!

如果遇到狼人,进行对打:

  • 每一回合,如果打赢了,玩家的生命值不变,狼人生命值减少

  • 每一回合,如果打输了,狼人的生命值不变,玩家生命值减少

  • 每一回合生命值的减少是随机的,我们可以控制一个比例,让狼人强还是玩家强

1).给角色增加生命值

我们在遇到狼人的时候,希望让用户选择能否攻击,攻击的话就会受伤,会出现两种情况:

  • 可能玩家打败了狼人,狼人受伤了

  • 可能狼人打败了玩家,玩家受伤了

为了现在这样的功能,我们先要给角色弄一个数据结构,初始化生命值,比如玩家:100生命值,敌人:80

2). 显示生命值

在游戏进行的过程中,需要不断的告知用户,当然的角色的生命值:

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

3).攻击功能

当出现狼人的时候,我们选择攻击,每一回合都会都是随机选择对手,我们设计一个队列里面有70%的概率是狼人受伤,30%是猎人受伤

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

运行一下看一下效果:

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

03.增加异常处理

 

代码一定会有异常,因为运行的时候会出现各种各样的错误,为了保证代码的稳定性,异常处理那是必须的!

1).比如我们上面的代码如果就会出错:

如果你不是输入数字1-5,或者输入负数,或者字母统统都会产生异常,所以异常处理非常必要

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

 

2).try/except保护一下

我们希望输入必须是1-5数字,如果其他的进行异常捕捉,然后进行合理的提示

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

 

试一下效果:

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

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

 

限于篇幅,整个的代码比较简单,大家可以动手操练一下!其实这个游戏可以继续扩展的很丰富,目前的数据结构非常单一,我们还没有封装为类进行第二次的重构,会设计一些接口,类和类之间会用到聚合或者组合

 

其实每一个角色其实可以有很多其他的功能,比如村民可以增加逃跑功能,猎人可以增加武器库来攻击比如火枪,水击,冰冻,增加道具来恢复生命值比如吃个汉堡,鸡腿等等。

 

可以加一个GUI的界面来控制等等,后面我们会把代码弄的更丰富一点,Python其实就是这么好玩!

Python就是这么有趣好玩

另外发现很多同学有入门的问题,到处找资料,现在关注码题达人小助手,我会送一些我自己精选的入门的资料,有兴趣的可以关注,非诚勿扰!

往期精彩:

还在担心酒店信息泄露,我用Python写了段加密算法,看你怎么破

用Python来描述一个在魔都生活的码农的故事

Python里面的这几个梗,你能回答出来吗

我珍藏的一些好的Python代码,技巧

本篇文章来源于: 菜鸟学Python

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享