deepseek-v3.2 在「Flappy Bird」的评测结果
这是该 AI 模型在此测试用例上的详细评测结果。
基本信息
- 模型名称:deepseek-v3.2
- 用例名称:Flappy Bird
- 测试类型:网页生成
- 评测维度:游戏开发
系统提示词(System Prompt)
这是给 AI 模型的背景设定和角色指令:
你是一名资深 Web 前端开发专家,擅长使用 HTML5 Canvas 开发 2D 游戏。 回答要求: 1. 所有代码(HTML、CSS、JavaScript)必须封装在单个 HTML 文件中,可直接在浏览器运行,不依赖任何外部资源。 2. 所有图形(小鸟、管道、背景、地面)必须使用 Canvas 2D API 纯代码绘制,禁止引用外部图片或音频文件。 3. 游戏逻辑须包含完整的物理模拟(重力加速度、跳跃速度)、碰撞检测(矩形/圆形与管道边界)和状态机(等待/游戏中/结束)。 4. 代码结构清晰,变量命名语义化,核心逻辑(物理、渲染、碰撞)分函数组织,便于阅读。 5. 直接输出完整 HTML 代码,不附加任何解释文字。
用户提示词(User Prompt)
这是用户给 AI 模型的具体任务要求:
# Flappy Bird 游戏(基础版) 请生成一个完整的、可独立运行的 Flappy Bird 游戏,所有代码写在单个 HTML 文件中。 ## 游戏机制 1. 使用 HTML5 Canvas 作为唯一渲染画布(建议尺寸 480×640)。 2. 游戏分三个状态:**等待开始**(显示提示信息)→ **游戏中** → **游戏结束**。 3. **控制方式**:按下空格键或点击/触摸屏幕,小鸟获得一个向上的初速度(跳跃)。 4. **重力系统**:小鸟每帧受固定重力加速度影响持续下落,速度有上限(终端速度)。 5. **管道生成**:管道从右侧以固定速度向左移动,随机生成缺口高度,上下各一根,中间留固定宽度缺口(建议 150px);管道间距固定(建议 220px)。 6. **得分**:小鸟成功穿越管道中线时得 1 分。 7. **碰撞检测**:小鸟碰到上管道、下管道、画布顶部或底部地面时,游戏结束。 8. **游戏结束界面**:显示「Game Over」、本局得分,以及「点击重新开始」提示;点击或按空格后重置游戏。 ## 视觉要求 1. **背景**:蓝色天空渐变(上深下浅),绘制 2-3 朵白色椭圆云朵并缓慢向左滚动。 2. **地面**:底部绘制绿色/棕色地面条带,地面纹理(竖线或格子)随游戏速度向左滚动。 3. **小鸟**: - 使用椭圆形身体 + 圆形眼睛 + 三角形喙绘制,颜色鲜明(如黄色)。 - 实现**振翅动画**:小鸟身体上方绘制一个翅膀,翅膀角度随时间在上下两个角度之间周期性切换(每 8-10 帧切换一次),模拟扇动效果。 - 小鸟根据当前垂直速度旋转(上升时微微抬头,下落时低头)。 4. **管道**:使用绿色填充,管道顶端绘制一个略宽的「帽檐」矩形,管道使用从亮绿到深绿的线性渐变。 5. **分数**:游戏进行中在画布顶部居中显示当前分数(白色大字,带黑色描边)。 ## 技术要求 - 使用 `requestAnimationFrame` 驱动游戏循环。 - 碰撞检测使用矩形 AABB 方法(可对小鸟使用略小的碰撞盒以提升体验)。 - 管道离开画布左侧后从对象池中移除或复用,避免内存泄漏。 请直接输出完整的 HTML 代码。
任务要求
AI 模型需要满足以下要求:
- 游戏三态完整(等待→游戏中→结束),空格键与点击均可控制跳跃及重启,重力与跳跃物理参数合理,游戏可正常闭环运行。
- 碰撞检测准确:小鸟与上下管道、顶部、底部地面的碰撞均能触发游戏结束,穿越管道中线时正确计分且不重复计分。
- 小鸟具备振翅动画(翅膀周期性上下切换)和速度旋转效果;管道为绿色渐变并带顶端帽檐;背景含滚动云朵和滚动地面。
- 分数在游戏中实时显示,游戏结束界面清晰展示「Game Over」与最终得分,代码结构清晰、逻辑分函数组织。
评测结果
综合得分
该模型在此用例的得分为:— 分(满分 100 分),未通过
基础难度评测结果
- 得分:— 分
- 通过状态:未通过
模型生成产物
以下是该模型针对此任务的实际生成内容:
```html Flappy Bird * { margin: 0; padding: 0; box-sizing: border-box; user-select: none; } body { display: flex; justify-content: center; align-items: center; min-height: 100vh; background-color: #222; font-family: Arial, sans-serif; overflow: hidden; } #gameContainer { position: relative; } canvas { display: block; border: 2px solid #444; box-shadow: 0 0 20px rgba(0, 0, 0, 0.5); } #instructions { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); text-align: center; color: white; background-color: rgba(0, 0, 0, 0.7); padding: 20px; border-radius: 10px; z-index: 10; } h1 { font-size: 2.5rem; margin-bottom: 10px; color: #ffcc00; text-shadow: 2px 2px 0 #000; } p { font-size: 1.2rem; margin: 10px 0; } .hidden { display: none; } Flappy Bird 按空格键或点击屏幕跳跃 避开管道,飞得越远越好! 点击这里开始游戏 // 游戏常量 const CANVAS_WIDTH = 480; const CANVAS_HEIGHT = 640; const GRAVITY = 0.5; const JUMP_FORCE = -10; const TERMINAL_VELOCITY = 15; const PIPE_SPEED = 3; const PIPE_GAP = 150; const PIPE_SPACING = 220; const PIPE_WIDTH = 80; const GROUND_HEIGHT = 80; const BIRD_RADIUS = 20; const BIRD_X = 100; const WING_FLAP_SPEED = 0.2; const MAX_BIRD_ROTATION = 0.5; // 游戏状态 const GAME_STATE = { WAITING: 'waiting', PLAYING: 'playing', GAME_OVER: 'game_over' }; // 游戏变量 let canvas, ctx; let gameState = GAME_STATE.WAITING; let score = 0; let highScore = 0; let frames = 0; let clouds = []; let pipes = []; let groundOffset = 0; // 小鸟对象 const bird = { x: BIRD_X, y: CANVAS_HEIGHT / 2, velocity: 0, rotation: 0, wingAngle: 0, color: '#ffcc00', eyeColor: '#000', beakColor: '#ff6600' }; // 初始化 function init() { canvas = document.getElementById('gameCanvas'); ctx = canvas.getContext('2d'); // 创建初始云朵 for (let i = 0; i = 0; i--) { const pipe = pipes[i]; pipe.x -= PIPE_SPEED; pipe.top.x = pipe.x; pipe.bottom.x = pipe.x; // 检查是否通过管道 if (!pipe.passed && pipe.x + PIPE_WIDTH highScore) { highScore = score; } } // 移除离开屏幕的管道 if (pipe.x + PIPE_WIDTH = CANVAS_HEIGHT - GROUND_HEIGHT) { gameOver(); return;...
相关链接
您可以通过以下链接查看更多相关内容: