软件工程个人作业二

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/SE2024
这个作业要求在哪里 2024秋软件工程个人作业(第二次) - 作业 - 软件工程2024 - 班级博客 - 博客园 (cnblogs.com)
这个作业的目标 熟悉并掌握使用AIGC开发小游戏,同时对小游戏开发有一个大致基础
学号 042201520

项目名称:chiikawa消除游戏

github项目代码及图片文件:D0ub1etake/D0ub1etake at chiikawa-game-v1.0 (github.com)

一、游戏前端设计:

  • 采用简约可爱的chiikawa中的动漫角色为画面主题,以浅色调为主

二、游戏演示与特色功能

游戏主菜单为开始游戏和退出游戏两个选项

点击开始游戏后会出现难度选项,不同难度下的时间限制和基础得分有所不同

点击相同图片即可消除,当同一位置的图片消除三次时,该位置的图片便不再生成,每消除一对图片加10分

游戏结束后显示总得分,并且提供再来一次和退出游戏的选项

三、使用的技术和特殊的算法

1.Pygame事件处理

for event in pygame.event.get():
    if event.type == pygame.QUIT:
        running = False
    elif event.type == pygame.MOUSEBUTTONDOWN:
        x, y = event.pos
        # 处理鼠标点击事件

2.随机图案选择

patterns = [pygame.image.load(f"pattern_{i}.jpg") for i in range(1, 10)]
patterns = [pygame.transform.scale(p, (TILE_SIZE, TILE_SIZE)) for p in patterns]
board[row][col] = random.choice(patterns)

3.检查匹配和消除算法(同一位置的图案最多消除三次)

def check_match():
    if len(selected) == 2:
        r1, c1 = selected[0]
        r2, c2 = selected[1]
        if board[r1][c1] == board[r2][c2] and eliminate_count[r1][c1] < 3 and eliminate_count[r2][c2] < 3:
            eliminate_count[r1][c1] += 1
            eliminate_count[r2][c2] += 1
            board[r1][c1] = None
            board[r2][c2] = None
            score += 10
            selected.clear()

4.游戏状态管理

if game_state == 'menu':
    # 显示菜单
elif game_state == 'playing':
    # 进行游戏
elif game_state == 'game_over':
    # 显示游戏结束界面

这些技术和算法共同构成了游戏的核心机制,使得游戏能够运行并提供玩家交互。

四、测试

点击开始游戏

选择难度

游戏过程

倒计时结束,跳转结束界面与最终得分

所有功能均正常运行,未发现bug

五、AIGC

AIGC表格:

学到的内容 内容描述 心得体会
项目概览与规划 对项目需求有一个大致的了解,同时规划好时间完成项目 对项目的难度稍微有些低估了,特别是在没有系统性学习pygame库的情况下,尽早开始项目,留足时间对项目进行完善和修改
调试和修改 不断调试修改代码直至符合需求 对代码的反复调试,发现许多功能看似简单实则难以实现,打铁还需自身硬
项目模型的选择 使用迭代和增量模型 先完成主要的消除功能,再在主要功能的基础上添加图案多层填充以及各种界面的设置、难度选择、时间限制和得分机制
AIGC的运用 结合自身代码能力与AI共同完成项目 60%代码由AI生成,我主要负责算法和需求的对接和编写,同时对图片的载入和显示大部分由我来完成,很好的运用了AIGC
项目的测试 反复游玩游戏直至未发现bug 通过反复游玩解决了大部分的bug,同时也明白了项目测试的重要性,只有自己甚至更多人去尝试才能让项目趋近于完善

六、PSP表格

PSP 预估耗时(min) 实际耗时(min)
项目需求了解与规划 30 41
选择合适的模型 20 12
项目准备工作 30 33
开发项目 180 300
调试和修改 60 120
项目测试与调整 60 50
复盘与总结 30 42
体会撰写 20 30

总结与体会:在追求功能多样化的时候忽略了对主要功能的调试,对时间的规划稍有不妥,同时对pygame库的不熟悉,以至于最后反复调试代码未能完成更多的附加项目,希望在之后能学习中能更加认真的对待每一次作业、补足自身缺陷和遗憾,同时也是第一次与AI共同挑战完成游戏制作,虽然成品比较一般,但是仍有不错的成就感,我在github中特意标明了版本号,希望在以后能够更新版本,直至我满意为止。

posted @ 2024-09-18 21:46  D0ub1etake  阅读(16)  评论(0编辑  收藏  举报