魔方吧·中文魔方俱乐部

 找回密码
 注册
搜索
热搜: 魔方
查看: 448534|回复: 10
打印 上一主题 下一主题

【献丑】推箱子程序 FinalSokoban 脱盲教程 - 有图 [复制链接]

透魔

米糕咪够咯。。。。。。

Rank: 6Rank: 6

积分
6923
帖子
1462
精华
4
UID
52005
性别
跳转到指定楼层
1#
发表于 2009-5-11 13:21:29 |只看该作者 |正序浏览
试写一篇脱盲教程,以方便大家在电脑上单机玩推箱子游戏。
水平有限,不足之处,请大家斧正。

推箱子软件程序的种类多种多样,现以 FinalSokoban 为例进行说明。其它软件请参考使用。
Final Sokoban 只支持扩展名为 xsb 的文本格式文件。
请点击此处下载 Final Sokoban V0.17 ( 53.36KB )
或在此网页进行下载。(  发三个本人写的推箱子程序  By: sokoban )

引用楼下 6#楼 的话:
原帖由 sokoban 于 2009-5-11 16:08 发表
借此机会,我要指出 FinalSokoban 有不少 Bug。其中一个就是如果解法步数太长,大概10000步以上,程序会出错。

就本人目前使用的情况来看,还没遇到过"程序出错"。

本篇构架为:
一、打开文件
二、进行游戏
三、编辑游戏
四、播放保存的解法
五、其它操作

一、打开文件
双击 FinalSokoban.exe 运行 FinalSokoban 程序。
直接点击“打开”按钮,或进行 File/Open 操作,从弹出的“打开”窗口中打开相应的游戏。
打开.jpg

二、进行游戏
用键盘上的“↑”、“↓”、“←”、“→”按键控制人的走动,或者用鼠标直接点击人或者箱子的下一个位置。
游戏的目标就是使所有的“目的地”上都有“箱子”。

万一走错了,可以选择 Game/Undo “ F7 ”后退一步,或是 Game/Fast Undo “ Backspace ”后退到上一个箱子。
另外对应的还有 Game/Redo “ F8 ”前进一步,或是 Game/Fast Redo “ Enter ”前进到下一个箱子。
如果嫌“地图”太小,可以进行 File/32×32 操作,扩大“地图”

简要的界面说明:
界面说明.jpg

步数:即 人 走的步数( 格数 )
推数:即 箱子 被 人 推动的格数
触数:即 接触箱子的次数
换数:即 换推箱子的次数

三、编辑游戏
进行 File/New 操作,可以自定义游戏。而 Mode/Edit 操作,可以修改现有的游戏
编辑结束后,进行 File/Save as 操作,保存“****.xsb”文件(到相应的位置)。
由于箱子的目的地在 FinalSokoban软件 里显示成“浅坑”的样子,所以在描述上,我就用“坑”取代“目的地”。

下面,我们制作一个“士兵突围”系列推箱子游戏。
各按键的功能如下图所示。
新建.jpg

士兵突围1
进行 File/New 操作,构造如图所示的“士兵突围1”地图。然后进行 File/Save as 操作保存。
( 我用的文件名是:士兵突围1.xsb )
士兵突围1.jpg

士兵突围2
经过上述操作,文件夹里多了个“士兵突围1.xsb”。加载该游戏,先玩玩。
是不是很简单地就过关了。不过瘾的话,我们可以修改“士兵突围1”,提高游戏难度。
加载游戏后,进行 Mode/Edit 操作,进入熟悉的编辑界面。
我们加点“墙”提高一下难度。( 要记得保存。 )
士兵突围2.jpg

士兵突围3
同样的,还可以改成这个样子。
士兵突围3.jpg

另外的,如果你在网络上看到的推箱子关卡是这个样子表示的:(这个是 士兵突围1 的文本格式文件的内容)
#########
#       #
# $...$ #
# .$$$. #
# .$@$. #
# .$$$. #
# $...$ #
#       #
#########
则可将整个文本内容复制后,粘贴到一个“新建 文本文档.txt”中保存,再将“.txt”改成“.xsb”,即可直接用软件加载并游戏。
* 注:空格的显示是个大问题。所以有时候复制网络上文本的后,需适当调整。

这里贴个 XSB格式的推箱子源文件 通用符号:

空白为地板
# 为墙壁
$ 为箱子
.为目标
@ 为推者
* 为箱子在目标
+ 为推者在目标

blank space for floor
# for walls
$ for boxes
. for targets
@ for the pusher
* for boxes on a target
+ for pusher on a target

四、播放保存的解法
每个推箱子游戏过关后,都会自动生成一个同名解法文件(即“****.xsb”对应生成一个“****.slt”文件),文件里是过关解法。
可以用“记事本”打开“****.slt”,得到图示的解法。
过关文件.jpg

反过来,如果有人上传了解法,我们就可以用来“演示”过关“动画”。
比如,士兵突围1 的解法是:
LrUdRlDLuUrRdDrrddlUruuuuLullllDlddddR
将其复制,粘贴到一个"新建 文本文档.txt"中保存,再将".txt"改成".slt",接着将"**.xsb”与"****.slt”改成相同的文件名,并将这两个同名文件放在同一个文件夹里
加载游戏后,进行 Mode/Replay 操作,进入“Replay Mode”模式,然后用键盘上的“ F7 ”、“ F8 ”、“ Backspace ”、“ Enter ”按键即可演示“高手”的过关过程。
另外的,要说明一件东西,就是过关后显示在右下角的那串数字。
当前保存的相应最优解法的对应数字.jpg

这四个数字分别对应的是当前保存的相应最优解法的对应数字。
详细说明在本帖 9# 楼。

五、其它操作
功能比较多,就不详述了。大家可以自己试试。
希望大家看到这里后,在“单机玩推箱子”的软件程序操作上基本脱盲了,可以自由运用了。

[ 本帖最后由 migl 于 2009-5-14 12:37 编辑 ]
已有 2 人评分经验 收起 理由
sokoban + 10 辛苦了
kexin_xiao + 10 原创内容

总评分: 经验 + 20   查看全部评分

Rank: 2

积分
444
帖子
382
精华
0
UID
73763
性别
11#
发表于 2009-5-13 15:11:36 |只看该作者
推箱子还是蛮有意思的~~~

使用道具 举报

透魔

米糕咪够咯。。。。。。

Rank: 6Rank: 6

积分
6923
帖子
1462
精华
4
UID
52005
性别
10#
发表于 2009-5-13 11:20:28 |只看该作者

回复 6# 的帖子

挺好用的。
不知道还能不能再优化……

使用道具 举报

透魔

米糕咪够咯。。。。。。

Rank: 6Rank: 6

积分
6923
帖子
1462
精华
4
UID
52005
性别
9#
发表于 2009-5-12 15:28:19 |只看该作者
每次过关后,程序会自动生成一个".slt"文件来保存解法。
用 记事本 打开后,会看到"四段"字母代码,分别对应"步数"、"推数"、"触数"和"换数"的解法。


当你尝试用多种方式重复玩同一关卡并过关后,".slt"文件里相应的"步数"、"推数"、"触数"和"换数"将相应地自动保存新的最优解法。
换言之,如果你走出了"当前最优解法",则原来*数对应的那段落后解法[字母代码]将被取代。( 如果相同,则保留原来的解法。 )
过关后显示在右下角的四个数字对应的就是当前保存的相应最优解法的对应数字


以"第一期"的"累积解法"为例。
字符太多,直接上传附件给大家用。 第一期-演示用.rar (875 Bytes, 下载次数: 8) ( 615-138-67-33 )
[ 注意:演示时,同名的".xsb"与".slt"必须在同一个文件夹里,否则将无法演示。 ]

进行 Mode/Replay 操作,进入 " Replay Mode " (演示模式)。
按下列操作可以选择演示不同的"当前最优*数"的过关方法。 ( 默认为"By Move"演示。 )
Replay/By Move 按当前最优步数演示 615-154-80-57 的解法
Replay/By Push 按当前最优推数演示 673-138-69-45 的解法
Replay/By Line 按当前最优触数演示 707-138-67-34 的解法
Replay/By Box 按当前最优换数演示 719-144-68-33 的解法
演示操作:参见“ 四、播放游戏 ”。

[以上四种解法我是在清空所有解法后按顺序依次完成的。]
打开"200901.slt"文件后,大家将发现,第三段解法(最优触数)的步数比第二段解法(最优推数)的步数多,但是得到的推数一致。这印证了“如果相同,则保留原来的解法。”

如果不信,你可以照着我下面的解法走一遍,看看推数那段解法变了没有。
这个是 795-138-66-29 的解法:
dldddLLLLddllluuuuruuullllllllluuurruuurrDullddddrrruuLLruulldDDurrrddllLulldddrrrrrUUrDldlllldddddrruurrrrrruuullLLLLLrrUdrrrrrdd
dllllllddlluuuuluuuurrdrRddrrrrrrruulllDurrrddllLLLLLLrrrrrrdddlluRdrUUddllllllddlluuuuluuuurrdrrddrrrruurrrddlLLLLrrrdddlddddrrru
uLLrrddllluUUUluRdrUUddllllllddlluuuuluuuurrdrrdrrdrrRdddlllluRdllluRdrrddRluurrdDrrrddlllUUUdlluulllddlluuuuluuuurrdrrdrrdrrrdddL
LLLLulDDurrrrruruulllullullullddddrdddddrrruLuurrruLdrrruLdrddrrrrrrruulllluRdrrruruullldDldRRluuurrrddlDDrdLLLLLLLrrddllluUUdlluu
rurrdLLLddrrrrrrrrruuuLrruullldDldRRurDDrdLLLLLLLrrddllluUUdddrrrrrrrUUUUluluurrrddLLrruullldDldRRurDDrdLLLLLLLrrddllluUlluururrdL
DDlluuRurDuruulllullullullddddrdddddrruuurRRRurruullluuLLdrrdrruurrrddLLLuurrDLulDrdddlldlluRdllluRdldddlluuuuuluuuurrurrrDururrdL
LLLLruulldDrruL
这个解法是按"138推"的方式将相应的箱子一次推到位,而不是适当地合并相同路径。所以"换数"很少,"步数"很多。

实践证明,第二段解法并没有改变。但是第四段和第三段同时"更新"。

[ 本帖最后由 migl 于 2009-5-13 11:22 编辑 ]

使用道具 举报

透魔

米糕咪够咯。。。。。。

Rank: 6Rank: 6

积分
6923
帖子
1462
精华
4
UID
52005
性别
8#
发表于 2009-5-12 09:37:43 |只看该作者

回复 7# 的帖子

我把它改得简单一点。( 士兵突围4-精简版 )
#########
###    ##
# $...$##
# .$$$. #
# .$@$. #
# .$$$. #
##$...$ #
##    ###
#########

[ 本帖最后由 migl 于 2009-5-12 09:40 编辑 ]

使用道具 举报

Rank: 2

积分
579
帖子
187
精华
0
UID
86525
性别
保密

超级搬运工

7#
发表于 2009-5-11 20:07:10 |只看该作者

回复 1# 的帖子

添一图:士兵突围4
士兵突围4.JPG
#########
###    ##
# $...$##
# .$$$.##
# [email=.$@$].$@$[/email]. #
##.$$$. #
##$...$ #
##   ####
#########

使用道具 举报

Rank: 7Rank: 7Rank: 7

积分
5289
帖子
3234
精华
19
UID
13140
性别

论坛建设奖 八年元老

6#
发表于 2009-5-11 16:08:25 |只看该作者
借此机会,我要指出 FinalSokoban 有不少 Bug。其中一个就是如果解法步数太长,大概10000步以上,程序会出错。

使用道具 举报

透魔

米糕咪够咯。。。。。。

Rank: 6Rank: 6

积分
6923
帖子
1462
精华
4
UID
52005
性别
5#
发表于 2009-5-11 14:24:19 |只看该作者

回复 4# 的帖子

嘻嘻
培养潜在的客户群

使用道具 举报

银魔

小欣然的爸爸

Rank: 7Rank: 7Rank: 7

积分
37843
帖子
34374
精华
15
UID
16477
性别
保密

论坛建设奖 爱心大使 八年元老

4#
发表于 2009-5-11 13:38:43 |只看该作者
好贴!加分!增加大家的参与性!
天津1群11471969,2群5834223
3群62462688,4群62462702
5群70735234,6群33712046
7群12240584,8群29198783
9群62974165,欢迎加入!

使用道具 举报

Rank: 8Rank: 8

积分
8483
帖子
7887
精华
0
UID
68944
性别
3#
发表于 2009-5-11 13:24:46 |只看该作者
好教程,谢谢分享

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

Archiver|手机版|魔方吧·中文魔方俱乐部

GMT+8, 2024-11-16 11:40

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部