讲一下实现的逻辑 主要有这几个功能
1.开始游戏
生成地图,主要问题在于初始点击位置一圈内不能生成雷
所以是先点击再生成地图,而不是生成好地图等待点击开始游戏
2.游戏中
左右键单双击,打开/标记以及重点设计了如何连锁打开格子
打开空白格子用层次遍历+队列,以创造出打开的视觉效果
每一层被打开后重新绘制,并刷新pictureBox
3.游戏结束
或者失败,或者成功
失败需要标识出错误的地方,用红×
成功则是显示提示标语
反复在同一个bitmap上绘画
每一个方块所对的区域是确定的
根据kmap的byte值绘图
kmap的三种状态opened,marked,unknown
如果是opened,会继续根据map绘制数字或者地雷
如果状态kmap更改,会先在umap中“申请”,
这样做是减少了重复绘制,(之后考虑改成队列式,而不是遍历查询)