Cursor AI 编程:6 岁小孩都能写俄罗斯方块

401 阅读13分钟

效果展示

最近在体验 Cursor,真的很 Amazing,40 多分钟,一行代码也没写,就做出了一个俄罗斯方块游戏,效果如下:

微信截图_20241206094011.png

全程没写过一句代码,对话难度小学级,没有编程基础的朋友也可以放心食用。

下面是我跟 Cursor 的全部对话,由于 Cursor 的回复内容太多,所以只放上了我自己说的话,大家直观体验一下 AI 编程的感觉:

  1. 用 Python 帮我写一个俄罗斯方块游戏。但我没有任何相关的编程经验,我的windows电脑上除了安装了Cursor代码编辑器外,也没有任何相关环境,请详细的一步一步的告诉我应该怎么做,我做完一步告诉你我做完了,你再告诉我下一步应该干什么。
  2. 由于特殊原因,我只能安装 python 3.6.8 版本。我已经完成了。
  3. 我运行了 py 文件,但是只看到一个窗口打开然后很快就关掉了。cmd 里也没有报错信息
  4. 一切正常,请继续
  5. 没问题,就是方块下落有点慢,可以继续
  6. 方块下落速度没有变得更快,大概5、6秒才自动下落一下。其它功能都正常,可以继续
  7. 没问题,请继续
  8. 基本功能都没问题了,就是字符显示是乱码。
  9. 先解决问题2吧
  10. 按了 p 之后,方块还是会自动下落。但是按方向键没反应。再按 p 也没用
  11. 按了 p 方块还是会自动下落,方向键还是没反应,也没有暂停文字的出现
  12. 暂停功能正常了,原来是中文输入法的影响,最好可以兼容下这个问题
  13. 左右移动和变方向的功能没有了
  14. 旋转的功能不正常,按一下按键,会旋转多次
  15. 旋转功能正常了,左右下移动太敏感了,稍微改一下
  16. 功能都正常,请继续
  17. 添加3的功能
  18. 实现 2 的功能
  19. 效果很满意,但是我发现左右移动功能有点问题,有的时候是移动一个格子,有的时候是2个格子。这导致左侧第三个格子总移动不到
  20. 效果非常好,下面加入等级系统吧
  21. 每次升级速度变化不太明显。另外,显示的字体太大了,会有遮挡,调整一下文字显示的布局
  22. 字体可以再小点,其它功能都没问题了,可以继续
  23. 根据 utf8 编码,重新生成代码中的中文内容以及字符
  24. 注释和符号全成乱码了,重新生成
  25. 现在我只要一保存文件,中文字符就会编程乱码。我希望统一用 utf8,我需要怎么做
  26. 我已经修改了 cursor 的编码,现在请修复代码中的乱码
  27. 继续
  28. 继续
  29. 继续
  30. 我能把它封装成一个可以直接在 windows 电脑上运行的程序吗
  31. 现在整个功能都已经没问题了,请在保证功能正常的情况下,重构一下代码,让代码更简洁高效
  32. 继续
  33. 继续
  34. 继续

通过上面的对话可以看到,实际上在第 20 次对话的时候,基本功能就已经完成了,后面的都是一些跟功能关系不大的修改。这个时候用在开发上的时间,实际上也就 30 分钟左右,期间多次经历 Amazing 时刻,真的非常惊喜。

本文将展示笔者从安装到制作出游戏的整个流程,非常适合想要了解 Cursor 但是还一直没动手的朋友。

Cursor 的使用

简介

Cursor 说白了,就是一个 AI 编程工具,可以通过对话自动生成和调整代码,需要下载,它的界面长这样:

微信截图_20241206123006.png

其实就是一个在代码编辑器,然后在右边加了一个 AI 对话框,如果用过 VS Code 的朋友相信会很熟悉。

不会代码的朋友也不要被这个专业的界面吓到了,实际上我们只会用到右侧对话框的部分,代码那部分都是自动生成的。

更多信息可以到它的 官网 查看,还有演示 Demo。

安装

Cursor 的安装还是很傻瓜式的,全程选择默认选项就可以,大概的步骤如下:

  1. 下载,在官网下载 Cursor 的安装文件,然后安装;
  2. 配置,安装过程中注意在 Language for AI 那里填入 中文 即可。如果你本地有 VS Code,它会问你是否把 VS Code Extensions 同步过来,这个影响不大,可以选默的同步;
  3. 注册,先在官网完成注册,比较友好地是,用国内邮箱也可以。然后就可以登录 Cursor 了;
  4. 插件,在左侧插件 Tab 下搜索 python,安装第一个就可以了。其它插件也是在这里安装;
  5. 汉化,可选,在左侧插件 Tab 下搜索 Chinese,安装第一个,然后重启 Cursor 就可以了。

安装步骤很简单,30 分钟足够搞定了,接下来就开始准备写游戏了。

新建项目

开始开发之前,得先建个文件夹和文件来承载这个项目,就像平时我们新建一个 Word 文档一样。

  1. 先在电脑的合适位置,新建个文件夹,用来存放 Cursor 生成的代码,比如叫 game
  2. 然后在 Cursor 里面,打开这个文件夹,目前它还是空的;
  3. 鼠标移动到左侧操作区,就会出现新建文件的按钮,点击它,新建一个 tetris.py 文件;
  4. 然后右上角打开 AI 对话面板,快捷键是 ctrl + alt + B。打开下面的控制台,快捷键是 ctrl + J

准备工作都完成了,下面开始进入开发。

正式开发

安装依赖

直接在 AI 对话框里输入下面的内容:

用 Python 帮我写一个俄罗斯方块游戏。但我没有任何相关的编程经验,我的windows电脑上除了安装了Cursor代码编辑器外,也没有任何相关环境,请详细的一步一步的告诉我应该怎么做,我做完一步告诉你我做完了,你再告诉我下一步应该干什么。

然后它应该会告诉你先安装依赖,按照它的步骤做就可以了,没有编程基础的朋友也完全不用担心,哪里碰到问题了直接在对话框里面输入就行。下面是 AI 给我的回答,大家请参考:

我很乐意帮你一步步创建俄罗斯方块游戏。让我们从最基础的开始。

第一步:安装必要的环境

  1. 首先我们需要安装 Python。请访问 Python 官网: www.python.org/downloads/

  2. 下载最新版本的 Python(选择 Windows 安装程序)

    • 下载时请确保勾选"Add Python to PATH"选项
    • 完成安装后,可以通过打开命令提示符(按 Win+R,输入 cmd)
    • 输入 python --version 验证安装是否成功
  3. 我们将使用 Pygame 库来创建游戏。安装完 Python 后,打开命令提示符,输入:

pip install pygame

完成这些步骤后,请告诉我"环境已经准备好了",我会继续指导你下一步。

提示:如果在安装过程中遇到任何问题,请告诉我具体的错误信息,我会帮你解决。

这些是基础环境的准备工作,等你完成后,我们就可以开始编写游戏代码了。你只需要完成这一步,然后告诉我,我就会指导你下一步该做什么。

初始代码

然后我跟他说:

由于特殊原因,我只能安装 python 3.6.8 版本。我已经完成了。

这是他的回复:

明白了。Python 3.6.8 版本也完全可以用来开发俄罗斯方块游戏。

让我们开始创建基础的游戏框架。我会给你第一部分代码,这部分代码包含了必要的导入和基本的游戏设置。

import pygame
import random

# 初始化Pygame
pygame.init()

# codes...

请将这段代码复制到你的 tetris.py 文件中。这段代码完成了以下工作:

  1. 导入必要的模块
  2. 初始化 Pygame
  3. 定义游戏中使用的颜色
  4. 设置游戏区域的大小和方块大小
  5. 创建游戏窗口
  6. 定义俄罗斯方块的各种形状和对应的颜色

复制完成后,请告诉我"第一部分代码已经复制完成",我会继续给你下一部分代码。

注意:

  • 确保代码已正确复制,不要漏掉任何行
  • 暂时还不能运行游戏,因为我们还需要添加更多的游戏逻辑
  • 如果在复制过程中遇到任何问题,请告诉我

代码部分我做了省略。这个时候在中间的代码显示部分,应该已经出现代码了,但是,其实并没有保存。你需要在你对话框附近点击一个 Accept all 的按钮,它才会保存修改。

微信截图_20241206105038.png

测试功能

代码保存之后,如果你已经安装了 python 插件,那么应该在代码的右上角有一个 Run Python File 的右三角按钮,点击它就可以运行了。下面是我这一轮的对话:

我运行了 py 文件,但是只看到一个窗口打开然后很快就关掉了。cmd 里也没有报错信息

这是他的回复:

这是正常的,因为我们还没有添加游戏的主循环代码。让我们添加游戏的核心逻辑和主循环。

# ... 保持之前的代码不变 ...

class Tetromino:
    def __init__(self):
        self.shape = random.choice(SHAPES)
        self.color = SHAPE_COLORS[SHAPES.index(self.shape)]
        self.x = GRID_WIDTH // 2 - len(self.shape[0]) // 2
        self.y = 0

    def move(self, dx, dy):
        self.x += dx
        self.y += dy
# code...

这段代码添加了:

  1. 一个表示俄罗斯方块的类(Tetromino)
  2. 游戏主循环
  3. 基本的移动控制(左右方向键移动,下方向键加速下落)
  4. 方块的自动下落
  5. 游戏画面的绘制

现在你可以运行游戏了,你会看到:

  • 一个方块会从顶部出现并慢慢下落
  • 可以使用左右方向键移动方块
  • 使用下方向键加速下落

但是目前还缺少一些重要功能:

  • 方块还不能旋转
  • 没有碰撞检测
  • 不能消除已完成的行
  • 没有游戏结束判定
  • 没有分数系统

试试运行游戏,告诉我是否正常工作,我们再来添加这些缺失的功能。

还是点击一下 Accept all,然后 Run Python File 测试。这回有窗口,也能看到有方块了。当时真的是特别 Amazing,十分震惊和兴奋。

而且他还解释了代码的功能,还有缺少的功能,不只是程序员,连产品经理的活都给做了,这时候你只需要说“继续”就好了。

调试 Bug

开发的过程中是一定会出 Bug 的,但是不用慌,我们照样可以用 Cursor 来解决。当控制台报错的时候,我们只需要选中它们,然后点击 Add to Chat 的按钮,然后描述你的问题,他就会生成修改的代码,然后你点击 Apply 就可以了。具体见下图:

微信截图_20241206113357.png

微信截图_20241206113633.png

这里附上我所有解决 Bug 的提问:

  1. 按了 “向上” 之后会报这个错,然后退出
  2. 报错了
  3. 还是有报错,应该是之前有了冗余代码,请整理一下代码
  4. 报错了
  5. 还是报相同的错误
  6. 有报错,请重新梳理代码
  7. 报错了

其实报错不算多,而且我好像说的最多的就是“报错了”,你就说是不是 6 岁小朋友都能学会吧。

完成开发

学会了如何在 COMPOSER 里开发功能,和如何在 CHAT 里解决 Bug,剩下的就是像我一样,跟 Cursor 说“继续”、“请实现 xxx 功能”和“报错了”就行了。

怎么样,大家学会了吗?

小结

先主观的总结一下:

用 Cursor 进行开发,实在是太爽,太 Amazing 了。这个游戏如果让我自己手撸,估计最少要 2 天的时间,结果现在 1 个小时都不到,效率提升了百倍,真的不是夸张。

再尝试客观的总结一下:

首先,我自己是一个经验丰富的程序员,许多默认的前置知识我都不需要补充,所以用起 Cursor 来会格外的得心应手。如果真的是编程小白,估计使用过程中还是会有一些卡点的。

所以,真的建议大家学习一下编程的最基础知识,这个动作将在 AI 的加持下,投入产出比变得巨大。

然后,俄罗斯方块其实是一个非常成熟的游戏,AI 也知道它都有什么功能,所以可以连带着把产品经理的活也都做了。但是如果换成一个全新的游戏,那么负责提出需求的人,就是你自己了,你要懂得如何梳理产品功能,如何跟 AI 提需求。

所以,也建议大家平时刻意练习产品思维,起码知道要做成一个产品,产品经理应该做什么,怎么做。然后在不断的实践中,完善方法论和技能。

最后,“AI 编程是否能做复杂的大项目”,这个一直是被人质疑,尤其是被程序员们质疑的一件事。我个人的观点是:

只要是复杂的项目,就一定涉及到架构设计。所谓的架构设计,就是把项目在技术层面上进行合理的拆分解耦。也就是说,要把一个复杂的项目,拆分成多个独立的、简单的小项目。

从项目质量上讲,这样做无疑能够提高项目的稳定性和健壮性;从开发效率上讲,可以一定程度上的靠“堆人”来提高开发效率;从可维护性上讲,每个模块之间都是解耦的,无疑大大降低了维护的复杂度和难度。

总之,AI 编程是否能做复杂的大项目。更多的不是取决于 AI 的能力,而是取决于使用者的架构设计能力

所以,如果你是一个程序员,请刻意训练你的拆分和解耦的能力,去了解一下“函数式编程”,也许会有很大的帮助。

结语

通过这个案例和笔者的小结,相信大家对于 AI 编程这件事情已经有了更形象和具体的认识。

AI 时代,如果你自己懂一点点编程、懂一点点产品、懂一点点架构、懂一点点运营,那么你的这些一点点将会被 AI 放大成百上千倍,真正的成为超级个体

当然,这也不是一件简单的事情,这得要求一个人有足够的好奇心和学习能力。

更重要的是,要在 AI 的加持下,不断的去实践,拿到结果,然后复盘。这些“一点点”,会很快的变成“熟练”。然后就可以更快的实践和复盘。然后“熟练”就会变成“精通”……

这是一个恐怖的“个人成长正向飞轮”。即使现在 AI 还处于发展的初期,在个人成长方面,它能带给我们的提效也是巨大的。

最后,祝大家,也祝自己,在成为超级个体的路上,早日扶摇直上,乘风万里。

公众号、知乎、掘金、CSDN 同名,欢迎关注~