双周脑震荡
小编寄语
告别了“”游戏,我们又迎来了扫雷游戏!这次是由上海交通大学微软俱乐部的同学出的题,快来看看吧!在这里插一句,即使你不是微软学生俱乐部的成员,也可以向我们提交赛题,成为出题人哦~
比赛介绍
"扫雷"是我们小时候开始就熟悉的游戏,但大多人完全解出却有一定的难度。
具体表现在:有时候在局部需要多步的假设推理才能分析出结果,有时候根据推理尚不能得出“雷”的0-1解,只能得出每处是否为“雷”的概率。
因此,最终的求解步骤及求解策略需要取决于选手的开放性思维。
此次的扫雷游戏就是想考察下选手对此类游戏、规则的实现能力。
赛题直击
用程序编写一个扫雷求解器,用于求解随机生成的盘扫雷局(初始条件已合理化)。
一旦点击位置为雷,游戏结束,成功求解出盘数较多者优胜。
规则详解
赛方提供两个txt文件,init.txt为棋盘初始条件,res.txt为棋盘答案,具体格式见附件。
参赛者需要提供在windows平台上运行的源代码、核心代码注释以及一份报告,报告对最终得分有一定影响。
本次比赛程序总运行时间,请控制在1个小时以内。
res.txt文件仅可用作测试结果是否正确,如果裁判发现AI有作弊或者文件格式修改错误,将直接取消比赛成绩。
比赛过程:首先调用init.txt文件,探测标记UNKNOWN的位置,与对应res.txt比对。若为雷,游戏结束。若为1-8数字,探测下一位置。若为0,连续生成非零区域。如此往复,直到雷全部解出。
注意事项
无雷区生成(即一片连续的雷为0的区域)可以用递归实现,可参考附件中的实例代码。
附件的网盘链接: