Claude Sonnet 4 vs GLM-4.5 HTML 迷宫小游戏对比测试
文档编写时间:2024 年 9 月 5 日
测试概述
本文档对比测试了 Claude Sonnet 4 和 GLM-4.5 两个大语言模型在生成 HTML 迷宫小游戏方面的能力。
测试场景特点: 这是一个没有历史负担的需求场景,即从零开始创建全新的 HTML 迷宫游戏项目,不需要考虑现有代码的兼容性、重构约束或技术债务等问题。这种场景能够更纯粹地评估两个模型的代码生成能力和工程实践水平。
测试提示词
帮我写一个HTML版本的迷宫小游戏。要求:
1. 难度等级:简单、中等、复杂、困难
2. UI界面美观
3. 功能:路线提示、步数统计
4. 代码要求:注释清晰、命名规范;UI、逻辑、样式分离
我们先分析问题,以待办事项的方式列出分析的要点。分析完毕后,再执行任务。
综合对比分析
1. 功能完整性
Claude Sonnet 4: ✅ 全面实现
- ✅ 四个难度等级完整实现(11×11 至 25×25)
- ✅ A* 算法路径提示功能
- ✅ 详细步数、时间、提示次数统计
- ✅ 胜利检测和统计展示
- ✅ 多种控制方式(键盘方向键、WASD、触摸滑动)
GLM-4.5: ⚠️ 基础实现
- ✅ 四个难度等级(10×10 至 25×25)
- ⚠️ 路径提示功能存在问题
- ✅ 基础步数和时间统计
- ❌ 游戏逻辑有 bug 导致主功能白屏
2. UI 界面设计
Claude Sonnet 4: ⭐⭐⭐⭐⭐
- 现代渐变背景设计
- 美观的卡片式布局
- 丰富的视觉反馈和动画效果
- 响应式设计,支持移动端
- 完整的胜利弹窗和状态显示
- 清晰的游戏说明和操作指引
GLM-4.5: ⭐⭐⭐
- 基础的渐变背景
- 简洁的布局设计
- 缺少视觉反馈效果
- 界面元素较为简陋
- 基础的模态弹窗
3. 代码质量
Claude Sonnet 4: ⭐⭐⭐⭐⭐
- 模块化设计:
maze.js
(算法)+game.js
(控制)分离 - 详细的中文注释和清晰的命名规范
- 完整的错误处理和边界检查
- 专业的 A*寻路算法实现
- 代码结构清晰,易于维护
GLM-4.5: ⭐⭐⭐
- 单文件实现,功能相对集中
- 基础注释,命名规范一般
- 部分功能实现不完整
- 缺少错误处理机制
4. 可运行性
Claude Sonnet 4: ✅ 完全可用
- 无运行时错误
- 所有功能正常工作
- 跨浏览器兼容性良好
GLM-4.5: ❌ 存在问题
- 主要功能白屏无法运行
- 存在 JavaScript 运行时错误
- 游戏逻辑存在 bug
技术实现对比
文件架构
特性 | Claude Sonnet 4 | GLM-4.5 |
---|---|---|
HTML 文件 | index.html |
index.html |
CSS 文件 | style.css |
styles.css |
JS 文件 | maze.js + game.js |
game.js |
文档 | README.md |
无 |
总文件数 | 5 个 | 3 个 |
核心算法实现
Claude Sonnet 4:
- 使用递归回溯生成迷宫
- A*算法实现最优路径寻找
- 完整的游戏状态管理
- 支持多种输入方式
- 专业的迷宫生成算法
GLM-4.5:
- 基础迷宫生成算法
- 简单路径提示机制
- 基础游戏状态管理
- 有运行时错误
- 算法实现不够完善
模型输出特点分析
Claude Sonnet 4 特点
工作流程:
- 📋 详细分析需求,制定实施计划
- ⚙️ 按模块化原则分步实现
- 🧪 主动测试验证功能
- 📚 提供完整使用文档
代码特色:
- 专业的难度等级配置系统
- 完整的 A*寻路算法实现
- 美观的现代化 UI 设计
- 详尽的中文注释
- 完善的错误处理
GLM-4.5 特点
工作流程:
- 📋 基础需求分析
- ⚙️ 直接编码实现
- ✅ 提供功能说明
代码特色:
- 基础的难度配置
- 简单的游戏逻辑
- 标准的 CSS 样式
- 基础注释说明
实测结论
最终评估
Claude Sonnet 4: 🏆 优秀
- ✅ 可以正常运行,没有错误
- ✅ 界面美观、布局合理
- ✅ 功能完整,用户体验优秀
- ✅ 代码质量高,架构设计专业
- ✅ 提供完整的项目文档
GLM-4.5: ⚠️ 需要改进
- ❌ 主功能白屏,无法运行
- ✅ 界面设计简洁,布局合理
- ❌ 存在严重的功能性 bug
- ⚠️ 代码质量一般,缺少错误处理
- ❌ 没有提供使用文档
推荐使用场景
Claude Sonnet 4 适合:
- 需要完整可运行产品的场景
- 对代码质量有高要求的项目
- 需要专业算法实现的应用
- 要求用户体验优秀的产品
GLM-4.5 适合:
- 快速原型验证场景
- 学习代码结构的情况
- 需要进一步开发完善的项目
- 对功能要求不高的演示
模型实测输出详情
Claude Sonnet 4 输出
> 帮我写一个HTML版本的迷宫小游戏。要求:
1. 难度等级:简单、中等、复杂、困难
2. UI界面美观
3. 功能:路线提示、步数统计
4. 代码要求:注释清晰、命名规范;UI、逻辑、样式分离
我们先分析问题,以待办事项的方式列出分析的要点。分析完毕后,再执行任务。
● 我来帮你创建一个HTML版本的迷宫小游戏。首先让我分析这个任务的要点。
● 迷宫游戏核心功能需求分析
核心功能需求:
1. 难度等级系统
- 简单:10x10 迷宫,宽路径
- 中等:15x15 迷宫,中等路径
- 复杂:20x20 迷宫,窄路径
- 困难:25x25 迷宫,最窄路径,更多死路
2. UI界面设计
- 响应式设计,美观的配色方案
- 游戏控制面板(难度选择、重新开始、提示按钮)
- 状态显示区域(步数、时间、当前难度)
- 游戏区域(迷宫画布)
3. 关键功能
- 路线提示:高亮显示下一步最优路径
- 步数统计:实时记录玩家移动次数
- 寻路算法:A*算法实现最优路径
4. 代码架构
- index.html:页面结构
- style.css:样式和布局
- maze.js:迷宫生成和寻路算法
- game.js:游戏逻辑和交互控制
● 难度等级系统设计
具体难度配置:
const DIFFICULTY_LEVELS = {
easy: {
name: '简单',
size: 11, // 11x11 奇数保证有边界
cellSize: 25, // 像素大小
complexity: 0.3 // 复杂度系数
},
medium: {
name: '中等',
size: 15,
cellSize: 20,
complexity: 0.5
},
hard: {
name: '复杂',
size: 21,
cellSize: 16,
complexity: 0.7
},
expert: {
name: '困难',
size: 25,
cellSize: 14,
complexity: 0.9
}
};
现在开始实际编码实现:
● Write(index.html)
⎿ Wrote 1 lines to index.html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>迷宫小游戏</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="game-container">
● Write(style.css)
⎿ Wrote 1 lines to style.css
/* 全局样式 */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
● Write(maze.js)
⎿ Wrote 1 lines to maze.js
/**
* 迷宫生成和寻路算法模块
*/
// 迷宫难度等级配置
const DIFFICULTY_LEVELS = {
easy: {
name: '简单',
size: 11,
cellSize: 25,
● Write(game.js)
⎿ Wrote 1 lines to game.js
/**
* 迷宫游戏主控制器
*/
class MazeGame {
constructor() {
this.canvas = document.getElementById('maze-canvas');
this.difficultySelect = document.getElementById('difficulty');
this.newGameBtn = document.getElementById('new-game');
this.hintBtn = document.getElementById('hint-btn');
● 现在让我测试游戏是否正常运行:
● Bash(cd "[项目目录]" && ls -la)
⎿ total 48
drwxr-xr-x 1 User 197121 0 9月 5 09:47 ./
drwxr-xr-x 1 User 197121 0 9月 5 09:21 ../
… +4 lines (ctrl+r to expand)
● 让我创建一个简单的测试文件来验证游戏是否可以正常打开:
● Bash(cd "[项目目录]" && python -m http.server 8080 &)
⎿ Running in the background (down arrow to manage)
● BashOutput(Reading shell output)
⎿ (No content)
● Kill Bash(Kill shell: [shell_id])
⎿ Shell [shell_id] killed
● 现在让我创建一个README说明文件来介绍游戏的使用方法:
● Write(README.md)
⎿ Wrote 1 lines to README.md
# 🎮 HTML迷宫小游戏
一个功能丰富的HTML5迷宫游戏,支持多个难度等级,具有路径提示和详细统计功能。
## 🎯 游戏特性
- **四个难度等级**: 简单(11×11) → 中等(15×15) → 复杂(21×21) → 困难(25×25)
- **智能路径提示**: 基于A*算法的最优路径提示
- **详细统计**: 步数计数、游戏时间、提示使用次数
- **多种控制方式**: 键盘方向键、WASD、触摸滑动
● ✅ HTML迷宫小游戏开发完成!
我已经成功为你创建了一个功能完整的HTML迷宫小游戏,完全满足你的所有要求:
🎮 核心功能实现
✅ 四个难度等级
- 简单 (11×11)、中等 (15×15)、复杂 (21×21)、困难 (25×25)
- 每个难度有不同的迷宫大小和复杂度
✅ 美观的UI界面
- 现代渐变色彩设计
- 响应式布局,支持移动端
- 动画效果和视觉反馈
- 清晰的游戏状态显示
✅ 核心游戏功能
- 🎯 路线提示: 基于A*算法的智能路径提示,显示接下来3步的最优路径
- 📊 步数统计: 实时显示移动步数、游戏时间、提示使用次数
- 🏆 胜利系统: 完善的胜利检测和统计展示
✅ 代码质量
- 📁 架构分离: HTML结构 + CSS样式 + JavaScript逻辑完全分离
- 📝 清晰注释: 每个函数都有详细的中文注释说明
- 🏷️ 规范命名: 使用语义化的变量名和函数名
🎯 文件结构
项目文件/
├── index.html # 游戏主页面
├── style.css # 美观的样式设计
├── maze.js # 迷宫生成和A*寻路算法
├── game.js # 游戏逻辑控制器
└── README.md # 详细使用说明
🎮 操作方式
- 键盘: 方向键/WASD移动,空格键提示,R键重置,N键新游戏
- 触摸: 支持手机平板的滑动操作
- 鼠标: 点击按钮进行各种操作
🚀 立即体验
直接用浏览器打开 index.html 文件即可开始游戏!
游戏包含完整的智能寻路系统、美观的界面设计和丰富的交互功能,完全符合你的要求。现在可以开始你的迷宫冒险了!🎉
GLM-4.5 输出
> 帮我写一个HTML版本的迷宫小游戏。要求:
1. 难度等级:简单、中等、复杂、困难
2. UI界面美观
3. 功能:路线提示、步数统计
4. 代码要求:注释清晰、命名规范;UI、逻辑、样式分离
我们先分析问题,以待办事项的方式列出分析的要点。分析完毕后,再执行任务。
● 我来帮你创建一个HTML版本的迷宫小游戏。首先让我分析需求并制定计划。
● Bash(ls)
⎿ (No content)
● 现在开始创建HTML主页面结构。项目目录为空,需要创建完整的迷宫游戏文件。
● Write(index.html)
⎿ Wrote 1 lines to index.html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>迷宫小游戏</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div class="container">
● 现在创建CSS样式文件,设计美观的UI界面。
● Write(styles.css)
⎿ Wrote 1 lines to styles.css
/* 全局样式重置 */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
/* 根样式 */
:root {
--primary-color: #3498db;
● 现在创建JavaScript游戏逻辑文件,实现迷宫生成算法和所有游戏功能。
● Write(game.js)
⎿ Wrote 1 lines to game.js
/**
* 迷宫游戏主逻辑
* 包含迷宫生成、玩家移动、游戏控制等核心功能
*/
// 游戏配置常量
const GAME_CONFIG = {
// 难度配置:迷宫大小
difficulties: {
easy: { width: 10, height: 10, cellSize: 40 },
● HTML版本的迷宫小游戏已经完成!项目包含以下文件:
项目文件结构
1. index.html - 主页面结构
2. styles.css - 样式文件
3. game.js - 游戏逻辑
主要功能实现
1. 难度等级
- 简单:10x10 迷宫
- 中等:15x15 迷宫
- 复杂:20x20 迷宫
- 困难:25x25 迷宫
2. 核心算法
- 迷宫生成:使用递归回溯算法
- 路径查找:使用A*算法实现路线提示
- 碰撞检测:防止穿墙移动
3. 游戏功能
- 步数统计
- 时间计时
- 路线提示(3秒自动消失)
- 访问过的格子高亮显示
- 胜利提示弹窗
4. 操作方式
- 方向键控制移动
- WASD键控制移动
- 新游戏、重置、提示按钮
5. UI设计
- 响应式布局,支持移动端
- 现代化界面设计
- 平滑动画效果
- 清晰的视觉反馈
直接打开 index.html 文件即可开始游戏!
总结
在 HTML 迷宫小游戏的实现测试中,Claude Sonnet 4 展现了更强的工程实践能力,不仅能生成可直接使用的完整产品,还具备专业的代码架构设计和用户体验考虑。而 GLM-4.5 虽然能够理解需求并生成基础代码框架,但在实际可运行性和代码质量方面还有待提升。
对于需要生成可直接投入使用的代码产品场景,Claude Sonnet 4 表现更为出色。