网站首页 > 技术文章 正文
用Cursor做个完备的24点小游戏,从建工程到生成代码,全部AI生成。用时6小时,对话44轮。
效果:有精确的难度分级,有答案提示,有计时,计分。
0.设计思路(认知结构)
对24点全面分析,每个题目定义难度系数,基于难度出题。为确保过程中AI不会过度幻觉,要求每个步骤都生成可解释的文件,作下一步输入。
1.和AI的对话过程
_**User**_
下面我们来一步一步实现一个有难度分级的24点游戏。请严格按我的指令行动,不要主动做多余的事情。首先用python代码生成24点所有可能题目,数字是1到13。并且写入到一个文本文件中。
_**User**_
请优化下,所有题目的数字都倒序排列
_**User**_
请写一个程序列出文件@24point_all_problems.txt 中每个24点题目的所有可能解法。输出格式参考@多解法格式.csv ,注意所有解法都必须识别出来,同时要避免等等价解法重复出来。比如组合: (1, 1, 1, 11) 的四种解法,其实是一种
_**User**_
我发现了错误,如[11, 5, 3, 1],答案中只给了一种解法,但实际上还可以有另外解法,如(11+1)*(5-3),请再检查一遍相关程序,修复问题,并重新生成csv文件
_**User**_
请检查@
24point_solutions_fixed.csv 这个文件中对于24点的解法的判断,比如示例图片的解法,在我看来应该只有两种解法,不应该是8种。
_**User**_
好的,请帮我修改程序,重新生新完整的所有解法的csv文件。
_**User**_
接下来我们对每道24点的题目做下难度分级,我们要对每个解法做一个综合的评分体系,越反直觉的解法难度越高,比如中间数大于24的,比如[5, 5, 5, 1]这种只能用分数才能算出来的,就比较复杂,可以先随机挑几个题测试一下。
_**User**_
难度分级再优化一下,中间结果复杂度,再加大一倍。分析文件@
24point_solutions_strict.csv 中每道题的解法,每道题的难度取所有解法中的最小值,同时在难度系数中考虑解法,如果这道题解法多,就难度就低一点,如果解法少,难度就高一点。最后生成一个新的csv文件,在原始的文件中,前面增加一列,显示每道题的最终难度。
_**User**_
@24dian_all_final.csv 现在基于这个csv文件,我们生成一个网页游戏,要求是闯关游戏,从简单到中等,到困难,到极难,在困难和极难中要随机放一些无解的题目。完成时间越短,得分越高。所有题目都从这个文件中出。输入答案的地方要设计的体验简洁一点,比如可以把题目中的四个数字和可选的加减乘除四个符号,显示在两边,通过拖拉就可以拼成答案。或者也可以直接输入。也可以选择无解。如果答错就从相同等级的题目中再选一道来做,做完这个等级,才能进入下一等级。
2.小结
完成了网页游戏,关键10句话,完成了一个基于我思路的网页游戏。并得到了一个带难度分级的题库。
总结与思考
- 2025年一个普遍的认知是:AI从炫技进入了追求成效的阶段,
- 会出现一些新的工程方法,和开发范式;
- 比如这次,我每一大步都生成一个可解释的中间文件,避免大模型过度发挥;
- 在由AI完全任务分解和严格的规则约束之间,会有一个中间态,我们叫它认知结构,基于认知结构编排;
- 过去基于开源软件做商业开发时,有些成本必须考虑:漏洞修复及生命周期
- 而基于AI进行商业开发,可能有一些成本也是不得不考虑的?是什么?这可能是软件工程的下一轮机会
- 用AI的过程中,会对人筛选和技能放大,不思考不理解,会得到一团浆糊
- 语言边界,数据边界,应用边界,都可能被打破,但业务理解,认知的提升,永远被需要
3.生成微信小程序,真正的痛苦开始了
**User**_
这是一个微信小程序的目录,我想基于文件@24dian_all_final.csv 来生成一个24点的游戏。游戏要参考文件中所有24点问题的难度,设计成一个闯关游戏。分别是简单,中等,困难,极难,四个等级。每个等级出三道题,答对就可以进入下一关。注意用到的语法元素尽量基本,以满足微信小程序的要求。
4.上来就报错
**User**__**User**_
报错了。[ pages/index/index.json 文件内容错误] pages/index/index.json: 根据页面或 app.json 的配置,pages/index/index.json 页面 "renderer" 为 "skyline",页面配置 "navigationStyle" 需设置为 "custom"(env: Windows,mp,1.06.2503300; lib: 3.8.6)
5.下面的对话,让我差点失控
结果校验,死活搞不对,差点破防,没办法,我平复心情,研究了它生成的js代码,精确的指导它修正了错误,浪费了一个小时
_**User**_
好的,现在已经运行起来了,但是校验结果那里好像有问题,提交正确答案,它也会显示错误。我给的答案是12*(4/2)*1
_**User**_
还是报错了。请再简化一下代码。并优化验证逻辑。
_**User**_
还是较验不正确,请优化下页面逻辑,直接放一个输入框,用键盘输入吧。对结果的验证,不要用正则表达式了,看看有没有更简单的方式
_**User**_
还是报错了,你到底能不能算对啊?一个24都算不对吗???
_**User**_
还是报错,为什么,请详细检查一下
_**User**_
还是报错
_**User**_
重新实现一下这个函数,简单一点,直接eval()算结果
_**User**_
不需要后面多余的逻辑,只判断是不是等于24+-0.01,不用再提取数字之类的动作
_**User**_
增加一下过程日志,我想看看计算过程,包括函数的输入,以及计算的结果
_**User**_
帮我检查一下,为啥报错
_**User**_
这里还是出错了
_**User**_
增加一下判断,确保提交的四个数字就是题目的4个数字
_**User**_
请增加对输入符号的更宽泛的校验,如对于*或者×都要认识并且等等价,对于÷或者/也要认识,对于()或者()都认识,自动匹配。
5.终于搞对了,下面比较和谐,调整下呈现
_**User**_
请帮我把首页的难度分级哪部分去掉,让首页更简洁一点
_**User**_
现在要增加一个功能,在游戏页面的提示按钮那里,要给出正确答案。
_**User**_
现在我希望优化下游戏过程,简单关卡出4道题,中等难度出3道题,困难难度出2道题,极难难度出1道题。然后游戏过程中每道题都显示倒计时100秒,倒计时结束不得分,回答正确的时间越短,得分越高。查看参考答案后,本题不得分。
6. 最后终于搞定了,开发界面
转自:
https://mp.weixin.qq.com/s/UqFqopuLbVUfdbHjTDmWHA
猜你喜欢
- 2025-07-17 什么是Python列表(python列表有什么用)
- 2025-07-17 深入了解Python列表的高级用法(python列表常用的五种方法)
- 2025-07-17 Python操作Excel库xlrd与xlwt常用操作详解
- 2025-07-17 Python中冷门但非常好用的内置函数
- 2025-07-17 Python教程(9)——Python变量类型列表list的用法介绍
- 2025-07-17 如何做好 Web 自定义排序产品设计?
- 2025-07-17 Python:Django的ListView超详细用法(含分页paginate功能)
- 2025-07-17 小疯谈python:(四)数据类型之序列类型(上)
- 2025-07-17 Python range 函数实用指南(range函数的用法python)
- 2025-07-17 Python循环秘技!90%新手不知道的7个for用法,第3个绝了!
- 279℃Python短文,Python中的嵌套条件语句(六)
- 277℃python笔记:for循环嵌套。end=""的作用,图形打印
- 275℃PythonNet:实现Python与.Net代码相互调用!
- 270℃Python实现字符串小写转大写并写入文件
- 269℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 130℃原来2025是完美的平方年,一起探索六种平方的算吧
- 115℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 109℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)