练习:仿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

 可能有些东西错得很离谱,请多指教  :)

 

 

 

posted on 2010-08-03 17:04  biga  阅读(1031)  评论(1编辑  收藏  举报

导航