2026秋软件工程个人作业(第二次)

2026秋软件工程个人作业(第二次)——一箭又一箭小游戏

项目 内容
这个作业属于哪个课程 2026秋 软件工程(福州大学)
姓名 蒋书瑞
学号 162501110
作业链接 https://edu.cnblogs.com/campus/fzu/202601SofwareEngineering/homework/16717
作业目标 借助AIGC,使用Python开发《一箭又一箭》小游戏
GitHub仓库 https://github.com/JSR806/arrow-game

一、背景

“一箭又一箭”是休闲解谜小游戏,规则简单:玩家观察箭头方向和互相阻挡关系,点击箭头,箭头沿方向飞出棋盘。开发需要处理二维棋盘、方向判断、路径检测、碰撞反馈和关卡状态。
借助AIGC工具辅助需求分析、代码编写、调试与界面设计,完成小游戏开发,同时人工审查AI生成代码,进行修改、完善与测试。

二、游戏规则

  1. 棋盘上分布不同朝向箭头(上下左右);
  2. 点击箭头,箭头向朝向方向移动;
  3. 若前进路径上没有其他箭头,箭头飞出棋盘并消失;
  4. 若前方存在箭头阻挡,则无法飞出,给出晃动提示并消耗一次失误机会;
  5. 清空棋盘全部箭头即通关,进入下一关;失误次数耗尽则游戏失败;
  6. 支持关卡重置,一共3个关卡。

三、开发环境

Python3.8 + Pygame

#安装依赖
pip install pygame
# 运行游戏
python main.py
## AIGC工具
| 子任务 | 使用AIGC工具 | AI输出内容 | 效果 | 人工修改内容 |
| ---- | ---- | ---- | ---- | ---- |
| 需求分析+整体框架 | 豆包 | 给出游戏整体架构,划分窗口、棋盘、箭头类、游戏状态模块 | 框架思路正确,缺少边界细节 | 调整模块划分,补充游戏失败/胜利状态逻辑 |
| 核心碰撞检测函数 | 豆包 | 生成判断箭头前进路径是否被阻挡的函数 | 基础逻辑可行,部分边界漏判 | 增加棋盘越界判断,修复多格阻挡的逻辑bug |
| 界面绘制与文字渲染 | 豆包 | 绘制棋盘网格、绘制上下左右箭头、绘制文字UI | 箭头渲染样式简陋 | 优化颜色,增加通关、失败弹窗文字 |
| 关卡数据生成 | 豆包 | 生成3组关卡箭头布局数组 | 第一版存在死局,无法通关 | 手动调整箭头位置,逐个试玩保证关卡可通关 |
| 游戏交互逻辑 | 豆包 | 鼠标点击箭头事件、箭头飞出动画 | 动画速度固定,没有碰撞反馈 | 添加碰撞晃动动画、失误计数逻辑 |
## 五、游戏操作说明
1. 运行程序,打开开始界面,点击【开始游戏】进入第一关;
2. 鼠标点击棋盘上任意箭头;
3. 路径无阻挡:箭头飞出棋盘消失;
4. 路径被挡住:箭头晃动,扣除一次失误;
5. 界面显示当前关卡、剩余箭头数量、剩余失误次数;
6. 点击【重新开始】重置当前关卡;
7. 全部箭头消除 → 通关;失误用完 → 游戏失败。

## 六、测试情况
### 功能测试
1. 点击无阻挡箭头:箭头成功飞出,消失 ✅
2. 点击被阻挡箭头:箭头晃动,失误次数减1 ✅
3. 全部箭头消除,自动进入下一关 ✅
4. 失误次数耗尽,弹出游戏失败界面 ✅
5. 重置按钮可以还原当前关卡布局 ✅

### 发现的问题与修复
1. AI代码初始版本没有判断棋盘边界,箭头会超出画布,人工增加边界限制;
2. AI生成关卡存在死局,手动调整箭头布局保证关卡可解;
3. 缺少文字提示,人工增加通关/失败弹窗UI。

## 七、AIGC使用心得
AIGC可以快速搭建项目框架、生成基础代码,大幅减少重复编码工作量,适合快速原型开发。但是AI生成代码会存在逻辑漏洞、边界条件考虑不全,甚至生成无法通关的关卡。
开发中**不能直接照搬AI代码**,需要人工阅读理解、测试、调试、修改。人负责逻辑校验、需求把控,AI作为编程助手。这也是软件工程开发里,人机协作的一种方式。

## 八、项目反思
本次项目借助AIGC完成小游戏,练习了Pygame图形渲染、鼠标事件、二维数组棋盘管理。
不足之处:界面比较朴素,缺少背景音乐;关卡数量较少。后续可以新增音效、更多关卡,优化动画效果。

## 九、仓库地址
https://github.com/JSR806/arrow-game


![屏幕截图 2026-09-22 223154](https://img2024.cnblogs.com/blog/3849157/202609/3849157-20260922234107684-341488742.png)

![屏幕截图 2026-09-22 223216](https://img2024.cnblogs.com/blog/3849157/202609/3849157-20260922234121400-887325737.png)

![屏幕截图 2026-09-22 223237](https://img2024.cnblogs.com/blog/3849157/202609/3849157-20260922234127042-866383296.png)

![屏幕截图 2026-09-22 223315](https://img2024.cnblogs.com/blog/3849157/202609/3849157-20260922234132486-590526921.png)
posted @ 2026-09-22 23:42  蒋书瑞  阅读(4)  评论(0)    收藏  举报