• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
黄丽婷
博客园    首页    新随笔    联系   管理    订阅  订阅

软件工程课程第二次个人作业

软件工程 https://edu.cnblogs.com/campus/fzu/202601SofwareEngineering
作业要求 https://edu.cnblogs.com/campus/fzu/202601SofwareEngineering/homework/16717
作业目标 使用 Python 和 AIGC 完成“一箭又一箭”小游戏
学号 102401606
GitHub 仓库 https://github.com/halttt/arrow-game

一、项目展示

本次游戏开发完成了完整的游戏流程,包含开始界面、游戏对局界面、通关界面和失败界面,游戏整体运行流畅,交互反馈清晰。

start

game

win

二、项目介绍

本次开发的是一箭又一箭休闲解谜小游戏,属于网格箭头闯关类游戏。游戏内置上下左右四个方向的箭头,玩家需要按照正确顺序点击箭头。
核心游戏规则:

  1. 点击箭头后,系统检测箭头前进路径,路径无任何箭头阻挡时,箭头飞出棋盘并消除;
  2. 路径存在其他箭头阻挡时,箭头无法消除,触发晃动碰撞反馈,同时扣除一次失误次数;
  3. 每一关有固定失误次数,次数耗尽则本关游戏失败,可点击按钮重新开始;
  4. 清空当前关卡所有箭头即可通关,并自动进入下一关;
  5. 游戏共设计 3 个可手动通关的关卡,难度逐级递增。

游戏整体包含完整界面体系:开始游戏界面、游戏操作界面、通关胜利界面、游戏失败界面,布局清晰、操作简单,适配基础小游戏开发规范。

三、实现思路

1. 数据存储设计

所有关卡采用二维网格数组存储,通过行列坐标定位每一个箭头,记录箭头所在位置与朝向,空白网格不做数据存储,结构简洁清晰。

2. 核心路径检测原理(重点)

路径检测是本游戏的核心逻辑,实现方式如下:

  1. 获取当前点击箭头的方向、行列坐标;
  2. 根据箭头朝向,沿着同一行 / 列持续向边界遍历;
  3. 遍历过程中如果检测到其他箭头,判定为路径阻挡,触发碰撞反馈、扣除失误次数;
  4. 若一直遍历到棋盘边界都无任何箭头,判定为可消除,直接移除当前箭头。

3. 界面与交互实现

基于 Pygame 实现全部图形界面,手动绘制网格、箭头图形,不使用任何第三方素材,避免版权问题。实时渲染关卡数、剩余箭头数、剩余失误次数,鼠标悬浮箭头有高亮效果,碰撞时有红色晃动动画反馈。

4. 游戏状态管理

全程维护游戏状态:开始界面、游玩界面、通关界面、失败界面。支持关卡自动切换、失误次数统计、关卡重置功能,完整闭环游戏游玩流程。

四、AIGC 使用过程

子任务 借助何种 AIGC 技术 AI 实现或提供了什么 效果如何 人工修改
路径检测 DeepSeek 生成上下左右四个方向路径检测完整代码 初始代码向上检测存在数组越界问题,边界判断不严谨 手动修改边界判断条件,限制坐标合法范围,修复越界 Bug,测试后四个方向检测全部正常
关卡设计 DeepSeek 自动生成 3 套不同尺寸的关卡数组 部分关卡存在箭头互锁死循环,无法通关 手动微调每一关箭头位置,逐关试玩验证,保证三关均存在合理通关顺序
碰撞动画 GitHub Copilot 编写箭头阻挡时的晃动动画代码 原始动画晃动速度过快,视觉反馈不明显 调整动画计时器参数、震动幅度,降低动画速度,碰撞提示清晰直观

五、测试结果

编号 测试内容 预期结果 实际结果 是否通过
T01 点击前方无阻挡的箭头 箭头飞出棋盘并消失 箭头正常消除,无异常 通过
T02 点击前方有阻挡的箭头 箭头不消失,失误次数减 1 箭头晃动提示,失误次数正常扣除 通过
T03 点击边缘朝向棋盘外的箭头 箭头正常消失,无越界报错 边界判定正常,箭头顺利消除 通过
T04 消除当前关卡全部箭头 显示通关,自动进入下一关 弹出通关界面,自动跳转下一关 通过
T05 失误次数全部耗尽 显示失败,支持重新开始 弹出游戏失败界面,可重置关卡 通过
T06 游戏中点重新开始按钮 箭头布局、失误次数恢复初始状态 关卡数据完全重置,恢复初始状态 通过

六、PSP 表格

任务 预估耗时(小时) 实际耗时(小时) 差异(小时)
需求分析与游戏设计 1 1.5 +0.5
Python 与图形库学习 2 2 0
游戏界面实现 2 2.5 +0.5
路径与碰撞逻辑实现 3 4 +1
关卡设计 2 2.5 +0.5
AIGC 辅助开发 1 1 0
测试与修改 2 3 +1
README 与博客撰写 2 2 0
合计 15 18 +3

七、心得体会

本次软件工程作业,我借助 AIGC 工具完成了一箭又一箭小游戏的完整开发,深刻体会到了 AI 辅助开发的便捷性与局限性。

AI 可以快速帮我搭建游戏基础框架、编写核心的路径检测代码、生成关卡数据和动画逻辑,极大减少了重复性的基础编码工作,大幅提升了开发效率。但 AI 生成的代码并不完美,存在数组越界、关卡死锁、动画效果不协调等各类 Bug,无法直接运行使用。

在不断调试、修改、测试的过程中,我深入理解了网格游戏的坐标逻辑、路径遍历算法和游戏状态管理机制,学会了排查代码错误、优化交互体验。同时也明白了,AIGC 只是辅助开发的工具,作为开发者,必须读懂代码、验证功能、修复缺陷,对项目的最终质量负责,不能完全依赖 AI。

本次作业不仅锻炼了我的 Python 编程能力,也让我熟悉了现代化 AI 辅助软件开发的完整流程,收获颇丰。

posted on 2026-09-18 15:40  halttt  阅读(4)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3