# 植物大战僵尸大作业 **Repository Path**: programming-xiaoxia/zhiwudahzhanjiangshi ## Basic Information - **Project Name**: 植物大战僵尸大作业 - **Description**: 南开大学大一大作业,植物大战僵尸破解版,比较简陋,实现了向日葵,一些植物与僵尸,本来还准备加上一些坤坤和马保国老师的元素,但时间来不及了,准备暑假找时间更新一下。其中更新主要在植物与僵尸的添加,其他的派生类文件变化并不大,所以主要提交植物与僵尸的迭代,即plant1代表第一代,plant2代表第二代,僵尸同植物。其中第一代是创建了地图,第二代增添了太阳花,第三代增添了豌豆射手以此类推至第十代 - **Primary Language**: C++ - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 1 - **Created**: 2023-05-09 - **Last Updated**: 2025-09-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 南开大学2023年c++大作业 1作业题目: 植物大战僵尸破解版; 2 开发软件 Qt6.5 3课题要求 使用C++语言完成一个图形化的小程序 4主要流程: 共有10代版本 灵感来源: 植物大战僵尸一些关卡过于的难,导致无法通关,于是发奋图强作了一个来玩 第一代为创建地图, 第二代为添加太阳花, 第三代添加了豌豆射手 第四代为双发豌豆射手, 第五代为坚果, 第六代添加了高坚果 第七代添加了普通僵尸 第八代添加了路障僵尸, 第九代添加了读报僵尸 最后一代为添加了小车及铲子。 5主要的结构及思路 用object类继承QObject类和QGraphicsltem类,用QGraphicsScene来代替棋盘。 通过类的继承与派生实现对僵尸和植物的定义。 在僵尸移动,吃植物,死亡时分别播放不同的gif动态图。 植物类似。 利用每个模块的scene()函数进行攻击控制,从而让每一个植物和每一个僵尸具有独立的逻辑。 6单元测试(1代表成功,0代表失败) 对象 种植/生成 攻击 死亡 向日葵 1 1 1 豌豆射手 1 1 1 双发豌豆 1 1 1 坚果 1 1 1 高坚果 1 1 1 普通僵尸 1 1 1 读报僵尸 1 1 1 路障僵尸 1 1 1 偶尔会因为野指针出现卡顿,程序崩溃 七难点 1学习完qt知识后无法灵活应用,感觉会了又感觉什么都不会 2游戏的思路以及框架的选择 3 代码调试,一些函数的学习,都是英文文档,学习比较困难 本大作业地图上界面交互的部分代码学自gitee与GitHub。 八收获 加强对C++基础知识的理解,使用起来也更加得心应手。