1
0
This commit is contained in:
2024-03-22 20:15:39 +08:00
parent 020e079524
commit 020228c0b8
13 changed files with 288 additions and 0 deletions

BIN
doc/11-1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
doc/121.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
doc/1221.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

BIN
doc/2-1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
doc/3.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

121
doc/hint.htm Normal file
View File

@@ -0,0 +1,121 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width">
<title>扫雷游戏提示 - Minesweeper Hint</title>
<style>
body{background:#f7f7f0;}
table{border-collapse:collapse;cursor:default;}
#foo{border-top:solid 1px #cccccc;padding-top:2rem;margin-top:6rem;width:90%;text-align:center}
</style>
<base target=_top>
</head>
<body>
<a id=back href=./>返回游戏</a>
<script>
if(document.referrer.length>0 && document.location.href.indexOf(document.referrer)==0){
document.getElementById("back").href="javascript:history.back(-1)";
}
</script>
<center>
<br><br>
<div style="text-align:left;width:90%">
<br>
<br>
<b>最常用的基础定式</b>
<br><br>
先假设待判的数字的周围没有已标记的雷(周围有雷的情况,请看后面的“减法原理”)。
<br><br>
(图中隐去了不相关的数字。蓝点为空,红点为雷。)
<br><br>
<br>
<b>一头定式</b>
<br><br>
“一头”是指数字的一侧(垂直的三个格子)为空或靠边框。
<br>
<br>
一、2在一头两个雷
<br>
<img src=2-1.jpg>(图中2靠右边框)
<br><br><br>
推论22定式22在一头则第三个格子不是雷。图片暂略
<br><br><br>
二、11定式11在一头则另一侧的三个格子无雷
<br>
<img src=11-1.jpg>(图中11左侧靠边框)
<br><br>
<img src=11-2.jpg>(图中11左侧已明确为空)
<br><br><br>
推论111定式三个1两个头则中间一个是雷其余两个不是雷。图片暂略
<br><br>
<br><br>
<b>任意位置定式</b>
<br><br>
三、12在任意位置1外侧没有雷2外侧有一个雷
<br>
<img src=12.jpg>
<br><br><br>
四、3在中间三个雷
<br>
<img src=3.jpg>
<br><br><br>
五、121在任何位置两个1有雷2无雷
<br>
<img src=121.jpg>
<br><br><br>
六、1221在任何位置两个2有雷1无雷
<br>
<img src=1221.jpg>
<br><br><br>
以上定式,方向左右横竖都一样。
<br><br><br>
<b>减法原理:</b>
<br><br>
如果数字的周围已标有地雷,则先将数字减去周围雷数,同时心中把这些雷变为空白,再应用定式。
<br><br>
下图实为11定式绿点可以打开
<br>
<img src=minus3.jpg>
<br>
<br>
<br>
下图3周围有两个雷3-2=12周围有一个雷2-1=1故简化为11模式画点的两个格子可以直接打开。
<br>
<img src=minus.jpg>
<br>
<br>
<br>
下图减完后是12定式红点为雷。
<br>
<img src=minus12.jpg>
<br>
<br>
<br>
下图根据图中位于上方的数字3椭圆圈住的两个未明格子有且只有一个雷则下面的3变为2适用12定式蓝点非雷红点为雷。
<br>
<img src="minus6.jpg">
<br><br><br>
<br>
</div>
<div style="margin-top:2rem;">
<span id="ver" style="display:none;"></span>
<br><br>
<hr width=90%>
<br>
&copy; <span id=year><script>document.getElementById("year").innerHTML=(new Date).getFullYear()</script></span> David Miller.<br>
<a href=https://www.davidmiller.top>主页</a> | <img src="https://static.davidmiller.top/image/common/beian.png" style="width:16px;"/><a href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=11010802035614" target="_blank">京公网安备 11010802035614号</a> | <a href="https://beian.miit.gov.cn" target="_blank">京ICP备2021023756号-1</a>
</div>
<br><br><br>
</center>
<script src="https://static.davidmiller.top/js/statuspage.js"></script>
</body>
</html>

BIN
doc/minus.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

BIN
doc/minus12.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

BIN
doc/minus3.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
doc/minus6.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

4
gfs.js Normal file
View File

@@ -0,0 +1,4 @@
var gif=[];gif[0]="data:img/gif;base64,R0lGODlhFQAVAJEAAAAAAP//AL29vQAAACH5BAAHAP8ALAAAAAAVABUAAAJAlI+py50AoUMwWCsduBy33XXAAoaiUlZY+nBq8MKUSY9HSbtzft4X/vu1MCLhcBXRoXgyBlD5AWYmgsiUis0yCgA7";gif[1]="data:img/gif;base64,R0lGODlhFQAVAJEAAAAAAP//AMDAwICAACH5BAAHAP8ALAAAAAAVABUAAAJHlI+py50AoUMwWCsduBy33XXAAoaiAkZqFYwUprZx+27xTR/swMoD/DKZXIaSkEMsXoytJQo58zyPOdIxSWJmJoIV9wueFAAAOw==";gif[2]="data:img/gif;base64,R0lGODlhFQAVAJEAAAAAAP//AMDAwAAAACH5BAAHAP8ALAAAAAAVABUAAAJDlI+py50AoUMwWCsduBy33XXAAm5gYHrPdWLs6p6parShSN36eNg6LbBFKhxejyV6wXwo4PGH+vyMDCKLqhlOttxuAQA7";
var gfs=[];for(var i=0;i<4;i++){gfs[i]=new Image();}gfs[0].src="data:img/gif;base64,R0lGODlhGQAZAJEAAP///8DAwICAgAAAACH5BAQUAP8ALAAAAAAZABkAAAJKhI+pFrH/GpwnCFGb3nxfzHQi92XjWYbnmAIrepkvGauzV7s3Deq71vrhekJgrtgIIpVFptD5g+6kN+osZflot9xPsgvufsPkSwEAOw==";gfs[1].src="data:img/gif;base64,R0lGODlhGQAZAKIAAP///8DAwICAgP8AAAAAAAAAAAAAAAAAACH5BAAHAP8ALAAAAAAZABkAAANsCLrcriG8OSO9KwiRo//gt3FQaIJjZw7DmZYh25ovEMtzWH+47G6qno8GhAWEOVTRBur9SMxbUrQ8BQiEpyqE1RpBXSLUGtZVI9i0Wu3ZodfwbMR9ja/bZ6s3qjeTNCOBgoMjc4SHhIaIixsJADs=";gfs[2].src="data:img/gif;base64,R0lGODlhGQAZAJEAAP///4CAgP8AAAAAACH5BAQUAP8ALAAAAAAZABkAAAJgjI+py70Co5wUmhrHwPFyzVlBCIYeBGqqik6nkK4s7I6TjFOvCvR42bGhND3AbyPZEX2/GuwILV2iUZGEOgtesUhthuu8VcNbqE74fOZoSTQFiHm9u3G3OCSQ4yv6/aQAADs=";gfs[3].src="data:img/gif;base64,R0lGODlhGQAZAJEAAP///76+voKCggAAACH5BAAHAP8ALAAAAAAZABkAAAJglI+py70Bo5wUmhrHwPFyzVlCCIYeBGqqik5nkK4s7I6TjFOvCvR42bGhND3AbyPZEX2/GuwILV2iUZGEOgtesUhthuu8VcNbqE74fOZoSTQFiHm9u3G3OBSQ4yv6/aQAADs=";
var gfd=[];for(var i=0;i<10;i++){gfd[i]=new Image();}gfd[0].src="data:img/gif;base64,R0lGODlhDQAXAJEAAP8AAIAAAAAAAAAAACH5BAQUAP8ALAAAAAANABcAAAI5lI8Jy3wgmoMRymoc0vqt/G1hB1JkZVKKaQSC60YI/NZPW8dpApZrqvKhfkIPkIi5jFANWUkS5CUKADs=";gfd[1].src="data:img/gif;base64,R0lGODlhDQAXAJEAAP8AAIAAAAAAAAAAACH5BAQUAP8ALAAAAAANABcAAAI3lI8psc33mDQAmilAdUnv1mkXeHhWuGGlOCpsxGXIpII0dYbjs358v0PlgDGiDfQKPj6cmkJRAAA7";gfd[2].src="data:img/gif;base64,R0lGODlhDQAXAJEAAP8AAIAAAAAAAAAAACH5BAQUAP8ALAAAAAANABcAAAI8lI8Jy3whmgMvNmsgRC4nSwmaslRkOHKl962QVIYgfFAwta3JBu6i0UHwgp6cztQT/jCSZWTmGN5kn08BADs=";gfd[3].src="data:img/gif;base64,R0lGODlhDQAXAJEAAP8AAIAAAAAAAAAAACH5BAQUAP8ALAAAAAANABcAAAI5lI8Jy3whmgMvNmsgRC4nSwmaslRkOHKl962QVIYgXMGUvJFebnRi6/qpcECU8OB7XYK2CNIm+3wKADs=";gfd[4].src="data:img/gif;base64,R0lGODlhDQAXAJEAAP8AAIAAAAAAAAAAACH5BAQUAP8ALAAAAAANABcAAAI8lI8psc0HDJsmCmDptdhCXIFIF3rlOYpkyplftXWgJ9cHU8+3skkNu0usNB/PA+gQin4a0YPyMEF/PF4BADs=";gfd[5].src="data:img/gif;base64,R0lGODlhDQAXAJEAAP8AAIAAAAAAAAAAACH5BAQUAP8ALAAAAAANABcAAAI5lI8Jy3wgmgtmxSZotYhql2gX1GUbWZ6heSWGCEkWLHNmHR0iwnmKvVOZgiAWr2cU3jBIHKpmc7kKADs=";gfd[6].src="data:img/gif;base64,R0lGODlhDQAXAJEAAP8AAIAAAAAAAAAAACH5BAQUAP8ALAAAAAANABcAAAI5lI8Jy3wgmgtmxSZotYhql2gX1GUbWZ6heSWGCEkWLHPRiJE2woFPvxupeEDU0HeM5XQ4B6oWdCEKADs=";gfd[7].src="data:img/gif;base64,R0lGODlhDQAXAJEAAP8AAIAAAAAAAAAAACH5BAQUAP8ALAAAAAANABcAAAI5lI8Jy3whmgMvNmsgRC4nSwmaslRkOHKl963buIUejLziHZnkfOpHl/qtcCoU0dDBpVy8WO0W/EgLADs=";gfd[8].src="data:img/gif;base64,R0lGODlhDQAXAIAAAP8AAAAAACH5BAQUAP8ALAAAAAANABcAAAI0jI8Jy3wQmoMRymoc0vqt/G1hB1JkZVKKiTaRJ4VvbIGJja6pWvbirvPBbJdRawKL3ZaGAgA7";gfd[9].src="data:img/gif;base64,R0lGODlhDQAXAJEAAP8AAIAAAAAAAAAAACH5BAQUAP8ALAAAAAANABcAAAI6lI8Jy3wgmoMRymoc0vqt/G1hB1JkZVKKiTaRJ4VC0E4HnWDzLqp4b6D9SrecRrjy1XS0mAUWy0kNBQA7";
var gfb=[];for(var i=0;i<9;i++){gfb[i]=new Image();}gfb[0].src="data:img/gif;base64,R0lGODlhGQAZAKIAAM7OzsbGxr6+vra2trKysqampoKCggAAACH5BAAHAP8ALAAAAAAZABkAAANHaLrc3mWQSau9xAwQuv9gGBhEIJxoqq4CabLw6sY0Otf0jcP6Lpc+HjD4exFTvWNrqDwlj09iNDj1VXdXXLa2zTGb3VgYlgAAOw==";gfb[1].src="data:img/gif;base64,R0lGODlhGQAZAJEAAMDAwICAgAAA/wAAACH5BAQUAP8ALAAAAAAZABkAAAJMjI+py70Ao5wUmorxzTxuLIRC9lFiSAbZOWqqybZVCcWoC8fpeu5gj/uJfBUWMXebvYpAJdJGoQFsTc8yQh1OpJ3otesEH8XbLzlSAAA7";gfb[2].src="data:img/gif;base64,R0lGODlhGQAZALMAAMDAwKu5q6i4qKW3pZy0nJaylpCwkIquioCAgACAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAHAP8ALAAAAAAZABkAAAReEMlJq704X8C7/yAnhSQ5lmh3cknrvi64wvT7zXV9I50N+ipeihXzrFACoEhYMtB2pSSsIGN6CrRBIHQEEGjb0pEmGOJch+Gyl3samW13kB0vztViKx665+r7a4AfEQA7";gfb[3].src="data:img/gif;base64,R0lGODlhGQAZAJEAAMDAwICAgP8AAAAAACH5BAQUAP8ALAAAAAAZABkAAAJOjI+py70Ao5wUmorxzTxuIITiOFIfiZbSmabT16le0EWyRdeg+OZTGzL5JECBsFI86m4AGIfpzEB9RVLPVuWtqFnjVZeJgmdjzbBMRk8KADs=";gfb[4].src="data:img/gif;base64,R0lGODlhGQAZAJEAAMDAwICAgAAAmQAAgCH5BAAHAP8ALAAAAAAZABkAAAJdjI+py70Ao5wUmorxzTzuOgjAQJLUN5FiaU5oVK7sGVAxxA50Gor47KrBVJLc7hfilY6jnHMp+TynwYjgisXmfB4hx1jtgKPezLjbaULJ6bOlnK684mG6HG5H5ykFADs=";gfb[5].src="data:img/gif;base64,R0lGODlhGQAZAJEAAMDAwICAgIAAAAAAACH5BAQUAP8ALAAAAAAZABkAAAJOjI+py70Ao5wUmorxzTxuIITiSE4fiY5mEKXu2oodDKmzx9bybeWgW6L9gDZcjLgz3oo9HhPw6TxPyGRTVxUIs1ohjxL9SsLia3nsO0MKADs=";gfb[6].src="data:img/gif;base64,R0lGODlhGQAZAJEAAMDAwICAgACAgAAAACH5BAQUAP8ALAAAAAAZABkAAAJTjI+py70Ao5wUmorxzTxuKITiKFIfiZbTmaJmEI3dCoPqbNWAjOdxS3r9gDyPjhiUsEKVos/GpDgBS0Hz9twhsdTjNmqUfIU9ja5MQ1c+6nBbUgAAOw==";gfb[7].src="data:img/gif;base64,R0lGODlhGQAZAJEAAL6+voKCggAAAAAAACH5BAAHAP8ALAAAAAAZABkAAAJMjI+py70Ao5wUmorxzTxuIITiSE4fiY5mEKXu2rUiHIOz9HElznY771NRcpQfrWI8TpJK2S1DtD2hPWeoRhTGojVgV1P9NsWWMBlSAAA7";gfb[8].src="data:img/gif;base64,R0lGODlhGQAZAIAAAMDAwICAgCH5BAQUAP8ALAAAAAAZABkAAAJKjI+py70Ao5wUmorxzTxu63xeMIYi8JnHlK4UwpLgOctjaUuwnqtvb/rxQsJaZXcz/k4tGsqVfPp4OCK1yih2OM7t1avJgWNjTAEAOw==";

161
index.html Normal file
View File

@@ -0,0 +1,161 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<meta name="viewport" content="initial-scale=1,maximum-scale=1, user-scalable=0">
<meta name="keywords" content="扫雷, Minesweeper">
<meta name="description" content="扫雷 - Minesweeper">
<title>扫雷 - Minesweeper</title>
<script src="gfs.js"></script>
<script src="ns6.06.js"></script>
<style>
body{margin:0;}
input{height:1.5rem;width:3.8rem;}
#face{
border:2px solid #808080;
border-left-color: #fff;
border-top-color: #fff;
}
#face:active{
border:2px solid #808080;
border-bottom:1px solid #808080;
border-right:1px solid #808080;
}
table{
border-collapse:collapse;
}
.pad{
border:2px solid #808080;
border-right-color: #fff;
border-bottom-color: #fff;
}
input[type=checkbox]{vertical-align:middle;height:1.19rem;width:1.5rem;}
.clk{
text-decoration: underline;
cursor: pointer;
color:blue;
}
</style>
<base target=_top>
</head>
<body bgcolor="#f7f7f0" onload="ifnight();start();setTimeout(ad,500);" >
<!--div style="text-align:right">
<a style="margin-top:0;" href="en.html">english</a>
</div-->
<br>
<center>
<div>
<b>扫雷 Minesweeper</b>
</div>
<div style="margin-top:0.8rem;">
<a class=clk onclick="_123(1)">基础</a>
&nbsp;
<a class=clk onclick="_123(2)">中级</a>
&nbsp;
<a class=clk onclick="_123(3)">专家</a>
&nbsp;
<a class=clk onclick="_123(4)">满屏</a>
&nbsp;
<a class=clk onclick="_123(5)">自定义</a>
</div>
<div id=custom style="display:none;margin-top:5">
<input id=hm type=number value=40>
<input id=vm type=number value=24>
<input id=mm type=number value=199>
<input type=button onclick="udf()" value="确定" >
</div>
<table style="margin-top:0.8rem;border-radius:6px;background:#cccccc">
<tr><td style="padding:9px;">
<table id=p42 class=pad style="height:34px">
<tr>
<td width=50%><canvas id="rm" height=23 width=39></canvas></td>
<td align=center onmouseup="_45()" style="padding:0 8 0 8"><img id="face">
<td width=50% align=right><canvas id="es" height=23 width=39></canvas></td>
</table>
<canvas id="paf" class="pad" style="margin-top:6px;" width=0 height=0></canvas>
<tr><td align=right>
</table>
<div style="margin-top:2rem;" >
<a id=ss href=doc/hint.htm >提示</a>
</div>
<div style="width:90%;text-align:left;margin-top:3rem;">
<span style="vertical-align:middle">自动标雷</span><input type=checkbox checked id=af onclick="saf()" >
<span style="float:right">
深色模式<input type="checkbox" id="bcolor" onclick="bcolor()"></span>
<br><br>
第一次点击不会是雷。格子里的数字表示它周围有几个雷。游戏目标是找出所有雷。“触雷”则输。点击笑脸图标重新开始。
<b>二选一留到最后,可任选</b>,需先清完其他方块。
<br><br>
<b>电脑:</b>鼠标右键点击原始方块,以小旗标记为雷,再点去除标记。标记的雷数和数字匹配时,点击数字(左右键均可)翻开周围的安全区域。鼠标左键点击无标记方块则直接打开。
<a id=setm class=clk onclick="mouse2()">设置</a>
<div id="_mouse" style="border:solid 1px;display:none;padding:0.5rem;">
鼠标起效时间点
<br>
<br>
<i>左键</i>
<br>
<br>
<input type=radio name="mp1" value="0" onclick="ssave('mp1',0);">按下时
<input type=radio name="mp1" value="1" onclick="ssave('mp1',1);">弹起时
<!--input type=radio name="mp1" value="2" onclick="ssave('mp1',2);">两次
<br-->
<br><br><br>
<i>右键</i>
<br><br>
<input type=radio name="mp2" value="0" onclick="ssave('mp2',0);">按下时
<input type=radio name="mp2" value="1" onclick="ssave('mp2',1);">弹起时
<!--input type=radio name="mp2" value="2" onclick="ssave('mp2',2);">两次
<br>
<br>
<br>
<br>
<br>
<small>“两次”:点下和松开在不同的格子上。</small-->
<br><br>
</div>
<br><br>
<b>手机或平板:</b>在触屏上点击方块即标记为雷,再点去除标记。标记的雷数和数字匹配时,点击数字翻开周围的安全区域。长按方块直接打开。(可设置为点击直接打开;或点击三次打开)
<a id=sett class=clk onclick="touch2()">设置</a>
<div id="_touch" style="border:solid 1px;display:none;padding:0.5rem;">
<i>触击效果</i>
<br><br>
<input type=radio name="tpn" value="0" checked onclick="ssave('tpn',0);smore(0);">标记
<input type=radio name="tpn" value="1" onclick="ssave('tpn',1);smore(1);">直开
<br><br><br>
<div id=thint style="display:none;">
<i>直开模式下的标记方法</i>
<br><br>
长按
</div>
<div id=topen style="display:none;">
<i>标记模式下的打开方法</i>
<br><br>
<input type=radio name="opn" value="0" checked onclick="ssave('opn',0)">长按
<input type=radio name="opn" value="1" onclick="ssave('opn',1)">快点三次
</div>
<br><br>
</div>
</center>
<center>
<div id=ad style="margin-top:3rem;width:90%">
<div style="margin-top:2rem;">
<span id="ver" style="display:none;"></span>
<br><br>
<hr width=90%>
<br>
&copy; <span id=year><script>document.getElementById("year").innerHTML=(new Date).getFullYear()</script></span> David Miller.<br>
<a href=https://www.davidmiller.top>主页</a> | <img src="https://static.davidmiller.top/image/common/beian.png" style="width:16px;"/><a href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=11010802035614" target="_blank">京公网安备 11010802035614号</a> | <a href="https://beian.miit.gov.cn" target="_blank">京ICP备2021023756号-1</a>
</div>
<br><br><br>
</center>
<script src="https://static.davidmiller.top/js/statuspage.js"></script>
</body>
</html>

2
ns6.06.js Normal file

File diff suppressed because one or more lines are too long