软件工程第二次个人作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/SE2024
这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/SE2024/homework/13253
这个作业的目标 使用Python编写一个“羊了个羊”风格的消除类小游戏
学号 102202101

github作业链接:https://github.com/Endorphins-m/softenginneer/tree/main/task2

一、生成游戏相关图片

使用工具:豆包

二、任务分析

1.制作简洁的图形界面(主菜单),设计三种游戏难度按钮

2.设计类似于”羊了个羊“的游戏规则,每当选中区有三个相同图片则消除
3.增加倒计时功能,增加游戏紧张感,计时结束则游戏结束
4.增加得分功能,每消除一次得三分

三、游戏展示

1.静态界面展示

2.游戏界面展示



3.游戏失败界面展示

但选中区域已满时或者倒计时结束显示游戏失败

4.游戏胜利界面显示

四、项目介绍

前端设计:

1.图形用户界面(GUI):游戏使用Pygame库创建图形界面,包括开始菜单、游戏界面和结束界面。
2.动画和视觉效果:游戏中的动物图案和背景图片通过Pygame进行渲染和动画处理,增加了游戏的视觉效果。
3.计时器:游戏有一个倒计时功能,玩家需要在时间耗尽前尽可能多地消除图案。
4.得分系统:根据玩家消除的图案数量计算得分,并在游戏结束时显示最终得分。

使用的技术与算法:

1.Pygame库:用于创建游戏的图形界面和处理用户输入。
2.事件驱动编程:游戏循环通过监听事件(如鼠标点击)来响应玩家操作。
3.随机数生成:使用Python的random模块来随机生成动物图案的位置。
4.图像处理:使用Pygame的图像处理功能来加载、缩放和渲染动物图案和背景图片。
5.计时和时间管理:使用time模块来管理游戏的倒计时和加时道具的效果。

实现思路

1.初始化:游戏开始时,初始化Pygame库,设置屏幕大小,加载和缩放动物图案以及背景图片。
2.主游戏循环:游戏的主循环负责处理用户输入、更新游戏状态、绘制界面并更新显示。
3.图案生成:随机生成成对的动物图案,并在游戏区域内随机分布,保证游戏最后能胜利。
4.图案匹配:在用户点击选中图案时进入选中但未消除区域,当此区域有三个相同图案是进行消除并更新得分。
5.图案叠放:设计三维坐标系,最上层的图案定位可选择,非顶层图案不可选择。
6.模式选择:设计不同模式难度,增加图案叠放层数和图案种类。
7.计时器:游戏开始时启动一个计时器,实时更新剩余时间,并在时间耗尽时结束游戏。
8.游戏结束:当所有图案被消除或时间耗尽时,显示游戏结束界面,并显示最终得分。

监测用例

1.测试游戏启动
目的:验证游戏能否正常启动并显示主菜单。
步骤:运行游戏。
预期结果:游戏窗口打开,显示主菜单界面

2.测试不同模式图案生成
目的:验证游戏能否正确生成并显示重叠动物图案。
步骤:开始游戏,观察图案。
预期结果:所有动物图案正确生成并随机分布在游戏区域内

3.测试图案消除
目的:验证图案能否按照规则消除
步骤:选中图案进行消除
预期结果:所有动物图案都能选中消除并且分数增加

4.测试游戏结束条件
目的:验证游戏在时间耗尽或图案消除完时能否正确结束。
步骤:等待时间耗尽或消除所有图案。
预期结果:游戏结束,显示得分和结束界面。

5.测试得分计算与显示
目的:得分正确计算以及游戏结束正确显示
步骤:观察图案消除后得分变化以及游戏结束得分显示
预期结果:得分正确并且游戏结束进行显示

5.测试重新开始或退出
目的:验证玩家能否在游戏结束后选择重新开始或返回主菜单。
步骤:在游戏结束后点击重新开始或返回主菜单。
预期结果:游戏重新开始或进入主菜单界面

评价

1.清晰的游戏结构:代码组织良好,有明确的函数和类负责不同的游戏逻辑。
2.图形界面:使用 Pygame 库创建了一个图形界面,使得游戏易于交互。
3.计时器和得分系统:游戏有时间限制和得分机制,增加了游戏的挑战性。
4.事件处理:处理了基本的用户输入,如鼠标点击和退出事件。
5音效和动画:添加音效和动画可以提升游戏体验。
7.错误处理:代码中缺少错误处理,例如当图片文件夹路径错误或图片文件不存在时
8.未增加游戏道具以增强趣味性

AIGC表格

子任务 借助何种AIGC技术 实现了什么功能 效果如何?
游戏逻辑开发 kimi 辅助编写游戏循环、事件处理和图案匹配逻辑 显著提高了编码速度和代码质量,减少了编写样板代码的时间
图层错位堆叠 kimi 将图层堆叠摆放且随机生成分布 堆叠摆放并未实现,随机分布实现,后续不断修改调试
游戏功能完善 kimi、豆包 通过提出需求制作功能代码框架、根据自身需要不断完善 提高代码编写速度以及促进功能多样化实现
图像资源生成 文生图工具(如 豆包) 设计游戏图案和背景 提高了游戏的视觉吸引力,使游戏界面更加生动有趣
文档和注释编写 kimi 辅助编写项目文档和代码注释 提高了文档的质量和专业性,减少了语法和拼写错误

AIGC技术的优缺点

优点:

提高效率:自动化生成基础内容,减少人工重复劳动。
个性化定制:根据用户反馈和偏好生成个性化内容。
质量提升:通过AI辅助,提高代码和文档的专业质量。
代码请教:对于不了解的代码可以询问ai进行解释

缺点:
理解错误:有时不能正确理解需要,要不断调试,且代码生成量有限
依赖数据:生成内容的质量受限于训练数据的质量和多样性。
技术限制:某些复杂任务和高度创造性工作难以完全由AI替代。

适合与不适合的应用

适合的应用:

内容创作:自动生成文章、故事、诗歌等文本内容。
游戏开发:生成游戏关卡、敌人行为模式、游戏环境等。
艺术设计:创作绘画、音乐、动画等艺术作品。
数据增强:在机器学习中,用于生成额外的训练数据以提高模型性能。
个性化推荐:根据用户偏好生成个性化的内容推荐。
虚拟助手:提供个性化的对话和建议。
教育和培训:生成定制化的教育材料和模拟训练场景。
不适合AIGC的应用:

法律文件:法律文件需要精确无误,AIGC可能无法满足这一要求。
医疗诊断:医疗领域的准确性至关重要,AIGC的误判可能导致严重后果。
心理治疗:心理治疗需要专业的人类同理心和经验,AIGC难以替代。
新闻报道:虽然AIGC可以生成新闻稿,但对于需要深入调查和分析的报道,人类记者更为适合。
道德和伦理决策:涉及道德和伦理的复杂决策需要人类的判断。
创意策略规划:需要深度思考和创新策略的场景,AIGC可能无法提供足够的创意。
任何需要人类直觉和经验的领域:AIGC可能无法模拟人类的直觉和基于经验的决策。
总的来说,AIGC适合那些可以被明确定义、有固定规则或者需要大量重复性工作的领域。而在需要深度理解、复杂判断、创新思维或者高度个性化的领域,人类专家的作用难以被AIGC替代。此外,AIGC生成的内容可能需要人类的审核和监督,以确保质量和安全性

学习内容 收获
Pygame 框架使用 了解了Pygame的基础使用,包括图形渲染与事件处理等,对其有一定的了解与基础。
图案加载与动态调整 掌握了资源动态加载和自适应布局技术,确保了游戏界面中图案的适配
图案分布随机性优化 实现了高级随机分布算法,优化了游戏图案的生成逻辑,满足游戏要求
时间管理与倒计时逻辑 设计并实现了精确的时间管理系统,通过倒计时机制有效提升了游戏的节奏和玩家的参与度。
AIGC工具应用 有效利用了人工智能辅助生成内容(AIGC)工具,以提高编码效率和创新设计,探索了AIGC在游戏开发中的前沿应用。

五、心得体会

以羊了个羊游戏为参考,将界面中的游戏图案分层叠放,在最上层未消除是不可选中下层图案,加入了计时器以及多种游戏难度,实现了基本框架。但游戏中并未增加游戏道具,趣味性稍低。同时个人认为游戏界面可进一步优化,将界面设计的更加精美。最后是AIGC使用体验,用AIGC生成长代码会有各种各样的错误,需要一步一步调试,才能得到正确结果。

4.4PSP表格

PSP Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 30 30
Development 开发 660 790
• Analysis • 需求分析 (包括学习新技术) 180 200
• Design Spec • 生成设计文档 20 15
• Design • 具体设计 60 75
• Coding • 具体编码 150 200
• Test • 测试(自我测试,修改代码,提交修改) 250 300
Reporting 报告 120 135
• Test Repor • 报告 90 100
• Postmortem & Process Improvement Plan • 事后总结, 并提出过程改进计划 30 35
合计 810 670 955

六、个人小结

首先分析任务得出代码要求,后用AIGC一步步进行实现,生成基础代码,再一步步进行修改。过程中遇到很多问题,AIGC有时也并不能很好理解客户需求,需要不断调试,不断修改,并且有些较为复杂的代码难以生存,生成代码量有限,且需要分析容易出现误差,在接近任务要求的过程中,遇到较多困难,有些已解决,有些未能解决。在完成任务途中,遇到必需但是难以解决的问题选择询问同学或是参考他人代码,在这一次的个人作业中,花费了大量时间,有时甚至感到烦躁,但是最终还是制作成可运行的小游戏,经过这次作业获得了一定成长。

posted @ 2024-09-18 17:13  Endorphins  阅读(28)  评论(0编辑  收藏  举报