女朋友想玩扫雷了该怎么办?(二)

记录一下自己优化了一下扫雷的过程
v2.0 图形化界面,可自定义难度,增加了标记个数显示,笑脸重新开始,计时功能。

1.背景

  没过多久,她又蹦跳着过来说“我觉得…”
  我:“怎么了?”
  “我觉得这个游戏难度太低了”
  我:“那我把参数给你改一下,再给你一份?”
  “emmm…我想自己调”
  我:“emmm…”
  “而且也看不到自己多久通关的^b^?”
  我:”那我给你优化一下吧“
  “~OvO~ 好!”
  …
  旁边又响起了PVZ的bgm…

2.思考

在网上搜了搜,能够做出像win7以前扫雷的效果大致有两种途径:

  • 基于Qt
  • MFC应用

可我还有几十篇论文没看呢~~
没得时间学,该怎么办?
要不就偷个懒在v1的基础上改一改?
大胆的想法产生了!

3.优化

3.1调难度

  1. 思路:利用图片去模拟菜单栏
  2. 开敲:
    选择左上角一块区域作为一个选项区域,再该区域利用drawtext函数输出”难度选择“来作为 选项。
    点击到改区域时,再其下方绘制新的图片作为选项。
    这样就可以模拟出一个菜单栏了。
    女朋友想玩扫雷了该怎么办?(二)

丑嘛 。。。。不过是漂亮的不明显 RvR
根据鼠标点击区域的不同去修改对应的列数、行数以及地雷数。

3.2 笑脸重开

  1. 思路:一样的想法,通过获取鼠标信息来进行一系列操作,等同于之前的翻开什么的。

3.3标记个数以及计时

放到一起主要是他俩的绘制实现基本一样啦
找到的素材是一个长图上面有0-9 共10个数字,所以巧妙利用putimage()函数截取其中部分去绘制就好了。
计时功能:(应该多少都用过)

#include <time.h>
clock_t start=clock();
clock_t end=(clock()-start)/CLOCKS_PER_SEC;

3.4 遇到的问题

调整难度的时候,会出现部分图片,出现黑框仅显示部分。
解决方法:发现IMAGE这个对象,在初始化时的width以及height就定下来了,即使后面重新loadimage也不会改变。所以每次再重新load的时候需要调用Resize方法去重定义一下大小。

3.5 总结

  写博客的过程中,发现原来就是这么简单的东西,还花费了我接近一天时间,说白了还是自己太弱了。
  但是不去做,那会一直弱下去!越战越勇才够劲!
  
  到这里,估计扫雷就会告一段落了。希望等以后学的更多的时候,争取做个更帅气的扫雷v3.0,那时候再写一篇(三)吧。

V2.0的成果

女朋友想玩扫雷了该怎么办?(二)
女朋友想玩扫雷了该怎么办?(二)

5.后续

  她:“emmm… 我还想…"
  我:“那我…”
  .
  . .
  …
  
  
  
欢迎评论和指正!

上一篇:STM32获取系统时钟源和系统时钟分配情况


下一篇:Windows 计算程序运行时间(转)