MineSweeper Run 是一款基于 Windows 的扫雷程序,提供控制台与图形界面窗口两种形态。 它默认生成可解地图,内置一套完整的局面求解器, 把设置、历史、录像、自制地图等全部功能压缩进一个不到 250 KB 的文件里。
MineSweeper Run 是一款基于 Windows 控制台的扫雷游戏程序,Window 版本可在图形界面窗口进行游戏。
! / Tab 实时求解、连续生成地图并不断求解(压榨 CPU)Ctrl+滚轮 调整显示大小,Ctrl+左键 拖动调整地图位置,适应个性需求和大地图移动视角N 重新生成地图,以及控制台鼠标模式下的其他操作逻辑可在 GitHub 等处下载游戏的可执行文件,文件名为 MineSweeper Run + 版本号.exe,点击此文件即可启动游戏程序。
该程序面向 Windows 64 位,Windows 32 位用户需下载 32bit 版本,两版本功能、特性、源代码无任何区别。
Window 版(或早期的 WindowTest 版)至少需 Windows Vista 系统,控制台版(无 Window 后缀)则无此要求。
如想尝试在 Windows XP 系统上运行本程序 Window 版,可联系作者索取 Window 32bit XP 版本。
程序可产生以 minesweeper- 开头的缓存文件,删除均不会影响程序正常启动,但不恰当的修改可能会影响程序正常运行。
目前版本缓存文件至多有以下 5 个:
minesweeper-settings.txtminesweeper-lastmap.txtminesweeper-records.csv(旧版后缀为 .txt)MSR Records Updater。minesweeper-maps.txtminesweeper-operations 文件夹旧版本游戏更新为新版本时,仅需替换可执行文件,缓存文件一般保持兼容性,若部分设置恢复到默认状态,重新设置并保存即可。
程序可多开,各程序独立运行,仅在必要时读写文件,信息不同步,可能造成丢失,不建议多开。
双击或右键打开游戏的可执行文件或快捷方式,即可启动游戏程序。
游戏程序一般在控制台主机中运行,在 win11 系统可能为终端,右击标题栏,点击属性或设置即可修改默认终端应用程序。
若 win11 用户在游玩顶级难度时,出现全屏仍不足以显示地图的局面,一般更换默认终端应用程序为控制台主机即可解决。
win11 终端也可在默认值-外观更改行高、字号、字体等,具体需要自己调整,建议采用更换为控制台主机的方法。
游戏程序的显示内容本质为文本,可按 Ctrl+滚轮 调整字体大小,若空间不足会自动换行,可拉伸窗口或全屏避免换行,使程序正常显示。
有的情况中文字体不能正常显示,此时需要更换系统编码为 GBK:在设置-语言-管理语言设置-更改系统区域设置,取消勾选 Beta版:使用Unicode UTF-8提供全球语言支持,重启即可。如系统编码 UTF-8 有其他用处,可联系作者索取 UTF-8 版本。
进入程序可在顶部看到多个方括号包围,圆括号数字开头的文本,此为“虚拟按钮”,可用鼠标点击或按键盘对应数字按下按钮。
顶部的横排虚拟按钮称为“控制栏”,控制栏在游戏、设置等扫雷核心场景均存在,在顶级难度游戏时隐藏。
所有可用鼠标点击的虚拟按钮均有悬浮高亮。
部分场景如调试选项、地图求解功能不可用鼠标操作,必须使用键盘操作,阅读提示即可。
点击新游戏即可进入游戏,此时可选择任意起始点,选择后程序生成地图,生成结束游戏开始计时。
游戏地图采用 % 表示未翻开且未标记的方块,# 表示标记的方块,数字表示周围 8 格存在雷的数量,其中 0 显示为空格。
游戏默认采用鼠标点击进行操作,可通过鼠标左键 % 和 # 翻开该方块,右键进行标记或取消标记。
“标记”在某些扫雷程序也称“插旗”,程序默认认为,玩家认为标记位置为雷。
当玩家执行标记操作时,剩余雷数将会更新。
竞速玩家常选择无标记、仅使用翻开操作完成游戏,此时剩余雷数不会更新。
当玩家翻开所有非雷方块时,即可胜利,若翻开雷,则立即结束游戏。
另外,标记所有雷,且无任何多余标记时,也可胜利。
游戏结束后,程序显示全部地图,其中 * 表示未标记的雷,@ 表示被翻开的雷,数字+# 表示错误标记,其中错误标记 0 显示为 _#。
游戏结束后,可点击新游戏再来一局,或进行其他控制栏操作。
游戏时,若点击新游戏,则立即结束当前游戏,再次点击即可再来一局。
游戏时,若关闭程序,下次启动时则直接回到该局游戏的先前状态。
鼠标模式游戏时,点击 [鼠标左键:翻开/右键:标记] 可切换左右键功能。
游戏时,按 Q 进入问号模式,此时翻开/标记操作会转换为翻开问号/标记问号,再次按 Q 退出问号模式,也可按 E 执行标记问号并退出。
对于高级 120 秒以上的大部分扫雷玩家,如觉得按键过于轻浮,可在调试选项内关闭快速显示。
对于高级 90 秒以下的熟练扫雷玩家,如觉得按键不跟手,可在调试选项内自行调整刷新周期,或使用 Window 版,注意确保快速显示的启用。
对于大部分玩家都建议使用并适应默认的设置。
点击设置,即可进入设置页面,你可以在这里进行很多方面的设置。
如需更改游戏难度,点击设置游戏难度即可选择难度。
如需生成可解地图,点击设置地图生成校验,随后点击可解地图即可。
当选择难以生成的难度时,地图生成校验会自动降低,手动调整可强制执行生成,但可能需要无限等待,例如全图满雷难度且起始点必非雷。
当较高难度生成可解地图时,如果很快结束游戏,可能出现重复地图。
当设置较为严苛的筛选条件生成筛选地图时,可能出现重复地图,或需要较长时间的等待。
设置完成后,如需下次启动游戏时仍保持设置,需点击返回并保存,若直接点击控制栏或关闭程序,设置则不会在下次启动程序时保持。
部分设置存在下一级页面,此时点击设置页面任意其他按钮即可不作修改关闭下一级页面。
可进入地图求解功能页面查看详细使用说明。
若键盘操作无效,可能是启用了中文输入法,请切换到英文输入法尝试。
在该页面,或键盘模式的游戏页面,存在控制台的“快速编辑”特性。
若点击页面,标题栏左上角会显示 选择 二字,此时右键鼠标会复制选择的内容到剪贴板,若无 选择 二字,右键会将剪贴板中的内容粘贴。
若需复制地图粘贴入此处,请勿使 选择 二字出现,否则剪贴板内容会被代替。
在 Window 版,也可按 ! / Tab 实时求解当前局面,若需复制控制台的文本地图,右击标题栏,点击属性或设置,勾选快速编辑模式即可。
进入设置页面并进入调试选项,输入 9 回车,再输入 1 回车,点击返回并保存,即可启用保存连续(未暂停或重启程序)且有效记录的操作记录。
在主页按 V,将操作记录文件拖入并回车,即可播放。
如果不熟悉以上操作,可自行录屏。
可解地图,指起始点必为空,并可通过不断计算当前局面解并执行,直至取得胜利的随机扫雷地图。
其局面解包含 4 种情况:
数对之二可能在数对之一的 5×5 共 24 个方块的范围内,其中上下左右 4 个方块称为常形逻辑解,剩余 20 个方块称为异形逻辑解。
对地图所有未知方块枚举当前所有符合数字和剩余雷数的可能性,并对所有可能性综合分析得到剩余雷数范围,从而得到全部未知方块的雷率,如果雷率最低的一个或多个方块,在实际地图中都非雷,则翻开这些未知方块。
雷率解是不确定解,但结合实际地图又是确定解;Run 1.4-4.10 版本可解地图均不排除雷率解,Run 4.11 开始排除雷率解。
可解地图按生成方式分为筛选式和调整式,筛选式适用于低密度、小地图难度,调整式适用于高密度、大地图难度。
Run 1.4-5.22 版本仅存在筛选式可解地图生成算法,Run 5.23 开始试行引入调整式。
筛选式算法性能高效,从 Run 5.22 开始,在默认地图求解器设置下,所有预设难度(包括顶级)都可在 0.1 秒以内生成。
调整式算法当前仅供体验,不支持操作记录(录像)、中断(暂停或重启程序)的情况,且仅供自定义难度使用。
在设置页面进入调试选项,输入 2 回车,再输入 6 回车,点击返回并保存,即可体验调整式可解地图。
两个数字,如果它们的控制区存在交界,则称为数对。
其中任意数字称为数对之一,另一数字称为数对之二。
数对共同控制的区域,称为共享区,数对之一控制区与共享区之差,称为数对之一独占区,数对之二控制区与共享区之差,称为数对之二独占区。
逻辑推理的数对实质是,数对之一与数对之二之差,等于其独占区雷数差。基于“任意未知区域雷数至少为 0,至多全雷”,当仅有一种可能时,实现逻辑推理。
约定数对之一独占区被操作,那数对之二就是执行对数对之一独占区操作的条件。
若数对之一和数对之二互换,不会改变某些区域存在解的事实,只会让数对整体转换为另一类数对。
@(翻开),即为 1、3、5、7 类数对;#(标记),即为 2、4、6、8 类数对。78 类数对,实际是所有数对的通式,然而实战中一般不现场演算,熟练玩家可瞬间对数对定义的逻辑推理进行判断并操作。
大多数逻辑推理为 1-5 类数对,1、3 类尤为常见。
对于 1234 类数对,可通过数对之二确定共享区雷数,从而确定数对之一独占区雷数,确定操作。也被称为“有且仅有”论。
对于 5678 类数对,则不存在直观的判断思路过程,常引用枚举判断进行证明,而此类解释在实战中可用性极低,必须采用“数对”论或类似的“减法公式”、“双集合模型”。
对于 1234 类数对,由于数对之二独占区全已知,只需对数对之一独占区进行操作。
对于 5678 类数对,由于数对之二独占区不全已知,在对数对之一独占区进行操作后,必然对数对之二独占区可进行反向操作。
对于 5678 类数对,若数对之一和数对之二互换,将产生 5↔6,7↔8 的转化,若已对数对之一独占区进行操作,则会在转化后数对类型 -4,即 5→2,6→1,7→4,8→3。
为了计算玩家在某一具体扫雷地图的发挥水平,目前广为传播的解决方案是 3BV/s,也是玩家普遍认可的“速度”指标。
然而对于相同难度的不同扫雷地图,3BV 有高有低,称为大小图。
以相同的扫雷水平扫完一局,小图用时短、3BV/s 低,大图用时长、3BV/s 高,这就使相同 3BV/s 的情况下大图实际比小图发挥的更差。
为了在大图和小图间取得平衡,出现了 RQP、QG、STNB 等解决方案。
(time+1)*time/solved3BV,值越小越好,但并非如 QG 一样基于拟合,是没有道理的。(time^1.7)/solved3BV,值越小越好,通过拟合修正。sqrt(completion)*stnbc/QG,值越大越好,其中 completion=solved3BV/total3BV,stnbc 为常数,旧版的 8×8-10 难度、中级、高级分别为 47.299、153.73、435.001,新版分别为 36、162、435。旧版的 STNB 是其中最为好用、较受认可的存在,然而其仅限于 3 个难度,并非任意难度,且在 completion<1 时值偏高,另外受作者影响,其定义可能被随意更改而劣化。
故从 MineSweeper Run 5.16 开始,独立提出 RDV 和 SS 的概念,SS 可横跨难度、地图、完成度评估该局玩家发挥水平,且无视上游概念更新。
A(e^(n/(h*w))-1)*(h^B)*(w^C),其中 n 为雷数,h 为短边长,w 为长边长,A=8.14593564,B=0.528462037,C=1.172055106。该值在 3 难度等于旧版 STNB 常数,但定义域扩充到任意难度。RDV*(completion^0.7)/QG。在 completion 为 1 的 3 难度,值与旧版 STNB 相等。在默认设置下,玩家可粗浅的认为鼠标左键即为翻开/快速翻开操作,鼠标右键即为标记/取消标记操作。
以下仅为一些粗浅的介绍,尚未描述全部特性,部分特性可能会因版本变化而改变。
操作在按下时触发而非抬起时;标记可直接翻开;鼠标按住拖动可连续操作多个方块。
拖动操作的方块,并不完全是移动路径经过的方块,对于控制台,可参考“屏蔽空格”功能。
对于图形界面,适量超出路径的方块不会被触发,以减少误触,其实现因版本而异。
对于图形界面,Ctrl+滚轮 调整显示大小;Ctrl+左键 拖动调整地图位置。
对于控制台,仅能少量 Ctrl+滚轮 调整显示大小,故不建议在控制台游玩大地图。
无论是游戏的开局、过程、终局,你都可以进行调整操作。
在控制台操作模式时,可按 Q 进入问号模式。
此时翻开操作和标记操作会转化为“翻开问号”和“标记问号”,或对应问号的取消。
再次按 Q,即退出问号模式,不执行任何操作;按 E 即执行所有标记问号并退出。
游戏的中断有两种情况:暂停或重启程序。
游戏过程中退出程序时,下次启动程序,直接从上一次游戏的最后一次操作时间开始继续。
对于中断局的操作记录(录像),属于未定义行为。
对于自制地图,不支持中断。
当对已翻开方块执行标记操作时,如果启用了“快速标记”,则会触发快速标记/取标操作。
此时若周围未翻开方块(未知方块+标记方块)的数量等于数字,则标记所有未知方块;否则,若无未知方块,且标记方块数量大于数字,则取消所有标记。
在控制台鼠标操作时,操作的方块,即数字/符号本身,加上右侧的空格。
故点击空格时,操作的便是空格左侧代表的方块。当玩家不熟练时,此规则可能带来令人遗憾的爆炸。
如果启用了“鼠标点击屏蔽空格”,则点击空格将不被识别。
当玩家使用触屏/触摸板执行鼠标操作时,右键操作可能极为不便。
在控制台鼠标操作时,点击 [鼠标左键:翻开/右键:标记] 可切换左右键功能,使翻开键、标记键互换。
图形界面的鼠标因暂无按键,可参考“点击空地切换左右键”功能。
当操作空地(数字 0),且操作为控制台或图形界面的鼠标,而不是键盘、指令时,如果启用了“鼠标点击空地切换左右键”,则鼠标的翻开键、标记键互换。
如果启用了“触动翻开”,当执行标记操作,且操作为控制台或图形界面的鼠标,而不是键盘、指令时,如果该操作更换为翻开操作,可触发快速翻开,则该操作更换为翻开操作。
控制台存在 3 种操作模式:(0) @#rc Command (1) wasd23 wasdhu Keyboard (2) 鼠标 Mouse
另外,(3) Window 为独立图形界面窗口操作模式,不参与控制台操作混动。
@#rc 是一种类指令操作模式,需输入 @:翻开 / #:标记、r:行坐标、c:列坐标 3 个元素,并按回车后执行。
中途可以通过退格键撤销输入,其特性与纯文本略有不同,数字整体会被一键删除。
非法的字符、越界的坐标都不能被成功输入,执行的回车也可以是任意非数字键。
wasd23 是一种键盘非阻塞型操作模式,通过 wasd 移动光标,按 2 翻开,按 3 标记,主键盘/小键盘均可,可用 hu 代替 23。
快捷键切换:一般按 C / K / M 都可切换模式,除 C 不能切换到 K。
在 C,无输入时,wasd 可切换到 K;仅输入操作字符(@ / #)时不可切换;输入到行坐标时,ws 可上下调整,输入到列坐标时,wasd 均可调整。
在 K,@ / # / C 可切换到 C。
在 M,仅能通过 K / C 切换,wasd 可调整当前位置,23hu 可操作,但不会离开 M。
根据上文介绍的特性,你或许可以尝试一些奇异的操作。
如使用一只手用触摸板/鼠标移动,另一只手按 23 或 hu 触发。
当同时启用“快速标记”和“触动翻开”时,你或许可以按着键不放沿着数字移动,直接完成某些简单的局面。
你被禁锢得太久了。你害怕,你怕突破,你怕一旦改变,就会丢掉现有的成果。事实上,扫雷应该是自由的,我们也是自由的。
MineSweeper Run 的所有概念、规则均独立,不受任何其他扫雷游戏程序的约束。
其产生的游戏纪录仅用作自我提升,不可与其他扫雷游戏程序的纪录横比。
MineSweeper Run 过去、现在、未来不会统计胜率、连胜、连败信息,可放心使用。