重构之前的版本,基本功能都实现了,但是代码可阅读性较重构后的版本较差,类与类之间的分工不明确,重复代码较多。
想添加一个网络模块,实现网络对战的功能。但是之前的代码只是完成了功能,没有进行重构,所以阅读了《重构:改善既有代码的设计》这本书,对代码进行了重构。
按照书中的说法,重构的目的主要是为了去掉代码中的“坏味道”,使以后对项目的扩展改动的代码尽可能的少,所谓的坏味道指的是:
- 重复代码
- 过长函数
- 过大的类
- ..............
主要针对代码中的这些“坏味道”进行了修改,修改的主要内容如下:
- 将mainwindow类中,本该属于maze类和Dungeon类实现的函数,放到正确的位置,通过全局变量保持之前的逻辑联系
- 对于控件对象的创建存在很多重复代码,运用简单工厂模式,进行了优化,分离出一个Factory类
- 对Dungeon类中的音效功能,抽象出一个Sound类
- 对存在大量重复代码的keyPressEvent,进行了优化,其它重复代码也进行了优化
-
将地牢模式单独抽离出来
- 对贴图资源重新编号,方便每层地牢的随机生成
- 修改了战斗音乐
- 实现了每层地牢资源的随机生成
- 加入了战争迷雾机制
- 加入了破墙镐、下楼器,实现了相应的机制
- 添加了死亡机制,添加了暂停菜单
- 加入联网登录模块
- 基于muduo网络库实现了注册、登录相关后台逻辑
- 实现了游戏房间的创建
- 编写了游戏房间列表界面
- 实现了游戏房间内功能,包括进入,离开提示,创建,删除房间
- 实现了房间内聊天室功能
- 修复了一些BUG
- 实现了房间成员准备、房主开始游戏功能
- 实现了服务器随机生成地图发送给房间成员
- 实现了遭遇战功能,及遭遇战地图与探索地图之间的切换
- 实现了双方玩家间的同屏战斗
- 添加静音功能
- 修复Mysql连接超时问题带来的程序崩溃问题
- 修复多人进入同一房间的BUG
- 修复内存泄漏及服务器易崩溃问题,可以实现上万级房间数的并发PK
- 修复了一些BUG