From 1d283a71cfabfc3e195a76b85435775d18b5e250 Mon Sep 17 00:00:00 2001 From: ShenMian Date: Tue, 22 Oct 2024 22:21:42 +0100 Subject: [PATCH] . --- src/solver/tunnels.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/solver/tunnels.md b/src/solver/tunnels.md index 909e0ce..76a62ea 100644 --- a/src/solver/tunnels.md +++ b/src/solver/tunnels.md @@ -1,19 +1,19 @@ # 隧道(Tunnels) -一般情况下, 箱子的移动将产生一个新的状态, 该状态还会包含其他箱子移动所产生的子状态, 这是因为箱子之间可能存在相互影响. -但在部分关卡中, 存在一种被称为**隧道**的结构, 可以将位于隧道内的箱子与隧道外的箱子**隔绝**, 使它们之间互不影响. +一般情况下, 箱子的移动会产生一个新的状态, 该状态可能包含其他箱子移动所生成的子状态, 这是因为箱子之间可能存在相互影响. +然而, 在部分关卡中, 存在一种被称为**隧道**的结构, 它可以将位于隧道内的箱子与隧道外的箱子**隔绝**, 使它们之间互不影响. ![隧道](assets/tunnel.png) 如上图所示, 当上方的箱子位于隧道时, 两个箱子之间不会产生影响. 此时推动隧道内的箱子被视作**无影响力推动**(No influence pushes). -在有 $n$ 个箱子的关卡中, 每一个状态最多有 $n$ 个子状态. 但如果当前状态是无影响力推动, 则无需产生子状态, 应该继续推动箱子, 直到产生有影响力的推动(一般是该箱子离开隧道), 并产生 1 个子状态. +在有 $n$ 个箱子的关卡中, 每一个状态最多有 $n$ 个子状态. 但如是无影响力推动, 则无需产生对应的子状态, 应该继续推动箱子, 直到产生有影响力的推动(即该箱子离开隧道), 并产生 1 个子状态. ## 停放 将箱子推入隧道内的推动是有影响力的, 这意味这将该箱子停放到隧道内, 并为玩家和其他箱子的移动腾出空间. -单个隧道内**最多能停放一个箱子**. 因为隧道中是不存在目标的, 停放多个箱子会产生[畜栏死锁], 进而导致关卡无解. +单个隧道内**最多能停放一个箱子**. 因为隧道中不存在目标, 停放多个箱子会产生[畜栏死锁], 进而导致关卡无解. 隧道内**停放箱子的最佳位置是隧道入口**, 此处的隧道入口指的是距离箱子最近的隧道口. 因为如果停放在隧道的其他位置, 玩家还需要重新返回隧道入口才能离开封闭的隧道, 这意味着玩家需要原路返回, 增加了不必要的移动步数.