软件工程第二次作业

项目 内容
这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/2026-01SoftwareEngineeringandSoftwareEngineeringPractice
这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/2026-01SoftwareEngineeringandSoftwareEngineeringPractice/homework/16718
这个作业的目标 使用 Python 和 AIGC 完成“一箭又一箭”小游戏
学号 102402105
GitHub 仓库 https://github.com/lch102402105/LCH102402105/commits?author=lch102402105

项目展示

开始界面
开始界面

关卡1
关卡1

关卡2
关卡2

关卡3
关卡3

成功后去往下一关界面
成功 下一关

失败 按R返回
失败  R返回

项目介绍

本项目使用 Python+Pygame 实现 “一箭又一箭” 点击解谜小游戏。棋盘网格内放置上、下、左、右方向箭头。玩家鼠标点击箭头,程序检测箭头前进方向:前方无箭头阻挡,箭头飞出棋盘消失;存在阻挡,箭头晃动提示,扣除一次失误机会。
包含 3 个可通关关卡;最多 3 次失误机会。支持 R 键重开,空格进入下一关。界面包含开始页、游戏页、通关、失败页面。

实现思路

  1. 数据结构:Arrow 类保存箭头所在行列、方向、是否激活、晃动标记;关卡使用二维数组表示网格
  2. 路径检测逻辑:根据箭头方向逐格向前进方向遍历网格,如果遍历途中遇到处于激活状态的箭头,判定存在阻挡;一直走到棋盘边界都没有箭头,则无阻挡,可以消除
  3. 游戏状态管理:4 种状态(开始、游戏中、通关、失败),切换不同界面绘制。
  4. 碰撞反馈:箭头被阻挡时启动正弦函数实现晃动动画

关键代码展示:
判断是否有箭头与是否可行
玩法核心代码

判断输赢
输赢要给出的反应

AIGC使用过程

子任务 借助何种AIGC技术 AI实现或提供了什么 效果如何 人工修改
游戏项目整体框架搭建与初始代码生成,实现多界面、基础游戏交互功能 大语言模型代码生成技术、需求拆解AIGC技术 根据游戏需求自动拆解项目结构,拆分出四个功能代码文件,生成游戏基础框架、界面绘制、箭头碰撞、关卡基础逻辑代码 快速搭建完整项目架构,节省大量基础代码编写时间,核心功能逻辑完整,但存在界面布局错乱问题 人工根据界面显示问题,微调ui.py中坐标偏移参数,居中棋盘网格,修正文字、爱心重叠的显示bug
排查并修复代码变量未定义、模块导入报错问题 大语言模型代码纠错、代码调试AIGC技术 精准定位报错原因,指出缺少跨文件模块导入语句,提供标准导入代码,并解释Python模块引用规则 快速解决变量未定义报错,但直接导入后出现模块循环导入的新问题 人工结合AI思路,修改导入逻辑,将全局导入改为函数内部延迟导入,消除循环依赖问题
修复游戏关卡切换bug,完善通关、失败逻辑,解决界面中文乱码问题 大语言模型代码逻辑优化、bug修复AIGC技术 定位关卡无法跳转的核心原因,补全关卡索引自增、终点边界判断逻辑,给出中文乱码的解决方案 修复核心跳转bug,实现正常通关下一关、全部通关提示功能,但仍存在失误次数重置异常、中文显示异常问题 人工完善失误次数自动重置逻辑,替换系统兼容中文字体,优化细节,保证游戏所有功能、界面正常运行

图片展示:
第一次
第一次

第二次
第三次

第三次
第二次

测试结果

编号 测试内容 预期结果 实际结果 是否通过
T01 点击前方无阻挡的箭头 箭头飞出棋盘并消失 箭头消失,剩余箭头计数减少 通过
T02 点击前方有阻挡的箭头 箭头不消失,失误次数减 1 爱心晃动,失误 + 1,箭头保留 通过
T03 点击位于边缘且朝向棋盘外的箭头 箭头正常消失,不发生越界错误 正常消除,程序不崩溃 通过
T04 消除本关全部箭头 显示通关并进入下一关 弹出通关界面,空格进入下一关 通过
T05 失误次数耗尽 显示失败并允许重新开始 Game Over 界面,R 键重置关卡 通过
T06 游戏进行中重新开始 箭头布局和失误次数恢复 R 键重置,棋盘、失误全部重置 通过

PSP表格

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

心得体会

本次小游戏开发借助 AIGC 快速搭建了代码框架,节省基础代码编写时间,但 AI 生成代码存在 bug,例如循环导入、图形间距不合理、边界越界等,需要人工调试修改。通过本次实践,理解了游戏状态管理、二维网格路径检测的思路,也学会甄别 AI 代码,不能直接拿来使用,必须自己读懂、测试、修改

posted @ 2026-09-22 10:37  麓川茴  阅读(5)  评论(0)    收藏  举报