models/gemini-3.8-flash 在「国际象棋」的评测结果
这是该 AI 模型在此测试用例上的详细评测结果。
基本信息
- 模型名称:models/gemini-3.8-flash
- 用例名称:国际象棋
- 测试类型:网页生成
- 评测维度:游戏开发
系统提示词(System Prompt)
这是给 AI 模型的背景设定和角色指令:
你是一名资深 Web 前端开发专家,擅长使用原生 HTML/CSS/JavaScript 构建完整的交互式游戏应用。 回答要求: 1. 所有代码必须集中在单个 HTML 文件中,可直接在浏览器中运行,无需任何外部依赖。 2. 优先保证核心游戏逻辑的正确性:棋子移动规则必须严谨,非法移动必须被拦截。 3. 代码结构清晰,建议按「数据层(棋盘状态)→ 逻辑层(规则引擎)→ 渲染层(UI)」分模块组织。 4. 使用 Unicode 棋子字符(♔♕♖♗♘♙♚♛♜♝♞♟),确保视觉清晰。 5. 输出完整代码,不得截断,不得使用省略注释(如 // ... 省略 ...)代替实际代码。
用户提示词(User Prompt)
这是用户给 AI 模型的具体任务要求:
请生成一个完整的国际象棋游戏,所有代码(HTML、CSS、JavaScript)写在单个 HTML 文件中,可直接在浏览器运行。 ## 棋盘与布局 - 8×8 棋盘,经典棕白相间配色(浅色格 #F0D9B5,深色格 #B58863) - 棋盘四周显示行号(1-8)和列标(a-h)坐标标签 - 棋子使用 Unicode 字符:白方 ♔♕♖♗♘♙,黑方 ♚♛♜♝♞♟ - 游戏开始时棋子按标准初始位置摆放 ## 交互功能 - 点击己方棋子将其选中(高亮显示选中格) - 选中后,所有合法目标格用绿色圆点标记 - 点击合法目标格完成移动;点击其他位置取消选中 - 白方先行,双方轮流走棋,界面顶部显示「当前走棋方:白方 / 黑方」 ## 棋子移动规则(必须全部正确实现) - **王(King)**:向任意相邻方向移动一格,不能移动到被对方攻击的格子 - **后(Queen)**:沿横、竖、斜四个轴任意格数移动,路径不可有阻挡 - **车(Rook)**:沿横轴或竖轴任意格数移动,路径不可有阻挡 - **象(Bishop)**:沿对角线任意格数移动,路径不可有阻挡 - **马(Knight)**:L 形移动(2+1 格),可越过其他棋子 - **兵(Pawn)**: - 向前移动一格(不可吃子) - 初始位置可向前移动两格(路径无阻挡) - 斜前方一格有对方棋子时可斜向吃子 ## 吃子 - 移动到对方棋子所在格即完成吃子,对方棋子从棋盘移除 - 不可移动到己方棋子所在格 ## 将军与将死 - 每次移动后检测对方王是否被将军,若是则在界面显示「将军!」提示,并高亮被将军的王所在格(红色边框或背景) - 若某方被将军且没有任何合法移动,判定将死,显示「游戏结束:XX方获胜!」 - 合法移动列表必须排除会导致己方王处于被将军状态的走法(即走完后己方王仍安全) ## 视觉细节 - 选中格:黄色高亮背景 - 合法移动格:绿色半透明圆点(空格)或绿色边框(可吃子格) - 将军时王所在格:红色高亮背景 - 棋子字体足够大(建议 2.5rem 以上),在格子内居中显示
任务要求
AI 模型需要满足以下要求:
- 棋子初始布局完全正确,六类棋子的移动规则均按国际象棋标准实现,包括兵的初始两格前进和斜向吃子。
- 合法移动高亮功能正常:选中棋子后,所有且仅显示合法目标格(已过滤会导致己方王被将军的走法)。
- 将军检测正确:每步走完后准确判断对方王是否被将军,并给出视觉提示。
- 将死判定正确:被将军且无任何合法走法时游戏结束,显示胜负结果。
- 轮流走棋逻辑正确:非当前走棋方的棋子不可被选中或移动。
- 代码完整可运行:单个 HTML 文件,无外部依赖,在现代浏览器中直接打开即可正常游戏。
评测结果
综合得分
该模型在此用例的得分为:88.8 分(满分 100 分),已通过
基础难度评测结果
- 得分:88.8 分
- 通过状态:已通过
模型生成产物
以下是该模型针对此任务的实际生成内容:
这是一个完整的单文件国际象棋游戏,已实现严谨的规则引擎、合法移动过滤(防止送将)、将军与将死检测、以及清晰优雅的视觉交互。 你可以将以下代码保存为 `.html` 文件(例如 `chess.html`),双击即可在任意现代浏览器中运行。 ```html 国际象棋 (Chess) * { box-sizing: border-box; margin: 0; padding: 0; user-select: none; } body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; background: #2c2b29; color: #f0f0f0; min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 20px; } /* 顶部状态面板 */ .header-panel { display: flex; flex-direction: column; align-items: center; margin-bottom: 18px; gap: 10px; } .status-badge { font-size: 1.25rem; font-weight: 600; padding: 8px 24px; background: #363431; border-radius: 30px; box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3); display: flex; align-items: center; gap: 10px; } .turn-indicator { width: 14px; height: 14px; border-radius: 50%; display: inline-block; border: 1px solid #777; } .turn-indicator.white { background: #ffffff; box-shadow: 0 0 6px #fff; } .turn-indicator.black { background: #111111; box-shadow: 0 0 6px #000; } .alert-message { font-size: 1.1rem; font-weight: bold; min-height: 1.4em; color: #e57373; transition: all 0.2s ease; } /* 棋盘外框及坐标轴 */ .board-container { display: grid; grid-template-columns: 24px auto 24px; grid-template-rows: 24px auto 24px; background: #211f1d; padding: 8px; border-radius: 8px; box-shadow: 0 12px 36px rgba(0, 0, 0, 0.6); } .coords-files { display: grid; grid-template-columns: repeat(8, 64px); align-items: center; justify-items: center; font-size: 0.85rem; color: #8c8883; font-weight: bold; } .coords-ranks { display: grid; grid-template-rows: repeat(8, 64px); align-items: center; justify-items: center; font-size: 0.85rem; color: #8c8883; font-weight: bold; } /* 8x8 棋盘 */ .chess-board { width: 512px; height: 512px; display: grid; grid-template-columns: repeat(8, 64px); grid-template-rows: repeat(8, 64px); border: 2px solid #363431; } .square { width: 64px; height: 64px; display: flex; align-items:...
AI 评审点评
以下是 AI 评审对该模型输出的点评:
【CLAUDE】这是一个高质量的国际象棋单文件实现,核心规则引擎设计合理,通过模拟移动来过滤非法走法(防止送将)的思路正确。视觉效果专业,交互体验完整流畅。主要不足是缺少王车易位和吃过路兵两个重要的特殊规则,以及兵升变只能自动变后而非让玩家选择。代码结构清晰,整体完成度较高,适合作为基础国际象棋游戏使用。 【GEMINI】这是一份极高质量的国际象棋游戏实现。不仅完全满足了需求书中的所有硬性指标(如移动规则、将军/将死检测、视觉高亮、坐标轴等),还在代码结构、视觉细节(如棋子描边、吃子圆环标记)以及规则完整性(如自动升变、逼和判定)上做到了极致。代码组织规范,是一份教科书级的原生前端游戏实现。 【KIMI】该实现是一个功能较完整的国际象棋游戏,核心规则大多正确,交互体验和视觉效果优秀。但存在关键规则缺陷:王移动时未排除被将军的格子,这违反了'王不能送将军'的基本规则,导致对局中可能出现王被直接将军的情况,严重影响游戏正确性。此外,兵升变强制变为后的设计合理但缺少选择提示。修复王移动的合法性过滤后,该实现可达到优秀水准。
进阶难度评测结果
- 得分:79.5 分
- 通过状态:已通过
模型生成产物
以下是该模型针对此任务的实际生成内容:
```html 国际象棋(进阶版) :root { --board-light: #f0d9b5; --board-dark: #b58863; --highlight-last-from: rgba(255, 255, 0, 0.4); --highlight-last-to: rgba(255, 255, 0, 0.55); --highlight-selected: rgba(20, 130, 230, 0.5); --bg-color: #262421; --panel-bg: #302e2b; --text-color: #bababa; --accent-color: #81b64c; --accent-hover: #a3d160; } * { box-sizing: border-box; margin: 0; padding: 0; user-select: none; -webkit-user-select: none; } body { background-color: var(--bg-color); color: var(--text-color); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; min-height: 100vh; display: flex; justify-content: center; align-items: center; padding: 16px; } .game-container { display: flex; flex-direction: row; gap: 24px; max-width: 1100px; width: 100%; background-color: var(--panel-bg); padding: 24px; border-radius: 12px; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5); } @media (max-width: 860px) { .game-container { flex-direction: column; align-items: center; } } /* 棋盘部分 */ .board-wrapper { display: flex; flex-direction: column; align-items: center; position: relative; } .chess-board { width: min(85vw, 560px); height: min(85vw, 560px); display: grid; grid-template-columns: repeat(8, 1fr); grid-template-rows: repeat(8, 1fr); border: 4px solid #403d39; border-radius: 4px; position: relative; box-shadow: 0 6px 16px rgba(0, 0, 0, 0.4); } .square { position: relative; display: flex; justify-content: center; align-items: center; font-size: min(10vw, 54px); line-height: 1; cursor: pointer; } .square.light { background-color: var(--board-light); } .square.dark { background-color: var(--board-dark); } /* 高亮 */ .square.last-from { background-color: var(--highlight-last-from) !important; } .square.last-to { background-color: var(--highlight-last-to) !important; } .square.selected { background-color: var(--highlight-selected) !important; } /* 将军闪烁 */ @keyframes check-pulse { 0% { background-color: rgba(235, 64, 52, 0.4); } 50% { background-color:...
AI 评审点评
以下是 AI 评审对该模型输出的点评:
【CLAUDE】该实现是一个功能较为完整的国际象棋单文件 HTML 应用,代码结构清晰,将规则引擎、AI 引擎、音效系统和 UI 控制器分别封装。规则引擎覆盖了所有基础移动规则和三项特殊规则,AI 使用 Minimax+Alpha-Beta 剪枝并配合 PST 评估函数,整体质量良好。主要缺陷包括:兵升变吃子走法中存在对象字段名 bug(`capC` 而非 `c: capC`)可能导致运行时错误;AI 升变强制为后的逻辑判断条件写反;悔棋后高亮恢复不完整。这些 bug 影响了部分功能的可靠性,但整体框架设计合理,视觉效果和交互体验较好,是一个接近完整可用的国际象棋实现。 【GEMINI】这是一个近乎完美的单文件国际象棋实现。代码结构清晰,模块化程度高,将规则引擎、AI 算法、音效系统和 UI 渲染完美融合。在保证规则绝对严谨的前提下,AI 的评估算法(PST 引入)和辅助功能(带消歧义的 SAN 记谱、人机双重悔棋)的实现深度远超一般标准,是一份极高质量的交付物。 【KIMI】该实现作为一个完整的单文件HTML国际象棋游戏,在代码结构和视觉呈现上有可观之处,但在核心规则引擎的严谨性上存在关键缺陷:testMoveLegality中未保护和恢复enPassant状态会导致非法状态累积;AI的Minimax实现由于evaluate视角与递归参数不匹配,导致决策逻辑错误;棋子移动的CSS动画因DOM重建机制而完全失效;兵升变的AI强制选择逻辑存在条件错误。这些问题的累积使得该程序无法作为可靠的国际象棋游戏运行,尤其在复杂局面(如涉及吃过路兵、王车易位的将军判断)下很可能出现规则错误。建议重点修复:1) 在testMoveLegality中保存和恢复enPassant状态;2) 修正Minimax的evaluate视角,使其始终从当前行棋方或固定方正确评估;3) 使用CSS transform或绝对定位实现真正的棋子移动动画,而非重建DOM;4) 修正AI兵升变的强制选择逻辑。
困难难度评测结果
- 得分:81.5 分
- 通过状态:已通过
模型生成产物
以下是该模型针对此任务的实际生成内容:
```html 高级国际象棋 AI 与深度分析平台 :root { --bg-main: #1a1c23; --panel-bg: #242832; --panel-border: #353b48; --text-main: #f5f6fa; --text-muted: #a4b0be; --accent: #00d2d3; --accent-hover: #01a3a4; --sq-light: #f0d9b5; --sq-dark: #b58863; --highlight-last: rgba(246, 229, 141, 0.55); --highlight-selected: rgba(106, 176, 76, 0.7); --highlight-check: rgba(235, 77, 75, 0.85); --threat-color: rgba(235, 77, 75, 0.65); } body[data-theme="wood"] { --sq-light: #e8d0aa; --sq-dark: #a1662f; --panel-bg: #2d241e; --panel-border: #4a3b32; } body[data-theme="modern"] { --sq-light: #e0e6ed; --sq-dark: #4b6584; --panel-bg: #1e272e; --panel-border: #2f3542; } * { box-sizing: border-box; margin: 0; padding: 0; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; } body { background: var(--bg-main); color: var(--text-main); display: flex; justify-content: center; align-items: center; min-height: 100vh; padding: 15px; } .app-container { display: flex; flex-direction: row; gap: 24px; max-width: 1280px; width: 100%; background: var(--panel-bg); border-radius: 12px; border: 1px solid var(--panel-border); box-shadow: 0 16px 40px rgba(0,0,0,0.5); padding: 20px; } /* 棋盘区域 */ .board-wrapper { display: flex; flex-direction: column; align-items: center; gap: 12px; user-select: none; } .player-bar { display: flex; justify-content: space-between; align-items: center; width: 560px; padding: 6px 12px; background: rgba(0,0,0,0.25); border-radius: 8px; font-size: 15px; font-weight: 600; } .player-info { display: flex; align-items: center; gap: 8px; } .timer-badge { background: #111; padding: 4px 10px; border-radius: 6px; font-family: monospace; font-size: 16px; letter-spacing: 1px; } .chessboard-container { position: relative; width: 560px; height: 560px; border: 4px solid #111; border-radius: 6px; box-shadow: 0 8px 24px rgba(0,0,0,0.4); } .chessboard { display: grid; grid-template-columns: repeat(8, 1fr); grid-template-rows: repeat(8, 1fr); width: 100%; height:...
AI 评审点评
以下是 AI 评审对该模型输出的点评:
【CLAUDE】该实现是一个功能相当完整的国际象棋游戏,在单HTML文件约1000行代码内实现了规则引擎、Alpha-Beta AI、分析功能和丰富的UI交互。亮点包括:静态搜索(Quiescence Search)的引入提升了AI质量、四项完整的评估函数、热力图三色区分、完整的SAN记谱。主要缺陷:isSquareAttacked中白兵攻击方向判断存在逻辑错误(pawnDir应为-1而非1),这会影响将军检测准确性;历史回放通过loadFEN实现导致engine内部状态与UI状态可能不一致;棋子移动平滑动画未真正实现。总体而言是一个高质量的实现,达到了任务要求的大部分功能点。 【GEMINI】这是一个教科书级别的单 HTML 文件国际象棋游戏实现。作者展现了深厚的算法功底与严谨的软件工程思维,不仅完美兑现了所有繁杂的规则与高级 AI 指标,还在静态搜索、兵形评估和交互细节(如回放锁定、人机双步悔棋)上做了深度优化。界面美观、功能强大、运行流畅,是极高质量的生成结果。 【KIMI】该候选输出实现了一个功能较为完整的国际象棋游戏,基本覆盖了题目要求的所有功能模块,代码结构清晰且有模块化注释。但存在多处关键性bug:兵升变条件判断逻辑颠倒、王车易位路径检查错误、HTML实体编码导致不可直接运行、AI的PV线传递和quiescence搜索存在逻辑缺陷、历史回放与undo操作的状态同步问题等。这些问题导致程序在关键场景(如升变、长易位、残局)可能无法正确工作。AI实现虽有Alpha-Beta剪枝和静态搜索,但搜索深度控制和性能优化不足,评估函数中的'王安全度'实现较为简单。整体而言,这是一个'有框架但欠打磨'的实现,需要大量调试才能达到生产可用水平。
相关链接
您可以通过以下链接查看更多相关内容: