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

news/2024/9/20 4:27:08/文章来源:https://www.cnblogs.com/2003silence/p/18419584
这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/SE2024
这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/SE2024/homework/13253
这个作业的目标 学会使用aigc编写学习代码,明白aigc能做哪些不能做哪些
学号 102201425

1. 项目展示

1.1. GitHub 仓库链接

ruangong

2. 项目介绍

这个项目是一个使用 Pygame 库开发的“开心消消乐”风格的桌面小游戏。游戏的目标是通过点击相同的图案来消除它们,从而获得分数。

3. 前端设计

3.1. 游戏界面

  • 尺寸:600x600 像素的正方形游戏区域
  • 布局:6x6 格子布局,每个格子 100x100 像素

3.2. 图案设计

  • 使用 pygame.image.load 加载并缩放图案以适应每个格子

3.3. 按钮设计

  • 提供“Easy”、“Medium”、“Hard”三种难度选择
  • 包含“Replay”和“Exit”按钮

3.4. 字体和颜色

  • 使用 36 号字体显示得分、最高分和按钮文本
  • 文本颜色与背景颜色形成对比,确保高可读性

3.5. 动画和视觉效果

  • 图案匹配成功时提供视觉反馈,如图案消失动画

4. 特色功能

  1. 难度选择:不同难度对应不同的时间限制
  2. 计时器:倒计时功能,增加游戏紧迫感
  3. 得分和最高分系统:实时更新得分,并记录最高分
  4. 重玩机制:游戏结束后,提供立即开始新一轮游戏的选项

5. 技术和算法

  1. Pygame 库:用于图形显示、事件处理和游戏逻辑
  2. 图案匹配算法:通过数组和索引跟踪图案位置,检查匹配
  3. 随机化算法:使用 random.shuffle 方法打乱图案顺序
  4. 文件操作:使用 json 模块保存和加载最高分

6. 实现思路

  1. 初始化游戏环境:设置窗口大小、加载资源、初始化变量
  2. 游戏循环:处理事件、更新状态、绘制界面、刷新屏幕
  3. 事件处理:响应鼠标点击,进行图案匹配检查
  4. 游戏状态管理:根据当前状态渲染界面元素
  5. 得分和时间管理:更新得分,检查并更新最高分

7. 测试

  1. 开始界面:展示游戏标题和难度选择按钮

  2. 游戏界面:显示游戏区域和时间限制

  3. 结束界面:显示得分和最高分,提供重玩或退出选项

  4. 测试评价:测试基本完成了所有功能的测试,满足程序测试需求。
    aigc表格:

学到的内容 心得体会
Pygame 库的使用 掌握 Pygame 库是开发 2D 游戏的基石,提供了丰富的功能和简便的接口。
游戏逻辑设计 游戏逻辑是游戏的灵魂,需要精心设计以确保游戏的趣味性和可玩性。
图形和动画 良好的视觉效果可以极大地提升玩家的游戏体验。
用户界面设计 直观的用户界面对于玩家理解和享受游戏至关重要。
文件读写操作 学会如何在游戏中保存和加载数据是提供持久游戏体验的关键。
随机化算法 随机性是增加游戏重玩价值和挑战性的有效手段。
代码组织和模块化 良好的代码结构使得项目易于管理和扩展,是团队协作和大型项目开发的前提。
持续学习 技术不断进步,持续学习新技术对于个人成长和适应行业变化至关重要。
耐心和毅力 游戏开发是一个复杂且耗时的过程,需要耐心和毅力来克服挑战。
代码复用和模块化 良好的代码组织能够提高开发效率,减少重复劳动,便于未来的维护和扩展。
小任务 预估利用 AIGC 实际利用 AIGC AIGC 优点 AIGC 缺点 适合应用方面 不适合实现功能
游戏界面设计 快速生成草稿,提高效率 可能缺乏创新性和个性化 - 用户界面设计
图形和图像生成 自动生成多样化图案,节省美术资源 可能缺乏独特性和艺术感 图像生成、游戏美术 定制化美术设计
游戏测试和调试 能快速指出程序错误地方 修改错误不够完美,无法直接修改成功 简单的程序修改 软件测试
游戏逻辑设计 能快速生成差不多的框架 具体逻辑无法实现,需要人为修改 快速生成框架 做具体细节

psp表格:

任务描述 预估耗时(小时) 实际耗时(小时)
需求分析 2 2
设计游戏界面 10 8
开发图案匹配逻辑 5 8
实现计时器功能 1 1
实现得分和最高分系统 3 4
设计并实现重玩机制 2 1
测试游戏功能 4 2
优化和调试 2 4
打包和发布 1 0.5

个人评价

初次触及Python及关联库,本项目主要依靠AI辅助生成代码。在理解及修改代码的过程中,多次与AI进行互动。虽然过程曲折,但最终成果尚可。未来在明确AI辅助的具体实现方面有待提高。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/799600.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Kubernetes Ingress

目录一、为什么需要 Ingress二、什么是Ingress,Ingress Controller三、Ingress 的工作原理四、Ingress 配置资源模版五、实例1、搭建 Ingress 环境1.1、Ingress-Nginx官网地址1.2、master 节点下载 deploy.yaml1.3、所有节点提前 pull 必须的镜像1.4、修改并应用 deploy.yaml 文…

JVM--解析运行期优化与JIT编译器

JVM开发团队一直在努力,缩小Java与C/C++语言在运行效率上的差距。 本篇博客,我们来谈一谈JVM(HotSpot)为了提高Java程序的运行效率,都实现了哪些激动人心的技术~ 1 JIT编译器的引入 首先我们这篇文章中所说的编译器都是指JVM的组成部分之一---即时编译器(JIT),与生成J…

十七,Spring Boot 整合 MyBatis 的详细步骤(两种方式)

十七,Spring Boot 整合 MyBatis 的详细步骤(两种方式) @目录十七,Spring Boot 整合 MyBatis 的详细步骤(两种方式)1. Spring Boot 配置 MyBatis 的详细步骤2. 最后:MyBatis 的官方文档:https://mybatis.p2hp.com/ 关于 MyBatis 的学习的详细内容,大家可以移步至:✏️✏️…

学习高校课程-软件工程-软件流程(ch3)

3.1 A GENERIC PROCESS MODEL 通用过程模型 线性流和迭代流演化流和并行流3.2 DEFINING A FRAMEWORK ACTIVITY 定义框架活动 What actions are appropriate for a framework activity, given the nature of the problem to be solved, the characteristics of the people doing…

字符编码发展史2 — ISO-8859-N

2.2. 第二个阶段 本地化2.2.1. ANSI 2.2.2. ISO/IEC 8859-N2.2.2.1. 什么是ISO/IEC 8859-N? 2.2.2.2. ISO 8859-1的编码表上一篇《字符编码发展史1 — ASCII和EASCII》我们讲解了字符编码的起源ASCII和EASCII。本篇我们将继续讲解字符编码的第二个发展阶段中的ISO 8859-N。 2.…

?

CF1194G 在外层枚举\(x\)和\(y\),令\(x=x\times t,y=y\times t\),且\(x\times t\)十进制包含\(x\),\(y\)同理。 因为有进位,从低位向高位dp。 设\(f[T][0/1][0/1][i][j][0/1][0/1]\)表示处理到第T位,在当前这些为中\(x\times t\)是否大于\(n\),\(y\times t\)是否大于\(n\),…

网络补充

1. 网卡配置(ip,dns)目标:修改网卡的名字为eth0. 修改网卡配置文件,ip,dns,网关,子网掩码.(物理机,虚拟机(私有云)) 公有云自动获取即可,服务器数量巨大自动获取.1.1 网卡命名 结论: 工作有需求的时候再去修改. 做好记录,后面使用的时候参考即可. # 网卡命名规则: ens33 ensxxx…

在idea中使用mysql失败

在idea中测试mysql显示失败idea方面视图 - 工具窗口 - 数据库 或者右边有图标直接点开新建 - 数据源 - mysql名称 - 用户(root) - 密码 - 测试连接如果测试连接有切换相关提示直接点击, 如果出绿色对勾就成功了 到这里本可以结束了, 但是我最开始做的时候这个流程没有成功 以防…

Pyhton调用R语言rpy2包概要

随着深度学习、大数据和AI的发展,Python的热度持续上升,引发了关于选择Python还是R的讨论。作为数据分析工具,两者各有优缺点。在特定领域,如生态学,R仍被广泛应用,而Python则更多用于日常办公自动化,如批量处理文档和Excel。由于数据处理占用了我们大量时间,很多人希望…

自动驾驶运动规划学习_碰撞检测算法_GJK

自动驾驶运动规划学习:碰撞检测算法:GJK Gilbert–Johnson–Keerthi(GJK)算法,是一种用于检测两个凸集是否重叠的高效算法,并且可以得到两个凸集的最小距离.1.4.1 GJK算法原理1.4.1.1 闵可夫斯基差(Minkowski Difference)1.4.1.3 凸性 在二维空间中,如果一个凸集包含原点,…