查找推动路径(将箱子从一个单元格推动到另一个单元格)时,YSokoban会尝试寻找推动数最少的路径。 这是自然而然的结果,因为目标是移动箱子,而小人可以绕道,但关键是找到推动箱子的办法。 另一个原因是,在现实生活中,推动沉重的箱子往往比绕开它更加困难。
对此,许多人持相反意见。 对他们而言,移动数比推动数更加重要,这种看法可能源于DOS版本时代,当时只能通过键盘来移动小人,这可不是个轻松的任务,因此,按键的次数就显得尤为重要。
在“推动路径优化”对话框(从菜单激活)中,可以找到推动路径的优化标准。
默认情况下(如果未选中“使用权重”复选框),程序会按推动数优化推动路径。 这意味着,程序将使用推动数最少的路径(可能有多次移动,但推动数最少)。 如果具有多条路径(推动数相同),程序将选择移动数较少的路径。
如果选中“使用权重”复选框,则可以指定路径的3个组成部分的权重:移动、推动和直线。 通常,大多数玩家根本不会考虑直线。 YSokoban会查找具有以下最小值的推动路径:
移动*移动权重 + 推动*推动权重 + 直线*直线权重
可能您只希望优化移动数,但您也可以选择更加复杂的标准(如果希望这样做的话)。 如果选择0作为移动权重和直线权重,则程序会自动取消选中“使用权重”复选框,并使用默认的优化标准(因为X、0、0是默认的优化标准,而不论X的值如何)。
复选框“视推动为推动 + 移动”是指将每一次推动也视为移动。 进行优化时,您可以指定它们之间相互独立(否则移动数会总是大于推动数)。 此选项仅适用于推动路径优化器,并且独立于“选项”对话框中具有相同含义的复选框。
任何情况下,如果有两条路径的优化公式值相同(最小),程序会选择推动数最少的路径;如果推动数相同,则选择移动数最少的路径;如果移动数相同,则选择直线最少的路径;如果直线相同,则选择任意一条路径。