零基础让 ChatGPT 手把手教你做一个简单的游戏


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

零基础让 ChatGPT 手把手教你做一个简单的游戏
零基础让 ChatGPT 手把手教你做一个简单的游戏

开始尝试:

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

零基础让 ChatGPT 手把手教你做一个简单的游戏
零基础让 ChatGPT 手把手教你做一个简单的游戏

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

零基础让 ChatGPT 手把手教你做一个简单的游戏

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

零基础让 ChatGPT 手把手教你做一个简单的游戏
零基础让 ChatGPT 手把手教你做一个简单的游戏

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

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

零基础让 ChatGPT 手把手教你做一个简单的游戏

没办法,继续提问:

零基础让 ChatGPT 手把手教你做一个简单的游戏
零基础让 ChatGPT 手把手教你做一个简单的游戏

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

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

零基础让 ChatGPT 手把手教你做一个简单的游戏
零基础让 ChatGPT 手把手教你做一个简单的游戏
零基础让 ChatGPT 手把手教你做一个简单的游戏

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

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

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

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

零基础让 ChatGPT 手把手教你做一个简单的游戏

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

零基础让 ChatGPT 手把手教你做一个简单的游戏

又或者增加更多的功能。

零基础让 ChatGPT 手把手教你做一个简单的游戏

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

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

零基础让 ChatGPT 手把手教你做一个简单的游戏

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

零基础让 ChatGPT 手把手教你做一个简单的游戏

吃了果实会变长。

零基础让 ChatGPT 手把手教你做一个简单的游戏

如果撞墙了就会提示:

零基础让 ChatGPT 手把手教你做一个简单的游戏

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(“<Key>”, 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 手把手教你做一个简单的游戏

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


© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容