15158846557 在线咨询 在线咨询
15158846557 在线咨询
所在位置: 首页 > 营销资讯 > 网站运营 > 扫雷网页版

扫雷网页版

时间:2023-05-12 16:42:01 | 来源:网站运营

时间:2023-05-12 16:42:01 来源:网站运营

扫雷网页版:

扫雷游戏地址:扫雷 Minesweeper

移动端地址:手机扫雷

游戏特性:


更新:2021-3-20

将数字提示由文字改为图标,以消除不同浏览器之间的显示差异。

更新:2021-2-10

增加问号开关。

更新:2020-12-17

增加自定义模式。

改善了双键操作时的动画效果,提升操作手感。

更新:2020-9-14

修复了游戏结束判定。

更新:2020-5-11

1、图标绘制由CSS改为图片,以求更好的性能。

2、更细致的模拟 windows7 扫雷的一些行为,比如松开触发扫雷动作,如果左键按下后,右键随后也按下,会取消扫雷动作。双键按下划过图形区域,也有动画(不知道这有什么用),且无论哪个先松开,都不会触发动作。双键排除时红色的X号会闪两下(感觉这东西应该用 CSS3 动画实现,可我搞不定,还是用了setinterval 函数)。

3、从本站看到非常牛逼的 Knuth-Durstenfeld Shuffle 洗牌算法,也把它用上了,不过随机函数还是系统自带的,所以应该没啥实质的卵用。好处是看起来更合理。因为第一次点击布雷,除了第一步不能是雷以外,为了有更好的开局,周围 8 个也不能是雷,所以在生成雷的时候,会有一个最多 9 个坐标的排除列表。用原来的算法,感觉冲撞会很频繁,虽然以电脑的速度,一定能完成布雷,但不合理。


后记:一些实现细节

游戏的第一步不会是雷,实现原理就是游戏的布雷是从第一步点击开始的。还有一点,就是不但第一步不会是雷,而且也不会是数字,因为如果点到数字,对游戏的开局没有太大帮助。实现原理就是在第一步的基础上,通过第一个坐标,再获取周围最多8个坐标,然后在布雷的时候,将这最多9个坐标全部排除。

双键操作我觉得是游戏最麻烦的地方,游戏的双键操作并不是真的同时点击,而是左右任何一个按键按下去的情况下,再按下另一个,才会激活双键功能。我最初很困惑如何实现这个双键功能,甚至写了一个通过时间间隔判定是否是双键的功能。但后来发现,这样做虽然也能玩,但和 windows7 自带的扫雷动作是不一样的。最后一番琢磨,搞出来的这个基本和 windows7 扫雷一摸一样。另外也极力模拟一些细节,比如在大块的区域按下双键,无论任何顺序松开按键,都不会触发动作。同时,如果按下双键在任意区域移动,也会有连续的动画。

布雷算法最初用的就是随机生成横、竖坐标的随机数,如果重复则重新了,直到完成。这样做虽然能用,但显然不合理,有时候可能冲撞太多。后来看了大名鼎鼎的 Knuth 洗牌算法,惊呼牛逼,赶紧用上。具体实现就是整两个数组,一个是雷,一个是空白格子,空白格子再减去排除的格子数量,然后将其用洗牌算法打乱,然后再依次填充到一个映射布局的二维数组里(实际用的对象)。

清除一片的算法就是无脑遍历,每次清除一个格子的周围,循环到没有格子为止。感觉更正确的做法似乎应该用递归,但当时没想出来,而现在感觉没有必要再修改。

根据我对 Js 的理解,计时器功能应该是不精确的。

关键词:扫雷

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭