glm-4.7 在「扫雷游戏」的评测结果
这是该 AI 模型在此测试用例上的详细评测结果。
基本信息
- 模型名称:glm-4.7
- 用例名称:扫雷游戏
- 测试类型:网页生成
- 评测维度:游戏开发
系统提示词(System Prompt)
这是给 AI 模型的背景设定和角色指令:
你是一名资深前端开发工程师,专注于 HTML5 单文件应用开发与经典游戏实现。 回答要求: 1. 所有代码(HTML、CSS、JavaScript)必须合并在一个完整的 HTML 文件中,可直接在浏览器运行。 2. 必须屏蔽右键默认菜单(preventDefault),以支持右键标记旗子功能。 3. 递归展开空白区域时须防止栈溢出,推荐使用迭代队列(BFS)替代深层递归。 4. 音效、动画等增强功能须在用户首次交互后触发,遵守浏览器自动播放策略。 5. 代码结构清晰,变量命名语义化,核心逻辑(布雷、展开、胜负判定)须有注释说明。 6. 输出完整可运行的 HTML 代码,不得省略任何部分,不得使用占位注释代替实现。
用户提示词(User Prompt)
这是用户给 AI 模型的具体任务要求:
请生成一个完整的经典扫雷游戏,所有代码(HTML、CSS、JavaScript)写在同一个 HTML 文件中,可直接在浏览器独立运行。 ## 难度选择 提供三种标准难度,点击对应按钮可随时切换并重新开始: - 初级:9×9 网格,10 个雷 - 中级:16×16 网格,40 个雷 - 高级:30×16 网格,99 个雷 ## 核心游戏逻辑 1. **布雷**:切换难度或点击重置时随机布雷,雷的位置不提前暴露给玩家。 2. **左键翻开格子**: - 翻开空白格(周围0个雷)时,使用 BFS/队列迭代自动递归展开所有相邻空白格及其边界数字格。 - 翻开数字格,仅显示该格数字。 - 翻开雷格,游戏结束,显示所有雷的位置,已标错的旗子需有区分标识。 3. **右键标记**:在未翻开的格子上右键,循环切换:无标记 → 旗子 → 无标记;必须屏蔽浏览器默认右键菜单。 4. **胜利判定**:所有非雷格子均被翻开时,判定为胜利,停止计时并显示胜利提示。 ## 信息面板 - **剩余雷数**:总雷数减去已标记旗子数(可为负数)。 - **计时器**:首次翻开格子时开始计时,游戏结束(胜利或失败)时停止,精度为秒。 - **重置按钮**:显示笑脸 emoji(😊),点击后以当前难度重新开始游戏,计时器归零。 ## 数字颜色规范 数字 1-8 使用以下颜色区分: - 1:蓝色(#0000FF) - 2:绿色(#008000) - 3:红色(#FF0000) - 4:深蓝(#000080) - 5:深红(#800000) - 6:青色(#008080) - 7:黑色(#000000) - 8:灰色(#808080) ## 视觉要求 - 整体风格参考经典 Windows 扫雷或现代扁平风格,界面整洁。 - 未翻开的格子具有立体按钮效果(可用 border 或 box-shadow 模拟凸起感)。 - 翻开后格子背景变浅,与未翻开格子有明显视觉区分。 - 旗子使用 🚩 emoji,雷使用 💣 emoji。 - 高级难度(30×16)网格较宽,需保证在常见屏幕宽度下可正常显示(可使用 overflow-x: auto 或缩小格子尺寸)。 请直接输出完整的 HTML 代码,不要添加任何说明文字。
任务要求
AI 模型需要满足以下要求:
- 核心逻辑完整性:布雷算法正确,左键翻开(含BFS递归展开空白区)、右键标记旗子(屏蔽默认菜单)、胜负判定均须无Bug实现。
- 三种难度切换:初级/中级/高级三档难度参数(网格尺寸与雷数)准确,切换时正确重置游戏状态、网格与计时器。
- 信息面板准确性:剩余雷数实时更新(总雷数减已标旗数)、计时器在首次点击时启动并在游戏结束时停止、重置按钮功能正常。
- 数字颜色与视觉规范:1-8 数字颜色符合规范,未翻开格子有立体效果,翻开/未翻开格子视觉区分明显,旗子与雷使用指定 emoji 或清晰图标。
- 游戏结束处理:踩雷后显示所有雷的位置,标错的旗子有区分标识;胜利时有明确提示;两种结束状态下均停止计时且禁止继续操作。
评测结果
综合得分
该模型在此用例的得分为:87.6 分(满分 100 分),已通过
基础难度评测结果
- 得分:87.6 分
- 通过状态:已通过
模型生成产物
以下是该模型针对此任务的实际生成内容:
```html 经典扫雷 - Web版 :root { --bg-color: #c0c0c0; --border-light: #ffffff; --border-dark: #808080; --cell-size: 25px; --font-main: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; --color-1: #0000FF; --color-2: #008000; --color-3: #FF0000; --color-4: #000080; --color-5: #800000; --color-6: #008080; --color-7: #000000; --color-8: #808080; } * { box-sizing: border-box; user-select: none; /* 防止双击选中文本 */ } body { font-family: var(--font-main); background-color: #202020; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 100vh; margin: 0; padding: 20px; color: #333; } /* 游戏主容器 */ .game-wrapper { background-color: var(--bg-color); padding: 15px; border-top: 3px solid var(--border-light); border-left: 3px solid var(--border-light); border-right: 3px solid var(--border-dark); border-bottom: 3px solid var(--border-dark); box-shadow: 0 10px 20px rgba(0,0,0,0.5); display: flex; flex-direction: column; gap: 15px; max-width: 100%; } /* 顶部控制栏 */ .header-controls { display: flex; justify-content: center; gap: 10px; margin-bottom: 5px; } .btn { background: var(--bg-color); border-top: 2px solid var(--border-light); border-left: 2px solid var(--border-light); border-right: 2px solid var(--border-dark); border-bottom: 2px solid var(--border-dark); padding: 5px 15px; cursor: pointer; font-size: 14px; font-weight: bold; } .btn:active { border-top: 2px solid var(--border-dark); border-left: 2px solid var(--border-dark); border-right: 2px solid var(--border-light); border-bottom: 2px solid var(--border-light); } .btn.active { background: #a0a0a0; border-top: 2px solid var(--border-dark); border-left: 2px solid var(--border-dark); border-right: 2px solid var(--border-light); border-bottom: 2px solid var(--border-light); } /* 信息面板 (LCD风格) */ .info-panel { display: flex; justify-content: space-between; align-items: center; border: 2px solid #7b7b7b; border-bottom-color: #fff; border-right-color: #fff; padding: 8px; background: #c0c0c0; }...
AI 评审点评
以下是 AI 评审对该模型输出的点评:
【CLAUDE】该扫雷游戏实现了绝大部分要求的功能,代码结构清晰,变量命名语义化,核心逻辑有注释说明,整体可运行。主要亮点:BFS迭代展开防止栈溢出实现正确,三种难度配置准确,信息面板功能基本完整,视觉风格符合经典Windows扫雷风格。主要缺陷:首次点击未保护不踩雷(虽然任务描述中未明确要求,但这是扫雷游戏的常见期望行为);wrong-flag的视觉实现存在bug(🚩和❌叠加);负数雷数格式化逻辑有小瑕疵。总体而言是一个功能较为完整的扫雷实现,质量中上。 【GEMINI】这是一个高质量的扫雷游戏实现。代码结构清晰,逻辑严密,完全符合所有功能和视觉要求。开发者不仅完成了核心功能,还在视觉还原度(如立体边框、LCD 显示、数字颜色)和交互细节(表情反馈、BFS 算法、错误旗子标识)上表现出色,是一个非常专业的单文件 Web 应用示例。 【KIMI】该实现是一个高质量的经典扫雷游戏,完整实现了所有功能需求。代码结构清晰,采用面向对象方式组织,变量命名语义化,核心逻辑注释充分。BFS迭代展开、右键菜单屏蔽、三种难度切换、信息面板、数字颜色规范等关键要求均准确实现。视觉风格经典还原,交互细节丰富(表情反馈、鼠标悬停效果等)。整体无明显缺陷,可直接在浏览器独立运行,符合单文件HTML应用的所有要求。
进阶难度评测结果
- 得分:85.0 分
- 通过状态:已通过
模型生成产物
以下是该模型针对此任务的实际生成内容:
这是一个完全符合你要求的单文件 HTML 扫雷游戏。它包含了所有核心逻辑、进阶功能、Web Audio API 音效、动画效果以及响应式设计。 ### 核心设计思路: 1. **架构**:采用 Model-View-Controller (MVC) 的简化变体。`gameState` 集中管理数据,`render` 函数负责 UI 更新,事件监听器处理交互。 2. **性能**:使用 CSS Grid 布局,DOM 操作尽量批量化。空白区域展开使用**广度优先搜索 (BFS)** 的迭代实现,避免递归栈溢出。 3. **音效**:使用 `AudioContext` 实时合成振荡器声音,无需加载外部 MP3,响应极快且无网络依赖。 4. **安全**:首次点击采用“延迟布雷”策略,确保开局安全。 你可以直接保存以下代码为 `.html` 文件并在浏览器中打开。 ```html 高级 Web 扫雷 :root { --bg-color: #c0c0c0; --border-light: #ffffff; --border-dark: #808080; --cell-size: 30px; --num-1: #0000ff; --num-2: #008000; --num-3: #ff0000; --num-4: #000080; --num-5: #800000; --num-6: #008080; --num-7: #000000; --num-8: #808080; } * { box-sizing: border-box; user-select: none; -webkit-user-select: none; } body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; background-color: #202020; color: #333; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 100vh; margin: 0; padding: 20px; } /* 游戏主容器 */ .game-wrapper { background-color: var(--bg-color); padding: 15px; border-top: 3px solid var(--border-light); border-left: 3px solid var(--border-light); border-right: 3px solid var(--border-dark); border-bottom: 3px solid var(--border-dark); box-shadow: 0 10px 25px rgba(0,0,0,0.5); display: flex; flex-direction: column; gap: 15px; max-width: 100%; } /* 顶部信息栏 */ .header { display: flex; justify-content: space-between; align-items: center; border: 2px solid; border-color: var(--border-dark) var(--border-light) var(--border-light) var(--border-dark); padding: 10px; background: #c0c0c0; } .lcd-display { background-color: #000; color: #ff0000; font-family: 'Courier New', Courier, monospace; font-size: 28px; font-weight: bold; padding: 2px 6px; border-top: 1px solid var(--border-dark); border-left: 1px solid var(--border-dark); border-right: 1px solid var(--border-light); border-bottom: 1px solid var(--border-light); min-width: 70px; text-align: right; } .face-btn { width: 40px; height: 40px; font-size: 24px;...
AI 评审点评
以下是 AI 评审对该模型输出的点评:
【CLAUDE】该实现完成了扫雷游戏的核心功能和大部分进阶功能,代码架构清晰,状态管理集中。首次点击安全算法、BFS迭代展开、右键三态标记、Chord双击操作均正确实现。音效系统、撤销功能、localStorage记录功能基本完整。主要缺陷在于:1) 失败时缺少要求的「依次带延迟的连锁爆炸视觉效果」,只是一次性展示;2) localStorage新纪录提示使用alert,体验不够流畅;3) 整体视觉效果符合经典扫雷风格但动画效果相对基础。总体而言是一个功能较为完整、代码质量良好的实现。 【GEMINI】这是一份极其优秀的代码实现。开发者不仅满足了所有基础和进阶的功能要求,还在代码架构和技术选型(如 Web Audio API 的实时合成)上展现了专业水平。游戏逻辑健壮,用户体验流畅,完全符合“资深 Web 前端开发专家”的人设。除了失败动画的依次延迟效果略显仓促外,其余部分均无可挑剔。 【KIMI】这是一个高质量的扫雷游戏实现,完整覆盖了所有基础功能和进阶功能需求。代码架构清晰,采用模块化的对象设计,状态管理集中,性能考虑周到(BFS迭代、事件委托)。视觉效果还原经典Windows扫雷风格,动画效果基本满足要求。音效系统使用Web Audio API实时合成,无需外部资源。整体实现稳健,可直接运行,是单文件复杂交互应用的优秀范例。
困难难度评测结果
- 得分:88.2 分
- 通过状态:已通过
模型生成产物
以下是该模型针对此任务的实际生成内容:
这是一个完整的、单文件的高级扫雷游戏实现。它包含了所有要求的功能:AI 辅助(约束传播与概率分析)、粒子特效、Web Audio API 音效、每日挑战、成就系统以及响应式的深色主题 UI。 您可以直接将以下代码保存为 `.html` 文件并在浏览器中打开。 ```html AI 高级扫雷 - 专业版 :root { --bg-color: #1a1a2e; --panel-color: #16213e; --accent-color: #0f3460; --highlight-color: #e94560; --text-color: #e0e0e0; --cell-size: 32px; --cell-closed: #3a3a55; --cell-open: #252535; --cell-hover: #4a4a65; --safe-highlight: rgba(0, 255, 0, 0.3); --mine-highlight: rgba(255, 0, 0, 0.3); --font-main: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; } * { box-sizing: border-box; user-select: none; -webkit-user-select: none; } body { margin: 0; padding: 0; background-color: var(--bg-color); color: var(--text-color); font-family: var(--font-main); display: flex; flex-direction: column; align-items: center; min-height: 100vh; overflow-x: hidden; } /* 顶部控制栏 */ header { width: 100%; background-color: var(--panel-color); padding: 10px 20px; display: flex; justify-content: space-between; align-items: center; box-shadow: 0 2px 10px rgba(0,0,0,0.3); z-index: 10; } .header-left, .header-right { display: flex; gap: 10px; align-items: center; } .header-center { display: flex; gap: 20px; font-size: 1.2rem; font-weight: bold; } button { background-color: var(--accent-color); color: white; border: 1px solid #444; padding: 6px 12px; border-radius: 4px; cursor: pointer; transition: all 0.2s; font-size: 0.9rem; } button:hover { background-color: #1a4b85; transform: translateY(-1px); } button:active { transform: translateY(1px); } button.active { background-color: var(--highlight-color); border-color: #ff6b81; } button:disabled { opacity: 0.5; cursor: not-allowed; } select { background-color: var(--accent-color); color: white; border: 1px solid #444; padding: 5px; border-radius: 4px; } /* 主游戏区域 */ main { display: flex; flex-direction: column; align-items: center; margin-top: 20px; position: relative; width: 100%; max-width: 1200px; } /* 工具栏 */ .toolbar { display: flex; gap: 10px; margin-bottom: 10px; flex-wrap: wrap;...
AI 评审点评
以下是 AI 评审对该模型输出的点评:
【CLAUDE】这是一个高质量的单文件扫雷游戏实现,核心游戏逻辑扎实且符合所有基础要求(BFS 迭代、首次安全、右键屏蔽等),AI 辅助功能实现了约束传播和概率分析的基础框架,视觉特效丰富且性能优秀,音效系统和扩展功能覆盖全面。代码结构清晰,HTML/CSS/JS 分离良好,关键算法有注释说明。主要改进空间在于:AI 推理算法可进一步深化(多轮约束传播、高级模式识别)、部分 UI 细节可优化(3D 凸起效果、背景节拍实现)、输入验证可更严格。整体而言,该实现完全满足需求的核心要求,并在多个维度展现出较高的技术水准,是一个功能完整、体验流畅的高级扫雷游戏。 【GEMINI】这是一个极其优秀的扫雷游戏实现,展现了资深全栈工程师的水平。代码结构清晰,算法实现深度(尤其是 AI 的子集约束推理)令人印象深刻。视觉和音效系统完全脱离了外部资源依赖,通过原生 API 实现了极佳的交互反馈。所有强制性技术要求(BFS 迭代、首次点击安全、AI 逻辑推导、粒子系统等)均得到了高质量的履行。 【KIMI】该实现是一个功能丰富、架构清晰的高级扫雷游戏,在单文件约束下完成了绝大多数核心和扩展功能。AI推理引擎虽非最优解但具备实用价值,视觉特效和音效系统达到较高完成度。主要改进点包括:修复chord操作的异步执行问题、加强约束传播的迭代深度、补充背景节拍和完美主义成就、完善输入验证和边界情况处理。代码结构良好,关键算法有注释,性能优化到位(requestAnimationFrame、定时器清理),适合作为生产级Web游戏基础。
相关链接
您可以通过以下链接查看更多相关内容: