扫雷吧 关注:37,285贴子:142,712
  • 2回复贴,共1

扫雷与控制台问题的探索程序

只看楼主收藏回复

# MineSweeper Run
## 介绍
**MineSweeper Run是一款基于Windows控制台的扫雷游戏程序,支持以下功能:**
(1)可以用输入指令,WASD,鼠标三种操作进行扫雷,鼠标可切换左右键功能适应触屏
(2)支持实时显示用时和3BV,支持浅色模式,支持自选光标
(3)可生成缓存文件,自动保存用户设置、上一次地图和历史记录,并在胜利时显示打破纪录
(4)可对外部输入的地图进行求解,支持简单判断、逻辑推理、枚举判断、雷率计算、剩余雷数判断
(5)游戏时可按!/Tab对实时游戏地图进行求解,可生成无需猜雷的可解地图
(6)可连续生成地图并不断求解,压榨CPU
(7)操作界面支持鼠标点击和按键盘对应序号,显示多级操作栏时鼠标均可点击
(8)游戏时控制栏仍存在,点新游戏可停止游戏,游戏结束时点新游戏即可再来一局
(9)难度选择支持鼠标悬浮预览,自定义难度也可预览,支持极端难度如1*1-0和全图满雷
(10)游戏使用键盘模式时可用鼠标全选复制地图,可按M/K在鼠标模式和键盘模式间切换
## 特色
**推荐扫雷玩家使用MineSweeper Run的原因:**
(1)可生成可解地图,无需面对死亡二选一的局面
(2)不统计胜率、连胜、连败信息
(3)取消标记不会被问号阻碍
(4)可通过按住鼠标右键拖动连续标记多个未知方块
(5)快速翻开操作只需鼠标左键单击数字,而无需双击
(6)仅标记雷可赢
(7)可在键盘模式鼠标全选复制地图,以文本形式存储和交流当前局面
(8)无鼠标用户可用键盘模式进行游戏
## 教程
**游戏程序的文件管理**
可在GitHub等处下载游戏的可执行文件,文件名为`MineSweeper Run + 版本号.exe`,点击此文件即可启动游戏程序。
该程序面向Windows 64位,Windows 32位用户需下载32bit版本,两版本功能、特性、源代码无任何区别。
程序可产生以`minesweeper-`开头的缓存文件,删除均不会影响程序正常启动,但不恰当的修改可能会影响程序正常运行。
目前版本缓存文件至多有以下4个:
(1)minesweeper-settings.txt
存储着用户设置,例如游戏难度,删除后程序启动后会使用默认设置。
(2)minesweeper-lastmap.txt
存储着未结束的上一次游戏,程序启动后会优先进入上一次游戏。
(3)minesweeper-records.txt
存储着扫雷历史记录,用于打破纪录显示,删除后记录会丢失,第一局有效胜利即可打破纪录。
(4)minesweeper-maps.txt
存储着用户自制的扫雷地图,删除后自制的扫雷地图均会丢失。
不建议对以上缓存文件做任何修改,若需移动程序位置,需同时移动可执行文件和缓存文件,使之保持在同一目录下,否则所有用户数据均会丢失。
旧版本游戏更新为新版本时,仅需替换可执行文件,缓存文件一般保持兼容性,若部分设置恢复到默认状态,重新设置并保存即可。
**基础操作**
双击或右键打开游戏的可执行文件或快捷方式,即可启动游戏程序。
游戏程序一般在控制台主机中运行,在win11系统可能为终端,右击标题栏,点击属性或设置即可修改默认终端应用程序。
若win11用户在游玩顶级难度时,出现全屏仍不足以显示地图的局面,一般更换默认终端应用程序为控制台主机即可解决。
win11终端也可在默认值-外观更改行高、字号、字体等,具体需要自己调整,建议采用更换为控制台主机的方法。
游戏程序的显示内容本质为文本,可按Ctrl+滚轮调整字体大小,若空间不足会自动换行,可拉伸窗口或全屏避免换行,使程序正常显示。
有的情况中文字体不能正常显示,此时需要更换系统编码为GBK,
在设置-语言-管理语言设置-更改系统区域设置,取消勾选`Beta版:使用Unicode UTF-8提供全球语言支持`,重启即可,
如系统编码UTF-8有其他用处,可联系作者索取UTF-8版本。
进入程序可在顶部看到多个方括号包围,圆括号数字开头的文本,此为“虚拟按钮”,可用鼠标点击或按键盘对应数字按下按钮。
顶部的横排虚拟按钮称为“控制栏”,控制栏在游戏、设置等扫雷核心场景均存在,在顶级难度游戏时隐藏。
所有可用鼠标点击的虚拟按钮均有悬浮高亮。
部分场景如调试选项、地图求解功能不可用鼠标操作,必须使用键盘操作,阅读提示即可。
**游戏**
点击新游戏即可进入游戏,此时可选择任意起始点,选择后程序生成地图,生成结束游戏开始计时。
游戏地图采用`%`表示未翻开且未标记的方块,`#`表示标记的方块,数字表示周围8格存在雷的数量,其中0显示为空格。
游戏默认采用鼠标点击进行操作,可通过鼠标左键`%`和`#`翻开该方块,右键进行标记或取消标记。
“标记”在某些扫雷程序也称“插旗”,程序默认认为,玩家认为标记位置为雷。
当玩家执行标记操作时,剩余雷数将会更新。
竞速玩家常选择无标记、仅使用翻开操作完成游戏,此时剩余雷数不会更新。
当玩家翻开所有非雷方块时,即可胜利,若翻开雷,则立即结束游戏。
另外,标记所有雷,且无任何多余标记时,也可胜利。
游戏结束后,程序显示全部地图,其中`*`表示未标记的雷,`@`表示被翻开的雷,`数字+#`表示错误标记,其中错误标记0显示为`_#`。
游戏结束后,可点击新游戏再来一局,或进行其他控制栏操作。
游戏时,若点击新游戏,则立即结束当前游戏,再次点击即可再来一局。
游戏时,若关闭程序,下次启动时则直接回到该局游戏的先前状态。
鼠标模式游戏时,点击`[鼠标左键:翻开/右键:标记]`可切换左右键功能。
游戏时,按Q进入问号模式,此时翻开/标记操作会转换为翻开问号/标记问号,再次按Q退出问号模式,也可按E执行标记问号并退出。
**设置**
点击设置,即可进入设置页面,你可以在这里进行很多方面的设置。
如需更改游戏难度,点击设置游戏难度即可选择难度。
如需生成可解地图,点击设置地图生成校验,随后点击可解地图即可。
当选择顶级难度、可解地图时,生成一般需要等待。
当选择难以生成的难度时,地图生成校验会自动降低,手动调整可强制执行生成,但可能需要无限等待,例如全图满雷难度且起始点必非雷。
当较高难度生成可解地图时,如果很快结束游戏,可能出现重复地图。
当设置较为严苛的筛选条件生成筛选地图时,可能出现重复地图,或需要较长时间的等待。
设置完成后,如需下次启动游戏时仍保持设置,需点击返回并保存,若直接点击控制栏或关闭程序,设置则不会在下次启动程序时保持。
部分设置存在下一级页面,此时点击设置页面任意其他按钮即可不作修改关闭下一级页面。
**地图求解**
可进入地图求解功能页面查看详细使用说明。
在该页面,或键盘模式的游戏页面,存在控制台的“快速编辑”特性。
若点击页面,标题栏左上角会显示`选择`二字,此时右键鼠标会复制选择的内容到剪贴板,若无选择二字,右键会将剪贴板中的内容粘贴。
若需复制地图粘贴入此处,请勿使`选择`二字出现,否则剪贴板内容会被代替。
## 可解地图说明
可解地图,指起始点必为空,并可通过不断计算当前局面解并执行,直至取得胜利的随机扫雷地图。
其局面解包含4种情况:
**1.简单解:1个数字提供的信息**
(1)如果某个数字与周围未翻开方块的个数相同,则标记该数字周围未知方块。
(2)如果某个数字与周围标记的个数相同,则翻开该数字周围未知方块。
**2.逻辑解:2个数字提供的信息**
(1)如果数对之二与数对之一之差等于已知雷数差加数对之二独占区未知方块个数,则翻开数对之一独占区未知方块。
(2)如果数对之一与数对之二之差等于已知雷数差加数对之一独占区未知方块个数,则标记数对之一独占区未知方块。
**3.枚举解:局部多个数字提供的信息**
(1)如果某个未知方块在所有符合数字和剩余雷数的可能性中都是雷,则标记该未知方块。
(2)如果某个未知方块在所有符合数字和剩余雷数的可能性中都不是雷,则翻开该未知方块。
**4.雷率解:**
对地图所有未知方块枚举当前所有符合数字和剩余雷数的可能性,并对所有可能性综合分析得到剩余雷数范围,从而得到全部未知方块的雷率,
如果雷率最低的一个或多个方块,在实际地图中都非雷,则翻开这些未知方块。
雷率解是不确定解,但结合实际地图又是确定解;Run 1.4-4.10版本可解地图均不排除雷率解,Run 4.11开始试行排除雷率解。
**以下情况属于逻辑解**
等数定式及其变种(边等数及其传递、等数T形挖坑及其深入挖坑、等数雷传递)
21减法及其变种(121定式、1221定式、32减法)
31、42等任何减法
**以下情况属于枚举解**
涉及3个及以上数字的逻辑推理(角131、角222、1窗)
结合剩余雷数判断
## 声明
MineSweeper Run的所有概念、规则均独立,不受任何其他扫雷游戏程序的约束。
其产生的游戏纪录仅用作自我提升,不可与其他扫雷游戏程序的纪录横比,需要录像请自行录屏。
MineSweeper Run过去、现在、未来不会统计胜率、连胜、连败信息,可放心使用。
## 链接
GitHub仓库(持续维护更新)
https://github.com/Ltabsyy/MineSweeper
百度网盘(此程序大小不超过200KB,可放心下载)
https://pan.baidu.com/s/1q1OGgY_HpIPAkGEX6LPvxg?pwd=avjy


IP属地:江苏1楼2024-07-22 00:11回复
    效果预览图


    IP属地:江苏来自Android客户端2楼2024-08-06 19:53
    回复
      牛逼


      IP属地:陕西来自iPhone客户端3楼2024-12-08 22:08
      回复