保存的答案

所有答案都保存在用户描述文件中(文件扩展名为[sokoinfo|.sokoinfo])。

保存这些答案的主要原因在于:避免再次去玩某个已经通关的关卡。 有许多关卡(就我所知,当前有超过10000个关卡)和包含各种关卡的关卡集。 利用这项功能,玩家就可以轻松了解他是否已经解开某个关卡。 如果已保存答案,则会在窗口右下角(状态栏右侧)显示统计数据。 如果为该关卡保存了多个答案,则右侧的方框会显示为下拉列表,以便玩家选择不同的答案进行回放

YSokoban具有一个数据库来记忆玩家已经通关的任何关卡。 如果加载一个之前已经通关的关卡,无论它的方向如何(旋转/翻转),YSokoban都会指出,这是一个已通关的关卡,并且您可以回放答案。 如果玩家之前已经解开关卡,YSokoban会在右下角提供答案,向您说明这一点。

标准化关卡

即使玩家旋转或翻转了关卡,或者在某些情况下增加或删除了墙壁,但未改变关卡,这时程序仍然能够识别关卡。 实际上,YSokoban会比较标准化关卡,而不是当前使用的关卡。 YSokoban在内部以标准化方式存储关卡(包括答案)。 标准化关卡与正常关卡略有不同。 有一些规则适用于标准化关卡。

所有不可到达的单元格将用墙壁代替

如果某个单元格小人无法到达,则它根本没有用处,就可以用墙壁代替。 如果两个关卡只有小人无法到达的单元格存在不同,一个是单元格,一个是墙壁,那么这两个关卡实际上是相同的关卡。 例如,所有用“-”表示的单元格实际上小人无法到达,因此,在标准化形式下可以用墙壁代替:

###----             #######
#  ##--             #  ####
#  $.##             #  $.##
# ###--    --->     # #####
# #-#--             # #####
# #####             # #####
#   @ #             #   @ #
#######             #######

死胡同式的通道用墙壁填充

死胡同式的通道没有用处,因为小人不能将箱子推到那里(或者更准确地说,不应将箱子推到那里),即使小人进入那里,也应该出来,而不执行任何操作。 如果小人最初位于这样的通道中,应强制将它移出(如果这时它必须推动箱子,就是强制推动箱子)。 例如:

#######             #######
#  ####             #  ####
#  $.##             #@ $.##
#-#####             #######
#-#####    --->     #######
#-#####             #######
#---@-#             #######
#######             #######

死锁的箱子将转换为墙壁

死锁的箱子(已归位)是指那些无法移动的箱子。 例如:

######              ######
# $. #              # $. #
# ** #    --->      # ## #
# ** #              # ## #
#  @ #              #  @ #
######              ######

标准化关卡

多次应用这些规则后,关卡将发生变化,有时甚至与最初的关卡截然不同(即使没有旋转),这是我们没有想到的。 重要的是,YSokoban会尝试确定关卡是否与某个已经解开的关卡相同,如果是,它会通知玩家(显示答案统计数据)。 SokoDUP也采用相同的方法来查找重复关卡。

平凡关卡

平凡关卡是指那些只需要进行强制移动/推动就可以通关的关卡,小人有且只有一条路径可以移动,最终,所有箱子都推动到目标位置。

加载平凡关卡时,窗口右下角的方框(统计信息)中将显示“平凡”。

YSokoban不保存平凡关卡的答案。

例如,以下关卡为平凡关卡:

##### forced    #####  rule3  #####
#@$.# ------>   ##@*#  ---->  ##@##
#####           #####         #####

在此例中,首先应用了一次强制移动(小人位于死胡同通道内), 然后将无法移动的箱子转换为墙壁,最后,房间中只剩下一个人(就像是监狱里面的犯人)。 因此,您什么事都不用做,这就是平凡关卡。 下面提供了另一个平凡关卡(不是很明显,但也是平凡关卡):

  ###         ###         ###         ###         ###         ###
###.##      ###.##      ###.##      ###.##      ###*##      ######
#.$$.#      #.$$*#      #.$$##      #.$$##      #.$@##      #.$@##
##.$$# ---> ##.$@# ---> ##.$@# ---> ##*@## ---> ###### ---> ######
 ###@#       #####       #####      #####       #####        #####
   ###         ###         ###      ###         ###            ###

在“设置保存答案的数目...”对话框(从菜单激活)中,玩家可以设置保存的每个类别答案的数目。


Created with Ywiki