YSokoban 功能简介
(版本1.328)
- 更换皮肤
可以通过更换皮肤采用不同的基本元素图案(墙、箱子、目标等)。
功能键 F3 到 F8 可分别设置为调用不同的皮肤。
- 支持多语言
目前支持的语言有英语、中文(简繁体)和保加利亚语。
可通过语言文件支持新语言。
- 支持全功能鼠标或键盘控制游戏
鼠标左右键和滑轮的功能可根据游戏者的偏好设置。
- 可以打开或者关闭提示(或者显示路径)
- 无限撤销与恢复 (backspace键撤销,空格键恢复,esc键重置关卡)
- 支持无限长的答案长度:
很多推箱子程序支持的答案长度都有一个上限。
YSokoban 没有这样的局限,唯一的受限的是你系统的内存。
- 支持足够大的关卡
YSokoban
能打开任何合理大小的大关卡(如 65000x65000 大小的关卡不能支持,10000x10000 大小的关卡
没有测试过,打开 10000x10000 大小的关卡可能会出现一些问题)
当一个关卡比 YSokoban 的窗口大时,会出现滚动条。
- 自动跟踪搬运工\自动滚屏
当关卡比 YSokoban 窗口还大时,会出现滚动条。
回放答案时,用户可以启动自动滚屏功能,这样程序会自动滚屏使得搬运工时刻可见。
在程序主界面的右下角,横竖滚动条相交处,有一个“."按钮。点击此按钮开启或关闭自动滚屏。
按钮出于按下状态是,自动滚屏功能启用。
- 当窗口出现滚动条时,用户在按下 SHIFT 键或 CTRL 键的同时用鼠标滑轮控制滚动条。
- 特殊版本 YSokobanBMP (须另外下载)
用于保存 BMP 图片以用于制作 GIF 动画。
CTRL+F3 开启或关闭保持 BMP 图片 (标题栏会显示当前是否保存 BMP 文件)
- 显示标尺 (便于游戏者识别和指示关卡中任意一格的坐标)
CTRL+R 开启或关闭 数字/字母 标尺 (类似于国际象棋所采用的符号)
ALT+R 开启或关闭 数字/数字 标尺
标尺(特别是 数字/字母 标尺)在指示关卡中某一格时特别有用。
当你用鼠标指向关卡中某一格时,标尺上相应的数字或字母会高亮显示,方便游戏者准确地看清该格的坐标。
CTRL+R 开启或关闭 数字/字母 标尺:
- 保存/载入 未完成关卡
CTRL+S: 保存当前未完成的关卡(和搬运工的移动历史)
CTRL+D: 载入一个未完成关卡
- 答案回放:
- F2: 回放答案(如该关卡曾经被解出过)
F2 键回放可按空格键暂停,暂停后按CTRL+空格键继续回放。
- CTRL-F2 : 和 F2 一样用于回放答案,但自动暂停。按空格键回放下一个箱子的推动。(CTRL-F2 相当于简单地把答案放入“恢复”缓存)
- 回放速度:
(在回放或恢复过程中)一直按着 CTRL 键,动画将以两倍速度进行
若按住 SHIFT 不放,四倍速度
同时按 CTRL 和 SHIFT 键,程序将以最快速度回放
- 支持瞬间移动:
YSokoban 支持在游戏或者回放过程中不显示中间的移动或推动。
启动此功能时,就不会有中间步骤带来的动画视觉效果。如,若你点击一个箱子然后再点击一个目的地,箱子将会瞬时被推到目的地。点击“瞬"按钮启用此功能。
若启用瞬间移动,有一个选项可以选择是否显示方向改变的中间步骤。
在选项对话框中选择“瞬移时显示方向改变”启用此功能。
- 支持复制粘贴部分答案:
在游戏的任何时刻,都可以用 CTRL+V 输入答案串(完整或是不完整的),效果和鼠标或键盘输入完全一样。
更多介绍请看下面的“支持把关卡和(或)答案复制到剪切板”。
- 支持从文件或剪切板读入关卡
从文件读入: 点击“关卡集”按钮
从剪切板读入: 请看下面的“支持把关卡和(或)答案复制到剪切板”。
- 支持 MF8 关卡格式: (MF8 格式是用于 MF8 论坛的一种推箱子关卡格式)
CTRL+M: 把当前关卡同时以 XSB 格式和 MF8 格式复制到剪切板
CTRL+V: 若剪切板中有 MF8 格式关卡,程序将会把它读入
- 支持把关卡和(或)答案复制到剪切板
(注意:从剪切板读入 LURD 格式答案时,大小字母无关紧要。
当从 YSokoban 输出 LURD 格式答案时,总是以大小写区分推动和移动)
- CTRL+L - 把当前关卡连同答案复制到剪切板。
若在游戏中间,那么当前的移动历史,关卡的当前状态和初始状态复制到剪切板。
- CTRL-ALT-L - 和 CTRL-L 相同,但关卡格式中,空格用 - 或者 _ 代替。(减号 或 下划线)
- CTRL-SHIFT-L - 和 CTRL-L 相同,但关卡和答案用 RLE 压缩
- CTRL-ALT-SHIFT-L - 和 CTRL-L 相同,但关卡是 MF8 格式
复制到剪切板时,会加上[soko=...] 和 [/soko] 标志
从剪切板读入时,程序也需要 [soko= 或 [/soko] 标志来识别 MF8 格式,所以复制时不要忘了连 [soko= 标志一起复制。
- CTRL-M - 和 Ctrl-L 相同,但同时有 XSB 和 MF8 格式
- CTRL-Ins (或 CTRL-C) - 把当前移动历史复制到剪切板
(格式: udlrUDLR)
注意: 如果你已经解出过某一关,并且想复制答案,那么在关卡初始状态按 CTRL+C (若不是初始状态,按 ESC 重置)。在初始状态下,程序会把你当前选中的答案(若有多个答案)复制到剪切板。
- SHIFT-Ins (或 CTRL-V) - 从剪切板读入(部分)答案 (格式: udlrUDLR)
- CTRL-SHIFT-V (CTRL-SHIFT-Ins) - 同上 (读入答案串),但会在每次换箱子时暂停,按空格继续。
事实上,这也是把答案传写入“恢复”缓存
比如,在解出一关后(当在跳到下一关之前),按 CTRL-C (或 CTRL-Ins),当前解关答案将以 UDLR 格式复制到剪切板。
此时,你可以把答案粘贴到电子邮件或其他文本文件中。
如你收到一个答案,选中并复制到剪切板。打开相应的关卡,按
SHIFT-Ins
(CTRL-V),程序便会自动回放该答案(如果答案正确的话)。
如果你希望在回放时在换箱子时暂停,粘贴时请用
CTRL-SHIFT-V (CTRL-SHIFT-Ins).
正常回放中,可以按空格暂停,CTRL+空格继续。
- CTRL-ALT-C (CTRL-ALT-Ins): 在一步一步的回放答案时,把剩下的步数(未回放的)复制到剪切板。
这一功能是 Ming 要加添加的,基于以下考虑:
在回放答案时,任何时候,可以用 CTRL+C 来复制当前移动历史(从初始到当前状态)。
若有功能实现把剩下的移动步骤(从下一步到关卡完成)复制到剪切板,那将会十分有用。
这对优化已有答案来说,是一个十分方便的工具。通常,我们可以回放两个不同的答案,若有
某个相同的中间状态,我们便可以通过复制粘贴来合并一个答案的前半部分和另一个答案的后半部分。
- 保存/读入关卡中间状态
CTRL-S / CTRL-D 可以保存当前关卡状态和移动历史。你需要给所保存或读入的关卡中间状态文件指定一个文件名。
- 自动记住已解关卡
YSokoban 用一个数据库去记住所有游戏者已经解出的关卡。如果你读入一个
你曾经解过的关卡,就算方向(选择/镜面反射)不同,YSokoban 都能指出它曾经被你解出过,并且你能回放答案。已解关卡,程序右下角状态栏会显示过关参数。
- 答案管理:
你可以自定义 YSokoban 保存答案的数目。
在主菜单中的“设置保存答案的数目”上设置。
- 导入答案:
你可以从答案文件导入答案。
这个功能主要用于“合并”其他答案档案。
- 导出答案:
你可以导出某个关卡集或整个数据库里的答案。
有多种导出方案可供选择,通过主菜单调用。
- 保存所有答案到文件:导出游戏者数据库里的所有关卡和答案。关卡在内部以所谓的“规范”形式保存。
- 关卡集另存为:只存关卡 -- 导出关卡集里的所有关卡(不含答案)
- 关卡集另存为:已解关卡 -- 导出关卡集里的已解关卡(含答案)
- 关卡集另存为:未解关卡 -- 导出关卡集里的未解关卡
- 关卡集另存为:全部含答案 -- 导出关卡集里的所有关卡(其中已解关卡含答案)
若希望对关卡编号,可以通过设置实现。
在“选项”对话框,可以选择在哪里(关卡前或后)显示关卡编号(或序数)
另外,支持导出为多个单一关卡的 XSB 文件。
为此,只需在设定导出文件名时,在文件名中使用 % 符号,程序在导出 XSB 文件时,将会把 % 用关卡编号代替。
还有,YSokoban 甚至支持把关卡导出到 XSB 文件,同时把答案导出到 XHT 文件。
为此,只需在导出文件名中使用 %% 。
若你希望在导出中使用特定的方向,可以在“变形选择”对话框中设定,
并启用“保存时用变形选择”。
- 支持关卡旋转翻转
你可以在游戏中的任何时候选择8个方向中的任意一种来玩任意一个关卡。
你也可以锁定一个方向玩所有关卡。
你可以从“变形选择”对话狂选择方向,或者使用下面热键。
- SHIFT+O: 原始方向
- SHIFT+H: 上下翻转
- SHIFT+V: 左右翻转
- SHIFT+U: 旋转180
- SHIFT+\: 上下翻转并旋转90
- SHIFT+L: 旋转270 或向左旋转90
- SHIFT+R: 旋转90
- SHIFT+/: 上下翻转并旋转270
- SHIFT+<左箭头>: 向左旋转90 (或旋转270)
- SHIFT+<右箭头>: 向右旋转90
- SHIFT+DOWN: 上下翻转
- SHIFT+UP: 默认为上下翻转.
但是, 可以在“变形选择”对话框通过“Shift-↑ = 左右翻转”选项改为左右翻转
- 支持路径搜索
- 显示搬运工可以移动到的所有地方: 点击搬运工
- 显示某个箱子能被推动到的所有地方: 点击一个箱子
- 显示那些箱子能被推到某个地点: 点击某个空格(默认是右键点击,但可在“选项”对话框改为左键)
- 以上所有显示功能支持“穿越箱子”(参阅下面的介绍)
路径搜索和瞬间移动:
- “穿越”功能:
有时,在某些场合,搬运工会推动一个箱子接着马上把它推回原位,这就是我们所谓的“穿越”。
要启用此功能,在“选项”对话框中选择"穿越箱子(若可行)"。
点击搬运工,若有相应的情况的话,程序会作以下显示:
- 能直接移动到的空格用白圈表示;
- 能“穿越”后移动到的空格用黑方形表示:
- 那些"被推动又被推回原位"的箱子 (被“穿越”的箱子) 用黑圈表示
(比用于表示能直接移动到的空格所用的白圈略大)
搬运工移动过程中的“穿越”:
推箱子过程中的“穿越”:
- 路径优化:
游戏过程中用“两次点击”实现推箱子路径搜索时,可以让 YSokoban 选择如何优化推箱子的路径。
优化可基于推动步数,移动步数,或者直线运动步数。
- 显示搬运工能接触到(不能接触到)的箱子:
点击任何一个墙,所有不能接触到的箱子会用特殊符号显示。这个符号是皮肤的一部分,通常是一个红色的交叉(或根据不同皮肤采取其他符号)。
- 支持从完成状态开始的关卡
有些关卡是被设计成初始时,所有箱子在目标位置。
要玩此类关卡,请先到“选项”对话框选择“答案必须至少含有一次推动”。
- 自动识别平凡答案:
只有平凡答案的关卡被程序自动视为平凡关卡。
对这类关卡,程序右下角的状态栏会出现“平凡”二字。
YSokoban 对平凡关卡不保存答案。
何谓平凡答案呢?
若一个答案中的每一步推动都是唯一的选择,那么这个答案就是平凡的。
- 自动保存:
若你在解关的中途退出 YSokoban,当你重新运行 YSokoban 时,程序会自动打开上次推出前的关卡并回放你所作的移动。
- 自动缩放窗口大小:
载入关卡时,你可以通过设置(点击菜单栏的“*”按钮)让 YSokoban 根据关卡大小自动调整窗口大小,使之与关卡相适应。
- 浏览或跳到当前关卡集的任一关卡
CTRL+←/→:载入当前关卡集的前一关
CTRL+↑/↓: 载入当前关卡集的后一关
CTRL+HOME: 载入当前关卡集的第一关
CTRL+END: 载入当前关卡集的最后一关
SHIFT+CTRL+←/→: 载入当前关卡集的前一未解关
SHIFT+CTRL+↑/↓: 载入当前关卡集的后一未解关
在主窗口的左上角,可以看到“关数: x 共 N”, 若把 x 改为 y, 程序会载入第 y 关。
比如,若你看到“关数: 2 共 100”,你把 2 改成 45, 程序将会载入第 45 关。
- 关卡书签功能: CTRL+(1 to 9) 设定书签, (1 to 9) 跳到设定的关卡。
注意:书签只在程序进程中有效。
书签的用处在于从视觉上比较关。如可以把两个类似的关卡用书签收藏,然后来回切换看哪里不同。
注意:
CTRL+←/→ 也类实现类似的关卡切换,不过只能用于一个关卡集里两个相邻的关卡。
- XSB 格式中,支持用下划线 (_) 和横杠 (-) 代替空格 (" ").
这一功能在从电子邮件或论坛中复制关卡时特别有用。
并且, YSokoban 还能把常见的 ">" (大于号) 符号视为空格。这一符号在电子邮件中经常出现。
续行符 "\" (也叫“反斜杠”) 同样也会被 YSokoban 忽略。
- 支持压缩格式的关卡和答案
YSokoban 支持粘贴 (SHIFT-Ins 或者 CTRL-V) 压缩格式的答案
压缩格式答案是在普通 LURD 格式关卡基础上应用 RLE 算法
(行程长度编码).
如可直接粘贴 RLE 压缩的关卡(| 表示换行):
2_5#|3#3_#|#2_*#_2#|#_#2_*_#|#_*2_#_#|2#_#+2_#|_#3_$2#|_3#2_#|3_4#
也可以粘贴 RLE 压缩的答案:
2r2uL2u2lD2l2d2Rl2d2rdrU3l2ul2u2rD2u2r2dL2D2u2r2dLd
L2Ud2r2ul2u2ld2l2dr2dRl2ul2u2ru2r2dr2d2luLUR2dr2dlU
按 CTRL+SHIFT-L 时,YSokoban 会往剪切板写入 RLE 压缩的关卡和答案。
在“选项”对话框可以选择如何对“空格”编码:下划线 '_' 还是横杠 '-'。
读入时,两种编码方式都支持(“空格”也支持)。
- 支持多个玩家:
YSokoban 支持多个玩家(用户)。
每个玩家有自己的游戏档案。
点击“玩家”下拉框选择玩家或者创建新玩家。