🍽️ 食堂转盘 · Python 终端版

160 阅读1分钟

什么中午又不知道吃什么?那就来看看这个代码吧!

微信图片_20251014151033_10_20.jpg

🎯 玩法说明

  1. 输入候选菜品(用空格分隔)
  2. 终端绘制彩色转盘 + 旋转指针
  3. 随机惯性减速,最后箭头指向 → 今日午餐!

💻 源码: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":
打包 EXEpyinstaller -F food_wheel.py

🏁 一句话口诀

**“输入菜品,空格分隔;彩虹转盘,指针停歇;今日午餐, terminal 决定!”**🥘