三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

拒绝死记硬背!用 Seed-Evolving 手搓“金融大富翁”,让证券考证像打怪升级

拒绝死记硬背!用 Seed-Evolving 手搓“金融大富翁”,让证券考证像打怪升级

作为一个非金融专业的“小白”,最近在疯狂学习金融知识并打算备考9月的证券从业资格证。面对《金融市场基础知识》里密密麻麻的专业术语——交易所、IPO、市盈率、质押回购、融资融券……传统的死记硬背简直让人抓狂。

趁着最近 Doubao-Seed-Evolving 模型完成第二次升级,我决定放开脑洞,不写复杂的文档,直接用它手搓一个专属的“FINOPOLY· 金融术语大富翁”互动 Demo。

不用写复杂的后端,也不用纠结代码架构,Seed-Evolving 的“长程规划”和“代码生成”能力,

从单文件网页到前后端分离,再到支持外部题库导入,Seed-Evolving 展现出的长程规划能力代码重构能力,直接帮我把这个创意变成了现实!这不仅仅是一个游戏,更是我备考路上的“外挂”。

Doubao-Seed-Evolving体验地址:

https://ark.volcengine.com/region:cn-beijing/subscription/agent-plan

本次Demo的搭建我购买了Agent Plan的Medium套餐,用量如下:

🎯 一、选题意义:为什么是“金融大富翁”?

在 AI 辅助编程的时代,我们往往陷入一种误区:只让 AI 写函数、写正则。但 Seed-Evolving 的核心优势在于Evolving(进化)长程思考

选择开发“金融大富翁”作为测评项目,是因为它完美契合了模型的潜力点:

  1. 痛点真实:将枯燥的考点转化为“资产积累”,把“答错题”变成“市场暴跌”,这种游戏化反馈能极大缓解备考焦虑。
  2. 逻辑复杂:它不是简单的问答,它涉及棋盘状态机、资产计算、道具逻辑(如“杠杆卡”翻倍)、持久化存储等多模块协同。
  3. 扩展性强:从单机版进化到支持导入真实教材题库,正好测试模型对长上下文的理解架构重构能力

🚀 二、最终实现效果:从 Demo 到专业级应用

经过四轮对话迭代(从单文件 → 道具系统 → 前后端分离 → 多格式解析),Seed-Evolving 帮我完成了一个功能完备的 Web 应用。

1. 视觉与交互:赛博朋克风

不再是枯燥的白底黑字,模型生成了极具科技感的深色 UI——霓虹青与品红的撞色、CRT 扫描线、发光棋盘边框,打开页面就像进入了一家赛博金融交易所。

  • 棋盘机制 :16 格闭合环形布局,包含知识问答、随机事件(如"央行降准")、宝箱、机会卡、资产结算等格子。
  • 动态反馈 :掷骰子有抖动动画,棋子逐格 CSS 过渡,资产变动有霓虹色浮动数字实时跳动。

图注:Seed-Evolving 生成的 FINOPOLY主界面,赛博朋克风格,左侧是玩家状态与题库选择,中间是棋盘,右侧是日志、背包、概念卡和错题本。

2. 核心玩法:边玩边学

  • 答题闯关 :走到问号格子触发金融从业真题,答对 +¥800 并解锁"概念卡片"(如"市盈率 P/E"、“IPO”),答错 -¥500 并弹出通俗易懂的"硬核解析"。
  • 策略道具 :踩中 🎁 宝箱可获得道具卡——
    • 🕵️ 内幕消息卡 :下次答题自动排除 2 个错误选项;
    • 🛡️ 央行护盘卡 :抵消下一次答错的扣罚(免死金牌);
    • ⚡ 杠杆卡 :下次答对奖励翻倍(¥800 → ¥1,600)。
  • 随机事件 :黑天鹅、股市大跌、政策利好、打新中签……让每一局都充满变数。
  • 错题本与持久化 :游戏进度(资产、位置、道具、棋盘题目绑定)保存在浏览器 LocalStorage,刷新不丢失;错题则同步保存到服务端,换台电脑也能继续复习。

点击问号格子触发金融从业真题,答对了个人住房按揭贷款“等额本息“与“等额本金“,虚拟资产 +¥800 ,如下图所示

页面左侧虚拟资产变为10800,行动日志记录掷出6点,答对《按揭还款方式》+¥800


下面是FINOPOLY金融术语大富翁实际的游戏效果,非常有意思。

FINOPOLY

3. 架构升级:支持外部 7 种格式题库

最让我惊喜的是第三、四轮迭代,模型不仅拆分了前后端,还手写了一个 零依赖的多格式解析器 。我现在可以直接把教材配套的 .csv 题库、从网上整理的 .md 笔记、甚至手写的 .yaml 题目拖进游戏,自动识别出题,真正实现了"无限题库"。

支持的格式: JSON / CSV / TSV / TXT / Markdown / YAML / YML ,而且每种格式都附带了示例题库。项目开箱即带 6 套题库共 55 道题 :

题库格式题数
证券从业JSON12
基金从业JSON10
银行从业JSON10
期货从业CSV5
保险从业Markdown5
金融常识YAML3

导入方式也有两种:把文件放进服务端data/banks/目录永久生效,或者直接拖进浏览器临时使用,完全不用重启服务。

将交易所债券与质押式回购相关习题导入,当前题库完成切换。

🏗️ 三、系统架构一览

聊完玩法,可能有读者会好奇:这么多功能塞在一个网页里,代码会不会变成"意大利面条"?

恰恰相反。Seed-Evolving 在第一轮就主动给出了清晰的状态机设计单向数据流,第三轮拆分前后端时,更是自己规划了 REST API、多格式解析器、错题持久化的完整边界。下面这张架构图,没有一行是我画的——全部来自模型在写代码前主动给出的设计文档

1. 整体架构图

┌──────────────────────────────────────────────┐ │ 浏览器(public/) │ │ ┌────────┬────────┬────────┬──────────────┐ │ │ │ state │ board │ bag │ quiz │ │ │ │ FSM │ 棋盘 │ 背包 │ 答题 │ │ │ └────────┴────────┴────────┴──────────────┘ │ │ ┌────────┬────────┬──────────────────────┐ │ │ │ API │ parser │ wrongbook(错题本) │ │ │ └────────┴────────┴──────────────────────┘ │ │ ▲ │ │ │ │ LocalStorage │ fetch / JSON │ │ │ 游戏进度 ▼ │ └─────────┼──────────────────────────────────────┘ │ ┌─────────▼──────────────────────────────────────┐ │ Node.js 后端(零依赖,server.js) │ │ ┌──────────────┐ ┌──────────────────────┐ │ │ │ 静态资源服务 │ │ REST API │ │ │ │ / │ │ /api/banks │ │ │ │ │ │ /api/banks/:id │ │ │ │ │ │ /api/wrong │ │ │ │ │ │ /api/parse?name=xxx │ │ │ └──────────────┘ └──────────┬───────────┘ │ │ │ │ │ ┌────────────────────────────▼─────────────┐ │ │ │ 多格式解析器(server-parser.cjs) │ │ │ │ JSON / CSV / TSV / TXT / MD / YAML │ │ │ └──────────────────────────────────────────┘ │ │ │ │ │ data/banks/*.json|.csv|.md|.yaml │ │ data/wrong-answers.json(错题持久化) │ └────────────────────────────────────────────────┘

整个项目没有任何运行时 npm 依赖:前端用原生 ES Module,后端只用 Node 内置的http/fs/path,真正做到git clone之后npm start一键启动。

2. 核心状态机(FSM)

让我最意外的是模型主动用一个有限状态机管住了所有交互:

IDLE ──掷骰──▶ ROLLING ──▶ MOVING ──▶ LANDED │ ┌───────────────────────┼───────────────┐ ▼ ▼ ▼ QUIZ EVENT TREASURE (内幕消息/杠杆/护盘) (央行降准…) (抽道具卡) │ │ │ └───────────────────────┴───────────────┘ │ 检查胜负 → 回到 IDLE

AI 主动用状态机把交互流锁死——移动时不能掷骰、答题时不能用道具、道具激活后只在下一次答题生效——这种严谨性远超我对"代码补全工具"的预期。道具系统采用了"持有 + 激活"双层模型,点击使用时从背包消耗一张,效果在下次答题时自动触发并清除,边界条件处理得滴水不漏。

3. 技术栈选型

技术选型为什么这样选
前端原生 HTML + CSS + ES Module零构建,刷新即可调试
后端Node.js 原生http/fs零依赖,npm start一键启动
进度持久化LocalStorage刷新不丢进度,无需登录
错题持久化服务端 JSON 文件换浏览器/设备也能复习
题库解析手写多格式解析器JSON/CSV/Markdown/YAML 都能识别,不引第三方库
视觉CSS 变量 + 霓虹阴影 + 关键帧动画不依赖图片资源,纯代码渲染

🛠️ 四、使用模型的方法:四轮对话的"进化"之路

这次开发我没有手写任何业务代码,完全通过结构化提示词描述需求,所有代码、注释、状态机设计、边界处理都由 Seed-Evolving 生成。四轮迭代层层递进,正好测试了模型不同维度的能力。

第一轮:从零构建原型(测试代码生成与创意)

我设定了"资深前端工程师兼游戏策划"的角色,要求生成一个单文件 HTML。

💡** 提示词策略**:强调"单文件"、“双击即可运行”、“赛博朋克风”,并要求先给出状态机设计再写代码,预留 JSON 导入接口。

模型表现:模型先输出了完整的 FSM 状态机设计图(IDLE → ROLLING → MOVING → LANDED → QUIZ/EVENT…)和数据流架构,然后一次性给出了包含 HTML/CSS/JS 的完整代码,甚至内置了 12 道证券从业高频易错题,开箱即用。

第二轮:增加游戏深度(测试长程上下文与逻辑编排)

为了让游戏好玩,我要求增加"道具卡系统"和"LocalStorage 持久化"。

💡提示词策略:明确三张道具的具体效果(内幕消息排除错项、央行护盘免扣罚、杠杆卡翻倍),要求先给出状态机扩展设计再改代码,并强调"保持原有游戏逻辑不被破坏"。

模型表现:这是最考验模型的一步。Seed-Evolving 没有推倒重来,而是在原 FSM 上叠加了"持有 + 激活"双层道具模型,精准插入了宝箱格、背包 UI、道具消耗逻辑。它甚至主动处理了边界情况:移动中禁止使用道具、同种效果不能重复激活、资产归零/通关时清除存档。

第三轮:架构重构与错题本(测试复杂任务拆解)

为了支持服务端题库和错题持久化,我要求将项目拆分为前后端分离模式,并新增错题本。

💡提示词策略:提出"前后端分离"、“查看错题”、“RESTful API”、"零运行时依赖"等约束,并要求保留前两轮所有功能。

模型表现:模型把近 2000 行的单文件拆成了 7 个 ES 模块(api/state/board/bag/quiz/wrongbook/app),后端用纯 Node 内置模块写了 HTTP 服务(没有用 Express,npm install都省了),错题本按题库 ID 隔离、自动累加错误次数和最近答错时间。重构后所有原有功能一一对应,没有一处遗漏。

第四轮:多格式解析(测试算法与鲁棒性)

最后我提出"通过读取不同文件格式自动出题"。

💡提示词策略:直接列举 JSON/CSV/TXT/MD/YAML 五种格式,要求"不引入第三方依赖",并提供格式示例。

模型表现:模型手写了完整的解析器——支持 CSV 双引号转义、Markdown 的### 题目 + - A. 选项语法(还支持 YAML front matter 提取题库名称)、YAML 缩进栈解析(包括嵌套 list 和行内数组)。第一次运行时 YAML 解析有 bug,我把报错日志贴回去,模型立刻定位到"栈帧 lastKey 丢失"的根因并修复,六种格式全部通过实测。

📝 五、总结:AI 编程的"进化"时刻

这次用 Seed-Evolving 开发 FINOPOLY的经历,让我对 AI 编程有了新的认识:

  • 它懂业务,更懂架构 :不仅仅是补全代码,它能理解"大富翁"的游戏规则,并将其转化为清晰的 FSM 状态机和单向数据流,代码可读性极高。
  • 记忆力惊人 :在第四轮追加多格式解析时,它依然记得第一轮的赛博朋克配色、第二轮的道具激活逻辑、第三轮的模块边界,保持了项目的一致性。
  • 重构能力扎实 :从单文件到多模块、从 LocalStorage 到服务端持久化,每一次升级都是平滑演进,没有出现"改完这里坏了那里"的情况。
  • 小白的福音 :作为一个不懂前端框架的金融考生,我只需要关注"我想玩什么"、“题目长什么样”,而不用纠结"webpack 怎么配"、“正则怎么写”。
    当然,它不是 100% 完美——YAML 解析器第一次写出来时有缩进栈的 bug,需要我把报错反馈回去。但这种"你给报错、它给修复方案"的协作方式,本身就比自己从头调试高效太多。

如果你也在备考、做课程设计、或者只是想把枯燥的知识变成游戏,强烈建议试试这种"对话式开发"的工作流。把 AI 当作一个随叫随到的全栈搭档,你负责脑洞和验收,它负责把脑洞变成可以双击运行的代码

项目目前已经是一个完整的闭环:7 套题库、75 道题、道具系统、错题本、多格式导入全部就绪。下一步我打算把教材的 PDF 转成 Markdown 丢进去,让它变成我真正的"刷题神器"。

毕竟,能一边当赛博金融街的大富翁,一边把证券从业证考下来,谁还愿意死记硬背呢?

← 返回列表