大家好,亲爱的编码者和万圣节爱好者们!👻 随着夜晚变得更长,空气变得清新,我总是感到想要构建一些有趣、应季,并且略带神秘色彩的东西。昨晚,我一边品尝着南瓜香料咖啡,一边在YouTube上听着劈啪作响的火焰音效,坐下来编写了女巫的药水,这是一个小型文本猜测游戏,完美捕捉了万圣节的精髓,代码不超过100行,既简洁又富有教育意义的Python。
这不仅仅是另一个“你好,世界”的项目。这是一个真正的迷你游戏,具有面向对象编程结构、戏剧性的时机、随机化的秘密和玩家互动,所有这些都包裹在万圣节的氛围中。没错,我录制了一段完整的演示视频,这样你在运行代码之前就可以看到它的实际效果!
游戏:作为学徒的任务
你是 女巫的学徒。这位老妇人已经出门去恐吓村庄,留下了她的 冒泡的锅 和一条指令:
“使用 恰好三种成分 酿造我的秘密药水。匹配我的组合……否则锅会 在你面前爆炸!”
你的成分(选择 3 种!):
- 蝾螈之眼 👁️
- 青蛙腿 🐸
- 南瓜种子 🎃
- 蝙蝠翅膀 🦇
- 鬼魂尘埃 👻
你输入你的猜测,例如: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()进行计时 - 最终爆炸或胜利信息
观看完整游戏演示! 🎥
我录制了一段完整的游戏过程,让你可以实时看到戏剧的发展。观看紧张气氛如何逐渐升温,输入是如何工作的,以及当你猜错(或猜对!)时会发生什么。
专业技巧:在观看后自己运行游戏,尝试第一次就通关!
通过构建(或修改)这个你将学到的
这不仅仅是一个游戏,它是一个迷你面向对象编程大师班:
| 概念 | 如何使用 |
|---|---|
| 类与对象 | Potion、Apprentice、Game — 每个都执行一个功能 |
| 方法 | choose_ingredients()、slow_print() |
| 错误处理 | try/except 防止崩溃 |
| 随机性 | random.sample() 提高重玩性 |
| 用户体验 | 慢速文本、暂停、反馈 |
| 代码结构 | 简洁、可读、可扩展 |
最后的想法:迷你游戏的重要性
女巫的药水不会赢得年度游戏奖……但它赢得了我的夜晚。
它让我想起了我为什么编程:
- 为了创造
- 为了欢笑
- 为了公开学习
最棒的部分是什么? 你也可以构建这个。事实上,我 敢 你去分叉它,改变主题(圣诞精灵?太空酿造?),然后分享出来。
构建于 Python 3、爱与一点午夜魔法。
玩它。 破坏它。 重混它。
观看演示 → YouTube
关注更多神秘代码 → @Shahrouzlogs 在 Twitter
GitHub 仓库 → Witch Potion

