年薪 50 万美元招不到人,AI 安全领域的"人类预备队"人手严重告急
2026-08-03 3438700
2026-08-03 0
分类: ai-development
标签: CodeArts, AI编程, TicTacToe, 网页小游戏, Minimax
难度: 初级
读者: 前端开发者、编程学习者、技术写作者
我在码道 TUI 里输入了一段需求:「做一个井字棋(Tic-Tac-Toe)网页小游戏,单个 HTML 文件即可运行……」约 1 分 22 秒后,一个 329 行、约 9 KB 的完整井字棋游戏就自动生成了:玩家执 X、AI 执 O,AI 使用 Minimax 极小化极大算法保证最优落子,玩家最多只能逼平;3x3 棋盘点击落子、AI 自动回应,胜负平局都会弹出提示并高亮获胜连线;胜/负/平局统计保存在 localStorage,刷新页面也不丢。双击 HTML 就能开局。
复制下面的命令到终端,3 步完成安装:
# 1. 一键安装sh -c "$(curl -L https://cnnorth4-cloudide-marketplace.obs.cn-north-4.myhuaweicloud.com/codearts/cli_tui/install_script/install.sh)"# 2. 配置环境变量export PATH=~/.codeartsdoer/installers:$PATHexport CODEARTS_CLI_AK=你的AKexport CODEARTS_CLI_SK=你的SK# 3. 启动 TUIcodearts
AK/SK 获取:https://codearts.huaweicloud.com/portal/settings/cli-auth
安装完成后,在命令行或 PowerShell 中输入 codearts 回车,即可打开码道 TUI。把开发需求贴进输入框,码道会自动分析并生成完整代码。
这次开发中,码道展示了以下能力:
我想要一个井字棋(Tic-Tac-Toe)网页小游戏,具体要求:
我在码道 TUI 中贴入需求后,码道先拆解需求,列出功能清单后开始写代码:

生成过程中,码道先做需求分析(Thinking),随后直接开始写代码:

约 1 分 22 秒后,码道汇报完成,输出功能清单,并提示文件位置:

双击生成的 tic-tac-toe.html 在浏览器中直接运行,井字棋界面、回合状态与棋盘都正常,落子后 AI 会自动回应:

码道生成的代码是一个自包含的单页应用,核心逻辑非常清晰:
Minimax 决策:AI 通过递归搜索所有落子分支,选取对自己最有利、对玩家最不利的走法,带深度加权让「尽早获胜」优于「晚点获胜」:
function minimax(b, depth, isMax) {const w = winner(b);if (w === AI) return 10 - depth;if (w === HUMAN) return depth - 10;if (b.every(c => c !== '')) return 0;// 递归取最大/最小分值}
胜负判定与高亮:预先定义 8 条获胜连线,winner() 检测三连,胜方连线高亮并弹出结果:
function winner(b) {for (const [a, c, d] of WIN_LINES) {if (b[a] && b[a] === b[c] && b[a] === b[d]) return b[a];}return null;}
回合管理与 AI 回应:玩家点击落子后锁定 aiThinking 状态,AI 延迟 320ms 落子更自然:
function onCellClick(i) {if (gameOver || aiThinking) return;if (board[i] !== '') return;board[i] = HUMAN;renderCell(i);if (checkEnd()) return;aiThinking = true;setStatus('AI 思考中…', 'o');setTimeout(aiMove, 320);}
统计与持久化:胜/负/平局写入 localStorage 的 ttt_stats,刷新页面不丢:
function saveStats() {localStorage.setItem('ttt_stats', JSON.stringify(stats));}
从这些代码可以看出,码道不只把功能拼出来,Minimax 决策、回合状态锁、移动端适配这些影响体验的细节也都处理得比较到位。
双击 tic-tac-toe.html 即可开始游戏:页面显示「你执 X · AI 执 O · Minimax 最优」,点击任意空格落下蓝色 X,状态栏切换为「AI 思考中…」,AI 在约 320ms 后以粉色 O 回应;分出胜负时获胜连线会高亮并弹出结果弹窗,平局也有提示;下方统计区实时累计胜/负/平局次数并持久化到 localStorage;「重新开始」按钮随时可重置对局。深色渐变背景配合玻璃拟态卡片与渐变按钮,观感精致。
用码道开发井字棋这类网页小游戏,最大的感受是「需求即产品」:把玩法要点说清楚,码道就能给出包含完整交互、动画和视觉风格的成品。对想快速验证创意、或者刚学前端想看看「一个完整应用是怎么写的」的同学,让码道先生成一份,再对照源码逐行读,是很好的学习路径。下一轮,我打算让码道继续挑战不同玩法的小游戏,继续记录真实的开发过程。