女巫的魔药:用Python面向对象编程构建的万圣节迷你游戏

大家好,亲爱的编码者和万圣节爱好者们!👻 随着夜晚变得更长,空气变得清新,我总是感到想要构建一些有趣、应季,并且略带神秘色彩的东西。昨晚,我一边品尝着南瓜香料咖啡,一边在YouTube上听着劈啪作响的火焰音效,坐下来编写了女巫的药水,这是一个小型文本猜测游戏,完美捕捉了万圣节的精髓,代码不超过100行,既简洁又富有教育意义的Python。

这不仅仅是另一个“你好,世界”的项目。这是一个真正的迷你游戏,具有面向对象编程结构戏剧性的时机随机化的秘密玩家互动,所有这些都包裹在万圣节的氛围中。没错,我录制了一段完整的演示视频,这样你在运行代码之前就可以看到它的实际效果!


游戏:作为学徒的任务

你是 女巫的学徒。这位老妇人已经出门去恐吓村庄,留下了她的 冒泡的锅 和一条指令:

“使用 恰好三种成分 酿造我的秘密药水。匹配我的组合……否则锅会 在你面前爆炸!

你的成分(选择 3 种!):

  1. 蝾螈之眼 👁️
  2. 青蛙腿 🐸
  3. 南瓜种子 🎃
  4. 蝙蝠翅膀 🦇
  5. 鬼魂尘埃 👻

你输入你的猜测,例如:1, 3, 5

然后……魔法发生了。

锅炉发出嘶嘶声。

气泡上升。

空气中弥漫着紧张的气氛……

然后呢?

  • 成功

    你调制了完美的药水!女巫很满意!

    五彩纸屑(在你的想象中)爆炸。你被提升为首席学徒!

  • 失败

    药水爆炸了!混合错误!

    秘密配方是:蝙蝠翅膀、鬼魂尘埃、青蛙腿

    女巫回来了……并把你变成了一只青蛙! 🐸

每局游戏都是不同的,女巫的组合是随机生成的。


代码:深入魔法的世界(使用面向对象编程!)

我使用三个干净的类设计了这个游戏,每个类都有单一的职责。这是真正的面向对象编程,而不仅仅是理论。

1. Potion 类 – 锅炉背后的大脑

class Potion:
    def __init__(self, ingredients):
        self.ingredients = ingredients
        self.secret_combo = random.sample(ingredients, 3)  # 纯随机!
  • 存储所有可能的成分
  • 使用 random.sample() 选择 3 个独特的项目 作为秘密组合
  • 没有重复,没有怜悯

2. Apprentice 类 – 那就是

class Apprentice:
    def choose_ingredients(self, ingredients):
        # 显示编号菜单
        for i, item in enumerate(ingredients, 1):
print(f"  {i}. {item}")

choice = input("\n您的选择: ").split(",")

try:
    return [ingredients[int(i.strip()) - 1] for i in choice]
except:
print("无效!灵魂为你选择...")
return random.sample(ingredients, 3)
  • 处理 玩家输入
  • 验证 选择(使用 try/except
  • 如果你搞错了?游戏 不会崩溃,它会为你选择!(适合初学者的用户体验)

3. Game 类 – 节目的导演

def slow_print(self, text, delay=0.05):
    for char in text:
        print(char, end='', flush=True)
        time.sleep(delay)
    print()
  • 慢打印以制造悬念("B...u...b...b...l...i...n...g..."
  • ASCII 艺术横幅
  • 使用 time.sleep() 进行计时
  • 最终爆炸或胜利信息

观看完整游戏演示! 🎥

我录制了一段完整的游戏过程,让你可以实时看到戏剧的发展。观看紧张气氛如何逐渐升温,输入是如何工作的,以及当你猜错(或猜对!)时会发生什么。

专业技巧:在观看后自己运行游戏,尝试第一次就通关!


通过构建(或修改)这个你将学到的

这不仅仅是一个游戏,它是一个迷你面向对象编程大师班

概念 如何使用
类与对象 PotionApprenticeGame — 每个都执行一个功能
方法 choose_ingredients()slow_print()
错误处理 try/except 防止崩溃
随机性 random.sample() 提高重玩性
用户体验 慢速文本、暂停、反馈
代码结构 简洁、可读、可扩展

最后的想法:迷你游戏的重要性

女巫的药水不会赢得年度游戏奖……但它赢得了我的夜晚

它让我想起了我为什么编程:

  • 为了创造
  • 为了欢笑
  • 为了公开学习

最棒的部分是什么? 你也可以构建这个。事实上,我 你去分叉它,改变主题(圣诞精灵?太空酿造?),然后分享出来。


构建于 Python 3、爱与一点午夜魔法。

玩它破坏它重混它


观看演示YouTube

关注更多神秘代码@Shahrouzlogs 在 Twitter

GitHub 仓库Witch Potion

更多