这份独立练习关注迷雾地图的重叠视野。它提供明确的虚构规则和一段完整记录,适合先自己判断、再核对每一步。所有数据只用于学习机制,不代表任何具体产品的实现;实际规则有变化时,需要重新建立记录。
本例规则与输入
地图为9×9格,横纵坐标均0至8。侦察点照亮与它横差绝对值加纵差绝对值不超过3的格子,包含自身;已照亮的格子永久保留,没有障碍遮挡。
侦察点依次为:(2,0);(2,2);(4,4);(8,7);(5,8)
记录方法
多个侦察点照亮的区域有重叠,直接相加各自格数会把交集算多次。地图边缘也会截掉视野范围,不能照搬无限地图的公式。
本例只认上下左右的步数距离,没有墙体遮挡。对每个格子问“是否至少被一个点照亮”,能一次性处理重叠和边界。
逐条核对
第1个侦察点(2,0):边界内本身照亮15格,其中新增15格、与原视野重叠0格,累计15格。
第2个侦察点(2,2):边界内本身照亮23格,其中新增11格、与原视野重叠12格,累计26格。
第3个侦察点(4,4):边界内本身照亮25格,其中新增14格、与原视野重叠11格,累计40格。
第4个侦察点(8,7):边界内本身照亮13格,其中新增13格、与原视野重叠0格,累计53格。
第5个侦察点(5,8):边界内本身照亮16格,其中新增5格、与原视野重叠11格,累计58格。
结果及另一种检查
最终照亮58格,未照亮23格;从第0行向下的可见格数是6,5,6,7,8,7,6,6,7。
把逐行格数相加得到58,应与集合中的独立格数相同。每个点本身照亮格数相加会重复计算重叠区域,尤其靠得很近的点,新增格数通常小于本身视野面积。
练习建议
动手时,把纸分成输入、操作前状态、操作后状态三列,先不要看最后答案。出现差异后从第一条不同的记录开始检查,而不是只改末尾数字。若第一处分歧还没解释清楚,继续算往往只会把同一个错误传到后面。记录单位、正负方向和是否包含边界,也能让别人复核你的过程。
复习时只改一个条件,例如改一条事件、一个初始值或一次记录,先预测哪些后续行会受影响,再重新计算。把保持不变的部分也写下来,才能区分真正的机制变化与偶然的数字变化。练习完成后,可尝试用另一种办法核对总量、边界或最终状态;两种方法一致,比只重复原来的运算更有帮助。
