软件工程第二次个人作业

Posted on 2024-09-18 23:13  kentozaki  阅读(18)  评论(0编辑  收藏  举报
这个作业属于哪个课程 软件工程2024(福州大学-计算机与大数据学院)
这个作业要求在哪里 2024秋软件工程个人作业(第一次)
这个作业的目标 和AIGC合作实现游戏的基本功能
学号 102201342

1.项目展示

https://github.com/kentozakiki/kento

2.项目介绍

2.1项目名称:yummy

2.2界面设计

主菜单

关卡选择页面

游戏界面
三个关卡以游戏时间划分难度,分别是60s,50s,40s
进入游戏后卡片随机摆放,连续三个一致的图案才能进行消除,下方的卡槽最多只能放置6个图案。每个卡片都有多层,第一层被点击后下面一层会出现。

胜利界面

失败界面

3.游戏逻辑

  1. 初始化和设置常量:
    • 初始化Pygame库。
    • 定义游戏窗口的大小、图块大小、图块数量、图块间隔、最大卡槽数、帧率等常量。
    • 设置颜色常量。
  2. 加载资源:
    • 创建游戏窗口。
    • 加载并缩放食物图案图片,存储在patterns列表中。
    • 加载并缩放菜单背景和游戏板背景图片。
  3. 游戏逻辑初始化:
    • 定义添加新图块的add_new_tile函数。
    • 定义生成游戏板的generate_blocks函数,并生成初始的游戏板。
    • 初始化游戏状态变量,如game_active、time_left、start_time、game_result等。
  4. 绘制UI元素:
    • 定义绘制圆角矩形的draw_rounded_rect函数。
    • 定义绘制按钮的draw_button函数。
    • 定义绘制菜单、关卡选择界面、游戏板、倒计时、卡槽和结果界面的函数。
  5. 游戏主循环:
    • 在主循环中,处理事件(如退出游戏、鼠标点击等)。
    • 如果游戏未激活,显示菜单或关卡选择界面。
    • 如果游戏激活,更新游戏状态,绘制游戏板、卡槽和倒计时。
    • 检查并消除卡槽中三个一样的图案。
    • 如果游戏结束(胜利或失败),显示结果界面。
  6. 结束游戏:
    • 当用户选择退出游戏或关闭窗口时,结束游戏循环,并调用pygame.quit()来关闭Pygame库。
      整个游戏的流程是:初始化 -> 加载资源 -> 开始菜单 -> 选择关卡 -> 游戏进行 -> 游戏结束 -> 重新开始或退出。游戏的主要玩法是通过点击游戏板上的图块,将其添加到卡槽中,并尝试消除三个连续相同的图案,以清空游戏板。游戏有时间限制,如果时间耗尽或卡槽满则游戏失败。

4.AICG表格

子任务 借助何种AIGC技术 实现了什么功能 效果如何?
游戏框架 chatgpt 4omini 提供大框架的代码 效果很好
游戏图片 豆包AI 提供游戏的背景和消除块的图标 效果一般,ai有时候生成的图片不符合要求
按钮制作 chatgpt 4omini 帮助绘制按钮的圆角 效果很好,使按钮更漂亮
倒计时操作 chatgpt 4omini 提供倒计时代码的设计思路 效果一般,存在bug
卡槽中相同样式的检查和删除 chatgpt 4omini 提供实现代码 效果一般,存在bug,需要调整

AICG可以帮我思考框架以及实现方法,还可以帮助我提供有想法但自己无法实现的代码,虽然存在bug,但可以不断修改。

5.PSP表格

PSP 阶段 预估耗时(小时) 实际耗时(小时)
规划 1 1
需求分析 1 2
设计游戏 2 3
编写代码 10 12
测试与调试 1 2
撰写博客 1 1
总计 16 21

6.评价与分析

在这次开发小游戏的过程中,我初步了解了python语言,学会使用pygame结合AICG来制作简单的小游戏。在制作的过程中不尽人意,因为自己只是初学者,很多东西都要借助AICG实现,而AICG的理解能力有限,生成的代码也存在bug,不可能一步到位,需要不断调试。我还需继续学习。

Copyright © 2025 kentozaki
Powered by .NET 9.0 on Kubernetes