用jQuery写了个扫雷
学了这么久JavaScript,上周终于开始学习jQuery了,把《锋利的jQuery》敲了一遍,基本的jQuery语法大概也掌握了,为了巩固一下,就用jQuery写了个扫雷。
说到这个扫雷,写完之后觉得其实挺简单的,只要把当中的逻辑都理清楚了,就没啥大问题了。
先上个demo : https://tagea886.github.io/mine/mine.html
源码 : https://github.com/tagea886/tagea886.github.io/tree/master/mine
界面需求: 级别、重新开始、计时、雷数、雷区 初始化: 布雷、计时 开始时:左键:点开格子; 右键: 已开格子:自动开格子; 未开格子:第一次:插旗;第二次:问号;第三次:复原; 插旗子时:雷数-1 ; 问号:雷数复原; 结束条件:1、点到雷 2、旗子数 + 剩余格子数 = 总雷数;
结束后:停止计时、输出结果(输赢)、禁止再开雷等;
明确了这些之后,我觉得写起来就挺好写了。
记录一下写这个的坑吧。。
我自己写的时候以鼠标左右键为对象来写,这样写我觉得比较容易出错的地方是:右键自动开格子格子的时候会调用左键的函数,这个时候左键就要加上判断该格是否有旗子,而且旗子下面是否是雷。而且这种写法会有一些代码是重复的。如果把对象换成是格子的话,感觉会简洁一点,不过因为懒,我就先不重写了嘻嘻~等到学一点后端的时候,帮这个扫雷加上注册、排行榜等功能的时候再试着重写一遍吧~
第二个就是加定时器的问题。加定时器一定要加在初始化(status = 1)的时候,加在其他地方很容易会同时开几个定时器。然后初始化之前要清空定时器。
其他就感觉没啥大问题了,至少逻辑上没啥问题。。不过代码还是写的很啰嗦,还有很大的优化空间啊。。

浙公网安备 33010602011771号