突发奇想,我没有任何编程知识,能不能让 ChatGPT 手把手教我做一个简单的游戏,我只要负责复制粘贴就行?


开始尝试:

写一个贪吃蛇的游戏,并告诉我在电脑上怎么玩这个游戏,写出详细的步骤。我对于编程的知识是0.





他写出了整个流程,但是没有把完整代码写出来,于是我就继续要求。



这回他写出了代码,于是我让他写出更具体的执行操作步骤。





好极了,很详细的流程,感觉马上就要成功了。

但是,不出意外的话马上就要出意外了。我从 python 官网下了一个压缩包,解压之后出现了一大堆我看不懂的东西:



没办法,继续提问:





看懂了,我下载的这个不需要安装。

然后又出现了一些奇怪的问题……







看来 AI 也会写出错误的代码,没办法,就把错误提供给他,让他给我修改就好了。

但是他告诉我在哪里修改,我并不会修改,因为我双击打开代码文件没有反应,也许我又漏装了什么……

但是有个最简单的解决方案就是:重新用记事本新建一个就好了。

所以我选择让他把修改完的完整代码给我,而不是告诉我修改的步骤:



游戏可以运行之后,我就发现速度太快了,于是我要求增加速度调整功能。



又或者增加更多的功能。



又经历了多次报错和反复拉锯(是的,AI 竟然嫌弃代码太长不愿意写,那就重开一个窗口把要求复制过来提问,然后 AI 就乖乖地给了全部代码)。

最后,游戏成功运行了,打开游戏长这样:



先选择速度,然后可以点击开始游戏:



吃了果实会变长。



如果撞墙了就会提示:



OK,上面就是我人生中编写的第一个游戏的全过程,代码就开源(是这么说对吧……)在下面了!


哈哈,好中二的感觉~


import tkinter as tk
import random

class SnakeGame:
def __init__(self):
self.window = tk.Tk()
self.window.title("贪吃蛇游戏")
self.speed = tk.IntVar()
self.speed.set(15) # 默认速度为15
self.create_speed_slider()
self.create_start_button()
self.canvas = None
self.snake = [(100, 50), (90, 50), (80, 50)] # 贪吃蛇初始位置
self.direction = "Right"
self.food = self.create_food()
self.game_over = False
self.window.mainloop()
def create_speed_slider(self):
speed_label = tk.Label(self.window, text="请选择速度")
speed_label.pack()
speed_slider = tk.Scale(self.window, from_=1, to=30, orient=tk.HORIZONTAL, variable=self.speed)
speed_slider.pack()
def create_start_button(self):
start_button = tk.Button(self.window, text="开始游戏", command=self.start_game)
start_button.pack()
def start_game(self):
self.window.destroy()
self.window = tk.Tk()
self.window.title("贪吃蛇游戏")
self.window.bind("", self.change_direction)
self.canvas = tk.Canvas(self.window, width=500, height=500)
self.canvas.pack()
self.draw_snake()
self.draw_food()
self.move_snake()
self.window.mainloop()
def create_food(self):
x = random.randint(1, 49) * 10
y = random.randint(1, 49) * 10
return x, y
def draw_snake(self):
self.canvas.delete(tk.ALL)
for x, y in self.snake:
self.canvas.create_rectangle(x, y, x+10, y+10, fill="green")
def draw_food(self):
x, y = self.food
self.canvas.create_oval(x, y, x+10, y+10, fill="red")
def move_snake(self):
if not self.game_over:
head_x, head_y = self.snake[0]
if self.direction == "Up":
head_y -= 10
elif self.direction == "Down":
head_y += 10
elif self.direction == "Left":
head_x -= 10
elif self.direction == "Right":
head_x += 10
self.snake.insert(0, (head_x, head_y))
if self.check_collision():
self.game_over = True
if head_x == self.food[0] and head_y == self.food[1]:
self.food = self.create_food()
else:
self.snake.pop()
self.draw_snake()
self.draw_food()
self.window.after(1000 // self.speed.get(), self.move_snake)
else:
self.show_game_over()
def change_direction(self, event):
if event.keysym == "Up" and self.direction != "Down":
self.direction = "Up"
elif event.keysym == "Down" and self.direction != "Up":
self.direction = "Down"
elif event.keysym == "Left" and self.direction != "Right":
self.direction = "Left"
elif event.keysym == "Right" and self.direction != "Left":
self.direction = "Right"
def check_collision(self):
head_x, head_y = self.snake[0]
if (
head_x < 0 or head_x >= 500 or
head_y < 0 or head_y >= 500 or
(head_x, head_y) in self.snake[1:]
):
return True
return False
def show_game_over(self):
self.canvas.delete(tk.ALL)
game_over_label = tk.Label(self.window, text="你输了")
game_over_label.pack()
restart_button = tk.Button(self.window, text="复活", command=self.restart_game)
restart_button.pack()
def restart_game(self):
self.game_over = False
self.snake = [(100, 50), (90, 50), (80, 50)]
self.direction = "Right"
self.food = self.create_food()
self.start_game()

SnakeGame()


最后再感叹一下,gpt的发展太快了,随着插件的不断丰富,已经可以实现非常多的功能,大家一定要去尝试~



如果分享对你有帮助希望点个赞哦~


————————


我在生财的其他文章链接:


跨境电商的ChatGPT应用指南全集v3.0


1天内如何启动电商/外贸/跨境网站?ChatGPT来助力!


一个工具管理上百个社媒账号?指纹浏览器使用全攻略!


白嫖!3000元的谷歌广告优惠你要吗?


Etsy注册最新最全指南!一文回答如何注册、需要哪些材料、如何避免封店、如何申诉


效率飙升!跨境电商领域的ChatGPT应用指南v1.0


《段永平投资问答录-商业逻辑篇》精华金句摘录


《段永平投资问答录-投资逻辑篇》精华金句摘录


《穷查理宝典》精华金句摘录


Comments on "零编程知识怎么在AI帮助做一个贪吃蛇的游戏" :

Leave a Reply

Your email address will not be published. Required fields are marked *

本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。

最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。 若排除这种情况,可在对应资源底部留言,或联络我们。

对于会员专享、整站源码、程序插件、网站模板、网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。

如果您已经成功付款但是网站没有弹出成功提示,请联系站长提供付款信息为您处理

源码素材属于虚拟商品,具有可复制性,可传播性,一旦授予,不接受任何形式的退款、换货要求。请您在购买获取之前确认好 是您所需要的资源