如何用 GPT-4 帮你写游戏?

news/2024/11/24 8:03:00/

你知道的,GPT-4 发布了。

目前你想要用上 GPT-4,主要的渠道是 ChatGPT Plus 。作为交了订阅费的用户,你可以在对话的时候选择模型来使用。

另一种渠道,就是申请官方 API 的排队。我在申请 New Bing Chat 的时候,耐心被折磨了 20 天。所以这次申请完就放在一边了。啥时候通过申请,听天由命吧。

有了 GPT-4 ,你可以干什么呢?

有人看了官方的演示视频后,就兴冲冲打算上传图片进行「看图说话」。然后你会发现,连上传图片的地儿都没有。即便是用上 ChatGPT Plus,你也依然只能守着文本框发呆。

哦,对了,刚才差点儿忘了说。即便你交了钱用上 ChatGPT Plus,每 4 个小时周期内,也只能有 100 条 GPT-4 对话限额。

那咱们该如何利用这宝贵的对话权限呢?

我昨天尝试了 GPT-4 各种推理和翻译能力,印象深刻。但是今天我要跟你介绍的,是它的编程功能。精确来说,是游戏编程。

这是我今天在网上看到的例子。这位老兄(Andre)就是说了一句话,然后 GPT-4 就编好了创新性的融合游戏(生命游戏 + Pong)。

Andre 于是用丰富的语言内容表达了自己的惊喜。

我觉得这就是个噱头。你说一句话,游戏就能编出来了?你也太小瞧开发者的能力门槛了吧?

为了揭穿这个谎言,我决定把他说的话原封不动扔到我的 GPT-4 对话里,看看出来的是啥玩意儿。

嗯,程序有了,我直接把程序贴到了 Visual Studio Code 里面,运行。

哈哈,你看,报错了吧?

我就知道不靠谱嘛!

且慢,好像人家早就给我提示,让我安装软件包来着。

好吧,算我没看清楚,好吧?我根据提示安装上 pygame 软件包,然后运行。

居然没有报错,就能用了。

不过运行的效果,是这样的:

你看你看,啥玩意儿嘛?分明就是两个游戏。而且右边这半边最可恨。是可以拿着板子上下飞舞,可是球哪儿去了?

不过按照以往的经验,我们可以用自然语言让它改进。

于是我怒气冲冲,这么说:

至少你需要给我一个球让我打,还要一个记分牌。

它还挺懂礼貌,先跟我道歉,然后把代码做了更新。

我把更新的代码弄了进来运行,依然没有报错。

这次确实有了球可拍,而且也能计分了。但是问题多多啊。你看,分数规则奇怪,而且球和左侧的游戏交互也缺乏。

于是我继续提要求:

如果球击中左侧的组件,则该组件应相应消失。请修改代码。

之后又提出:

添加一个重新开始游戏的按钮。此外,如果球撞到左侧组件,则得分 + 1。谢谢。

GPT-4 很认真修改代码,之后运行效果是这样的:

不过,还是有不尽如人意的地方。例如得分总会突然归零。以及左侧那堆网格线,看得我头晕。

于是我继续给 GPT-4 提出要求:

添加开始和暂停按钮。同时,除非球飞出右边界,否则保留得分。此外,左侧的网格有点烦人,请您把它们擦掉好吗?

这次结果代码执行起来,效果是这样的:

你看这感觉,是不是好多了呢?

我知道这游戏还有很多缺点,而且我的做法毫无原创性可言。但是这个复现过程,至少证明了一件事 —— 原帖的作者 Andre 没有夸大其词 —— 完全用自然语言提要求,GPT-4 确实就可以帮你写游戏了。

我于是发了一番感慨:

当然,任何一个有经验的程序员,都可以站出来指出 GPT-4 辅助编程的种种缺点,然后断言它永远替代不了优秀的开发者。

你别忘了, GPT-4 发布还不到 48 小时,目前一众大语言模型还在以狂飙的姿态进化中。再说了,谁说它的目标是替代「优秀的开发者」了?

借用好友川总的话说,优秀的开发者会利用它,效率提升 100 倍;编程入门者会利用它,享受私教带来因材施教的愉悦。

我非常赞同,但是提出了一个疑问 —— 中间层开发者的被 AI 冲击后,入门者该怎么成长为顶级优秀的专业人士呢?

目前,我还没有答案。想听听你的看法。欢迎留言,咱们一起交流讨论。


http://www.ppmy.cn/news/57176.html

相关文章

交叉编译相关知识整理

因为嵌入式设备的特殊性,比如其内存,性能可能相比与通用设备较弱,或者设备上缺少编译工具链等等原因,很多时候想要在嵌入式设备上使用某些程序时,需要在 在通用机器上编译好,而在嵌入式设备上运行&#xff…

Shell(五)Bash行操作目录堆栈

1.光标移动 Ctrl a:移到行首。Ctrl b:向行首移动一个字符,与左箭头作用相同。Ctrl e:移到行尾。Ctrl f:向行尾移动一个字符,与右箭头作用相同。Alt f:移动到当前单词的词尾。Alt b&#…

Github创建一个新仓库,关联本地数据并上传文件的图文步骤

工作中,我们经常会使用github来承享别人的代码果实,同时我们也会把自己的成果分享给别人,互相帮助。 今天的这篇图文教程非常重要,目标是使用Github来创建一个远程仓库,并和本地仓库对接,同时要做上传新内容…

报错解决:Could not find a package configuration file provided by “Pangolin“以及一系列问题

报错解决:Could not find a package configuration file provided by "Pangolin" 博主在使用cmake编译自己的工程时,遇到了如下报错: CMake Error at CMakeLists.txt:5 (find_package):By not providing "FindPangolin.cmake…

QT双缓冲机制

QT双缓冲机制 双缓冲机制介绍实现步骤绘图区实现drawwidget.h文件drawwidget.cpp文件注意Painter的无参数构造 主选项区域实现mainwindow.h文件mainwindow.cpp文件 双缓冲机制介绍 双缓冲机制,是指在控件绘制时,会首先将要绘制的内容绘制在一个图片中&am…

互联网摸鱼日报(2023-04-30)

互联网摸鱼日报(2023-04-30) InfoQ 热门话题 被ChatGPT带火的大模型,如何实际在各行业落地? Service Mesh的未来在于网络 百度 Prometheus 大规模业务监控实战 软件技术栈商品化:应用优先的云服务如何改变游戏规则…

荔枝派Zero(全志V3S)基于QT实现在LCD显示图片

文章目录 前言一、配置 buildroot 及编译二、写 QT 代码三、编译可执行文件四、拷贝到 SD 卡五、上板子测试六、资源自取 前言 有这样一个需求,通过配置 QT,在 linux 下实现显示我所想要显示的图片,实现的方式是我可以在命令行将图片的路径作…

Stream流中各阶段方法说明及组合示例

文章目录 常用方法Stream方法组合使用第一种介绍字符串集合可进行的操作第二种介绍int类型集合可进行的操作第三种介绍collect()和filter()组合的使用方式方法对比flatMap()和filter() Stream的创建1. 从集合或数组创建2. 使用Stream.of()创建3. 使用Stream.iterate()创建4. 使…