练习:仿Windows扫雷游戏
分为控制台下的模拟打印雷区 和 Winform程序。
庆幸的是,中途本想去网上找算法参考的,还是忍住了,勉勉强强竟然给挤出来了。
哈,还是值得庆幸下,纯属原创。
《MineSweeping 改前》 和 《MineSweeping 改后》两个解决方案(应该叫解决方案吧- -#)中只有MineSweepingXP这个项目有修改,区别是改前把所有扫雷的操作判断全写在“雷”的控件里,自己都看不下去,还是折腾下,尝试着提取出来了,不然在最底层的对象里不断去调用父控件,完全摆脱掉面向对象的概念,一直这样,自己都快疯了。。。。。改掉后,雷区直接Enable = false掉,然后通过坐标去判断雷的。代码还是有点乱,譬如"this"。。。
实现了大部分功能,性能却很低,也有许多bug,后面Winform的算法和控制台的算法好像是不一样的,控制台的不重要,MineSweeping工程里是最早做的,自己画的图,雷也很Big,很雷人。后面干脆重新做个1:1仿造的,把Win扫雷的图全部手动截下来,自己做成素材,电子钟则是在flash cs3里画,然后导出的。
GDI。。。?我不懂 - -# 。好吧,只能贴图。
功能上有些没实现,胜利的条件也缺少几种判断,也没往下做了,先多学些基础先。。。
Console 输出情况
Winform 与windows自带的扫雷相似度90% :)
比起之前的版本清晰了不少,更加合理些
功能:
开局,初级,中级,高级,自定义,英雄榜
初级,中级,高级破记录则会登英雄榜
记录上一次关闭时的游戏设置
(以上功能和系统自带的扫雷是一样的)
(数据是用XML文件记录的,不过扩展名被我换成dll了。在Debug下)
扫雷的功能应该是全部有了,缺少的可能有:
1.胜利条件没有判断全(如:剩余未打开的雷格子全是雷时,应为胜利)
2.左右键同时按下移动鼠标,这里的算法太卡,移动快会有拖影,还有就是松开鼠标时,不应该再响应鼠标UP事件
3.在棋子旁边,左右键双击有个翻开雷的功能,这个功能是朋友说的,玩不来 - - 。
4.左右键 很多小bug...
5. ...
本人初学,未接触过算法,在补最基础的知识ing
可能有些东西错得很离谱,请多指教 :)