AI大乱斗——用python写一个烟花秀
故事从一个B站视频开始。我看到有人上传了一段烟花秀的视频,并注明是由python程序生成,如果需要源代码,需要关注和三连,然后私信他。我禁不住好奇,打算找他要到源代码学习一番。于是按照up主的要求操作,并私信了他。很快我收到一个网址,打开一看是个论坛发帖。如果要看帖子的内容需要注册账号并回复帖子。我耐着性子操作完毕,然后看到因为级别不够,需要充值购买金币,才能下载附件中的源码包。鲁迅说过,我走过很
故事从一个B站视频开始。
我看到有人上传了一段烟花秀的视频,并注明是由python程序生成,如果需要源代码,需要关注和三连,然后私信他。
我禁不住好奇,打算找他要到源代码学习一番。
于是按照up主的要求操作,并私信了他。
很快我收到一个网址,打开一看是个论坛发帖。
如果要看帖子的内容需要注册账号并回复帖子。
我耐着性子操作完毕,然后看到因为级别不够,需要充值购买金币,才能下载附件中的源码包。
鲁迅说过,我走过很多路,都不如你的套路。
忽然想起,AI大模型也可以写代码,看不懂还可以生成注释。
我何不让国产AI们各写一段烟花秀的代码,然后评比一番呢?
故事的结局非常耐人寻味。
我打算让文心一言、通义千问、智谱清言和天工这4个AI大模型,都回答这个问题——麻烦用python写一个烟花秀。
然后在我的电脑上运行一番。
以下是他们给出的答案。
文心一言
创建一个烟花秀涉及到图形界面的渲染,Python中常用的库有turtle和pygame。这里我将为你提供一个使用turtle库的基础烟花秀示例。请注意,这只是一个简单的示例,如果你想要一个更复杂、更逼真的烟花效果,你可能需要使用更高级的图形库,如pygame,并结合物理和数学的知识来模拟烟花的轨迹和爆炸效果。
首先,确保你已经安装了Python,并且你的环境中包含turtle库。
下面是一个简单的烟花秀示例代码:
python``import turtle``import random``# 设置屏幕``screen = turtle.Screen()``screen.bgcolor("black") # 设置背景颜色为黑色``# 创建烟花发射器``firework_launcher = turtle.Turtle()``firework_launcher.hideturtle() # 隐藏发射器``firework_launcher.speed(0) # 设置速度为最快``firework_launcher.penup() # 提起笔,移动不留痕迹``firework_launcher.goto(0, -200) # 将发射器放在屏幕底部中央``firework_launcher.color("white") # 设置烟花颜色为白色``# 定义烟花爆炸函数``def explode(x, y):` `firework = turtle.Turtle()` `firework.hideturtle()` `firework.speed(0)` `firework.penup()` `firework.goto(x, y)` `firework.color(random.choice(["red", "orange", "yellow", "green", "blue", "purple"])) # 随机选择烟花颜色` `firework.pendown() # 放下笔,移动留痕迹` `firework.begin_fill() # 开始填充颜色` `for _ in range(36): # 画一个圆形作为烟花爆炸效果` `firework.forward(10)` `firework.right(10)` `firework.end_fill() # 结束填充颜色``# 定义发射烟花函数``def launch_firework():` `angle = random.randint(0, 360) # 随机选择发射角度` `power = random.randint(5, 15) # 随机选择发射力量(决定烟花的高度)` `x = power * random.uniform(-1, 1) # 计算烟花的初始x坐标,使烟花在发射时有一些水平偏移` `y = -power # 烟花的初始y坐标(发射器在y=-200)` `firework_launcher.setheading(angle) # 设置发射器的朝向` `firework_launcher.forward(power) # 移动发射器,模拟烟花的发射轨迹` `explode(firework_launcher.xcor(), firework_launcher.ycor()) # 在烟花的落点处爆炸` `firework_launcher.home() # 将发射器移回原位,准备下一次发射``# 主循环,不断发射烟花``while True:` `launch_firework()` `screen.update() # 更新屏幕显示` `screen.ontimer(lambda: None, 50) # 每50毫秒发射一次烟花,调整这个值可以改变烟花的发射频率
这个代码创建了一个简单的烟花秀,每次烟花从屏幕底部的中央位置随机角度发射,并在达到一定高度后爆炸。每个烟花的颜色也是随机的。你可以根据需要调整代码中的参数和逻辑来创建更复杂的烟花效果。
这个烟花秀需要想象力,我发现程序不停地在上方画圆,而且是各种颜色的。
我给文心一言打5分。
通义千问
在Python中,我们可以使用matplotlib库来创建一个动态的烟花动画。虽然matplotlib主要被用于数据可视化,但其强大的绘图功能也可以用来模拟烟花效果。以下是一个简单的示例代码:
python``import numpy as np``import matplotlib.pyplot as plt``from matplotlib.animation import FuncAnimation``import random``# 窗口大小和烟花数量``fig, ax = plt.subplots(figsize=(8, 8))``num_fireworks = 10``# 初始化烟花位置、颜色和速度``fireworks = []``for _ in range(num_fireworks):` `x = random.uniform(-2, 2)` `y = random.uniform(-2, 2)` `vx = random.uniform(-1, 1)` `vy = random.uniform(3, 6)` `color = (random.random(), random.random(), random.random())` `fireworks.append((x, y, vx, vy, color))``def update(frame):` `# 清除上一帧的图像` `ax.clear()` `for i, firework in enumerate(fireworks):` `x, y, vx, vy, color = firework` `# 更新烟花位置` `x += vx` `y -= vy` `vy -= 0.5` `# 当烟花上升到一定高度或下降到地面时,重置其位置和速度` `if y < -2 or y > 2:` `fireworks[i] = (` `random.uniform(-2, 2),` `random.uniform(-2, 2),` `random.uniform(-1, 1),` `random.uniform(3, 6),` `color,` `)` `# 绘制烟花轨迹` `ax.plot([x, x], [y, 0], c=color, alpha=0.7)` `# 绘制烟花爆炸效果(以圆点表示)` `ax.scatter(x, y, s=np.abs(vy) * 40, c=color, alpha=0.9, edgecolors="none")` `ax.set_xlim(-3, 3)` `ax.set_ylim(-3, 3)` `ax.axis("off")``ani = FuncAnimation(fig, update, frames=range(100), interval=50)``plt.show()
这段代码创建了一个包含多个随机初始位置、速度和颜色的烟花数组。每帧动画中,我们更新每个烟花的位置,并根据其垂直速度绘制轨迹和爆炸效果。当烟花到达地面或飞出画面时,我们将其重置为新的随机初始状态。最后,使用FuncAnimation创建并显示动画。
请注意,这只是一个非常基础的模拟,实际的烟花效果可能更为复杂,包括更丰富的颜色变化、形状、粒子效果等。要实现更逼真的烟花秀,可能需要借助更专业的图形库(如Pygame、Panda3D等)或使用专门的物理引擎进行模拟。
这是在白天放烟花吗,我感觉是震天雷,可惜听不到声音。
我给通义千问打4分。
智谱清言
好的,我将使用Python来创建一个简单的烟花秀模拟。这个模拟将使用matplotlib库来生成烟花在空中爆炸的视觉效果。请稍等片刻。
代码生成:已完成
python``import matplotlib.pyplot as plt``import numpy as np``# 设置matplotlib的动画功能``from matplotlib.animation import FuncAnimation``# 初始化图形``plt.style.use('dark_background')``fig, ax = plt.subplots()``ax.set_xlim(-5, 5)``ax.set_ylim(0, 10)``points, = ax.plot([], [], marker='o', color='w', ls='')``# 烟花的初始参数``n_particles = 50``t_max = 2``dt = 0.05``# 生成烟花的轨迹``def generate_firework(start, end):` `t = np.linspace(0, t_max, int(t_max/dt))` `x = start + (end - start) * t` `y = -0.5 * 9.81 * t**2` `return x, y``# 初始化烟花的轨迹``x_data, y_data = generate_firework(-1, 1)``# 更新函数``def update(frame):` `x_data, y_data = generate_firework(-1, 1)` `points.set_data(x_data[:frame], y_data[:frame])` `return points,``# 创建动画``ani = FuncAnimation(fig, update, frames=int(t_max/dt), blit=True)``plt.show()
这是一个简单的烟花秀模拟。在这个模拟中,烟花从底部发射并上升到空中,然后爆炸。这个效果是通过matplotlib动画功能实现的。如果您想要更复杂或更逼真的烟花效果,可以使用更高级的图形库或专门的烟花模拟软件。希望您喜欢这个简单的烟花秀!
这个烟花很抽象,只能看到地上有一坨东西。
很失望啊,我给智谱清言打1分。
天工
要使用Python创建一个简单的烟花秀效果,我们可以利用`turtle`图形库来实现。以下是一个示例代码,它将绘制一系列随机颜色和位置的烟花:
python``import turtle``import random``# 设置屏幕``screen = turtle.Screen()``screen.bgcolor("black")``screen.title("烟花秀")``# 创建烟花的函数``def create_firework(x, y):` `firework = turtle.Turtle()` `firework.color(random.choice(["red", "orange", "yellow", "green", "blue", "purple", "white"]))` `firework.goto(x, y)` `firework.setheading(random.randint(0, 360))` `firework.speed(0)` ` # 绘制烟花爆炸效果` `for _ in range(36):` `firework.forward(random.randint(50, 100))` `firework.right(170)` ` # 隐藏烟花的起点` `firework.hideturtle()``# 创建多个烟花``for _ in range(20):` `create_firework(random.randint(-200, 200), 150)``# 结束绘图``turtle.done()
这段代码首先导入`turtle`和`random`库。然后设置屏幕背景色和窗口标题。`create_firework`函数负责创建单个烟花,它随机选择颜色和位置,并绘制出烟花爆炸的效果。最后,通过循环创建20个烟花,并调用`turtle.done()`结束绘制。
运行这段代码后,你将看到一个黑色背景的窗口,上面随机分布着彩色的烟花。每个烟花由一系列随机长度的线段组成,模拟出烟花爆炸时的效果。
这是我唯一看懂的烟花秀,经过前面几位选手的衬托,我想给天工满分。
咱不能和尿炕的比出息,我给天工打7分。
按照评分排序,天工>文心一言>通义千问>智谱清言。
这个排名,纯主观,纯娱乐,大家就看个乐呵吧。
其实同样的问题,AI每次给出的答案都是不同的。
如果发现效果不尽如人意,也可以让AI按照自己的要求修改。
大家可以自己钻研,如何得出满意的答案。
我忽然发现,国产AI大模型比那些割韭菜的培训营销号有用多了。
关于Python学习指南
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!
👉Python所有方向的学习路线👈
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取)
👉Python学习视频600合集👈
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
温馨提示:篇幅有限,已打包文件夹,获取方式在:文末
👉Python70个实战练手案例&源码👈
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
👉Python大厂面试资料👈
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
👉Python副业兼职路线&方法👈
学好 Python 不论是就业还是做副业赚钱都不错,但要学会兼职接单还是要有一个学习规划。
👉 这份完整版的Python全套学习资料已经上传,朋友们如果需要可以扫描下方CSDN官方认证二维码或者点击链接免费领取【保证100%免费
】
更多推荐
所有评论(0)