Web扫雷(js)

    这两天刚看完Head First系列的JavaScript,就想先写出点什么来试探一下自己。刚合上那本书的晚上在图书馆就开始想,第二天就开始着手写代码,写了一整天,第三天早上再加了几个js功能,以及改了两个Bug,算是历时1天半写出来的成果~

    游戏链接:Mine Clearance(服务器是百度随便找的免费服务器,点进后请关掉广告)。

    源码在这里:扫雷源码 - Github

Web扫雷(js)Web扫雷(js)

    

    主要想到的难点在于:

  1. 检测输入的行列数自动给出雷数,并限制区域和雷数大小(雷数超过会卡死。。);
  2. 游戏区域的显示(对DOM节点的控制);
  3. 点击方块后的各种变化(踩雷,数字,0,判断获胜);
  4. 鼠标移过和移出方块的颜色变化(onmouseover和onmouseout);
  5. 点到数字为0区域时的扩展(深搜,没想到ACM学的在这里开始用上了)。


    以前只学过C语言,所以感觉对面向对象的想法还是没有真正理解,包装之类的想法更是不到位,还要接着看其他js书来补充完善。

    也感受到一些小技巧带来的便利。比如把我需要的几种色彩状态都分别用一个变量表示,放在代码的开头,因为下面多个地方会用到这些颜色,而强迫症导致我对颜色特别纠结,前前后后修改了好多次。一开始就总要找到每个地方一个个修改,用了变量之后就方便多,直接修改变量的值,也不怕漏掉。

    感觉这个就像C的#define,把常要修改的量提取出,一处修改处处改到


    关于扫雷的插小红旗的功能的话,我其实已经大致写出来了,但写出来后感觉代码一下子乱了很多,就干脆都去掉,只保留了旗帜的按钮来开玩笑。。但其实写出来还是不难的,以后再完善。


    总之完成后还是感觉特别欣喜,特别有成就感的,也更坚定了我往前端方向学习发展的想法。