什么中午又不知道吃什么?那就来看看这个代码吧!
🎯 玩法说明
- 输入候选菜品(用空格分隔)
- 终端绘制彩色转盘 + 旋转指针
- 随机惯性减速,最后箭头指向 → 今日午餐!
💻 源码:food_wheel.py(< 30 行)
#!/usr/bin/env python3
import random, time, sys, os
def spin_wheel(foods):
n = len(foods)
colors = ["\033[38;2;255;{};{}m".format(int(255*i/n), int(255*(1-i/n))) ) for i in range(n)]
arc = "▁▂▃▄▅▆▇█" # 转盘块
for _ in range(random.randint(15, 25)): # 惯性圈数
os.system('clear||cls')
idx = _ % n
wheel = "".join(f"{colors[i]}{arc}{foods[i]}\033[0m" + (" ▶" if i==idx else " ■") for i in range(n))
print("🥘 食堂转盘启动!\n" + wheel + f"\n ← 旋转中...{random.choice(['🌀','⚡'])}")
time.sleep(0.08 if _ < 10 else 0.15) # 减速
print(f"\n✅ 今日午餐:{foods[idx]}!")
if __name__ == "__main__":
foods = input("🥘 输入菜品(空格分隔):").split()
if not foods: print("❌ 不能为空!"); sys.exit(1)
spin_wheel(foods)
✅ 运行方式
python food_wheel.py
🎨 可玩改装
| 玩法 | 一行提示 |
|---|---|
| 更慢减速 | time.sleep(0.3) 最后几圈 |
| 音效 | os.system("afplay ding.mp3") 停止后 |
| 重复抽奖 | while input("再转?y/n") == "y": |
| 打包 EXE | pyinstaller -F food_wheel.py |
🏁 一句话口诀
**“输入菜品,空格分隔;彩虹转盘,指针停歇;今日午餐, terminal 决定!”**🥘