# Zhed **Repository Path**: xq114/Zhed ## Basic Information - **Project Name**: Zhed - **Description**: PKU计算概论2018-2019项目 - **Primary Language**: C++ - **License**: Apache-2.0 - **Default Branch**: dev - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2018-11-17 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README *2019/1/16更新* 大家好,这里重构后的代码Zhed2.0上线了。 - 新的ui: ![主界面](https://i.loli.net/2019/01/16/5c3f36935f7db.png) ![游戏界面](https://i.loli.net/2019/01/16/5c3f3696d0c8e.png) - 新的接口: - 生成器 - 动画 - 新的数据交换格式:json 问题很大,明天就要交了,大家加油干争取尽快解决 *2019/1/2更新* 已合并代码:gzz **注意**:要提交修改,请在本机执行git fetch更新代码后进行修改,在本地运行~~看起来~~无bug后git commit再git push到对应issue的分支,提交pull request。测试环境有问题(编译/运行)的话再到群里讨论。 下阶段任务: 1. 高分屏支持,见[参考文章1](https://blog.csdn.net/hsshh1988/article/details/77326834) 2. 修改界面,增加动画效果,见[参考文章2](https://blog.csdn.net/liang19890820/article/details/51850579) 可选任务(如果想拿高分80+): 1. 算法方向——使用dss实现更高级的Hint算法,使用算法自动生成格子,实现一个成熟的程序,还可以通过屏幕识别来写独立的外挂 ![就像这样](https://i.loli.net/2019/01/02/5c2cd5aa0eeff.png) 2. 可玩性方向——添加多种游戏模式(计时/积分/创作等等),实现关卡解锁,实现OpenGLView显卡加速,优化动画效果,实现背景变色,优化视觉效果等 *2018/12/26更新* 大家好。Zhed 1.3.1 上线了. **version 1.3.1 说明** 此版本做了如下改动: - 修复了会相互覆盖的bug - 增加了游戏结束后直接进入下一关的通道 - 增加了一些接口:hint(),优化了代码逻辑 - 在文件夹中增加了clean.bat可以快速清除存档 如果在试玩中发现了新的bug,或者对游戏可玩性的提升有好的设想,请大家在Issue中多多交流,协助改善。 **version 1.2 说明** 此版本做了如下改动: - 优化了游戏逻辑 **version 1.1 说明** 此版本做了如下改动: - 修复了不能完全退出的bug - 优化了ui效果 - 增加了存档功能 已知的问题有: - 图片不够清晰 - 运行的时候比较卡 *2018/12/23更新* 大家好。Zhed 1.0 上线了,你从未体验过的船新版本,只需要三分钟,... 此版本为首个图形界面版本,编译后可以初步运行,如果不想编译想要直接运行最终程序(顺便找bug),请**打开“附件”,下载*.zip到本地,解压后运行**其中Zhed.exe文件。 **version 1.0 说明** 游戏玩法: 点击上面有数字的格子以选中它,再点击一次此格取消选中。选中格子后点击它上/下/左/右的格子,展开它。游戏目标是覆盖住目标格子(十分显眼)。 游戏截图: ![游戏界面截图1](https://i.loli.net/2018/12/23/5c1f5093325a7.png) ![游戏界面截图2](https://i.loli.net/2018/12/23/5c1f5097d3115.png) 此版本非常不完善!目前已知的bug有: - 在游戏界面按Quit时无法正确退出整个程序 急需改进的地方有: - 界面不够漂亮,分辨率过低,一股浓浓像素风 - 界面元素不够丰富,没有音效/动画以及用户交互 - 关卡较少,缺乏足够的素材,背景比较单调 - 游戏可玩性(互动,设置,难度分级等)不够 如果在试玩中发现了新的bug,或者对游戏可玩性的提升有好的设想,请大家在Issue中多多交流,协助改善。 **编译环境说明** 开发环境基于Windows 10平台下Visual Studio 2017 + Qt 5.9.7 (msvc2017_x64),编译源码可以使用 Code::Blocks/Qt Creator(安装自带)/命令行cmd.exe + Qt 5.9.7 (mingw),也可以直接使用开发环境。 ![2018年代码编辑器热度排行榜](https://i.loli.net/2018/12/23/5c1f4e41f34e6.jpg) 编译步骤: 1. 如果你使用Visual Studio + Qt (msvc),请先配置Qt开发环境(安装Qt Tools插件,配置插件路径),然后打开Zhed.sln,build即可 2. 如果你使用Qt Creator + Qt (mingw),在Qt Creator中打开Zhed.pro,按绿色三角形按钮编译即可 3. 如果你使用 cmd/powershell + Qt (mingw),先配置好环境变量,然后在命令行中定位到当前路径,输入以下指令: ``` qmake Zhed.pro mingw32-make release cd release windeployqt Zhed.exe ``` 然后双击运行Zhed.exe。其中,mingw32-make指令可以用Code::Blocks代替。这一编译过程比较复杂,推荐使用前两种。 **源代码说明** 三个类代表三个窗口。*.ui文件是设计文件,可以使用Qt Designer打开。微信群里交流 ## Roadmap ### 软件架构 使用C++开发 #### 游戏层设计: - 初始界面: - 10关连续,"开始游戏" "继续游戏" - 10关之后: - 剧情模式:(带蜜汁剧情?)挑战各个stage,完成通关成就 - 积分模式:AI随机生成不同难度的关卡(一般不是太难),为其评估最长时间;根据通关速度、Undo次数等计算得到积分;三次规定时间内未通过则Game Over,积分计入积分榜,显示前10名 - 创造模式:自己设计关卡,向基友们发布;导入基友设计的关卡;录制操作步骤(解答);给基友点赞(打得不错。)等。 - 界面:(奖杯) + 开始游戏 + 积分榜 + 我的设计 + 设置 - 额外功能: - 风格——亮?暗? - 商店(兑换复活卡、双倍积分卡、提示次数等) - 联机游戏,云端同步 #### UI层设计: - 控制中心GameZhed - 启动界面StartScene - 背景(动态背景?) - BigButtons:开始游戏 成就(大♂奖杯) 积分榜 我的设计 - SmallButtons:商店 设置 关于 - 游戏界面GameScene : StoryGameScene ScoreGameScene CreateGameScene - 背景 - 游戏格子:生成 空格Empty 占据格Active(i) 目标格Target - Event:MouseClickEvent MousePressEvent 等 - Button: Restart Undo Save Quit - 其它元素:剧情Story 计时器Timer 等等 - 创造算法与AI(待定) - 其它一些界面 - 成就Achievements - 积分榜Rank - 设计Creation - 设置Settings - 关于About - 商店Shop #### 算法层设计 - 开始游戏PlainGame & 剧情模式StoryMode - 积分模式RankMode - 创造模式CreateMode