魔方吧·中文魔方俱乐部

标题: lurd2xsb.html [打印本页]

作者: 西北天狼    时间: 2012-10-9 23:01:39     标题: lurd2xsb.html

本帖最后由 西北天狼 于 2012-10-11 22:17 编辑

[8#已有更新]

我也做了一个lurd2xsb的程序,请各位帮忙测试,希望能集成到工具栏中。
Lurd2Xsb.png
Lurd2Xsb.rar (1.74 KB, 下载次数: 21)

附件: Lurd2Xsb.rar (2012-10-9 23:01:11, 1.74 KB) / 下载次数 21
http://bbs.mf8-china.com/forum.php?mod=attachment&aid=MTkzOTM2fDM5MmI1YWI0fDE3MzIyMjM1MDR8MHww

附件: Lurd2Xsb.png (2012-10-9 23:00:15, 119.12 KB) / 下载次数 117
http://bbs.mf8-china.com/forum.php?mod=attachment&aid=MTkzOTM1fDg3NjIxNWY5fDE3MzIyMjM1MDR8MHww
作者: sokoban    时间: 2012-10-9 23:18:42

本帖最后由 sokoban 于 2012-10-9 23:28 编辑

我总结了一下,有三种情况下答案是无效的:一是撤销移动时,人退回来的位置被箱子占领(如drrulL);二是撤销推动时,人退回来的位置被箱子占领(如LURD,这和第一种本质一样);三是撤销推动时,要回退的箱子并不存在(如Rrr)。 天狼兄的程序可以检测第三种错误。能否增加检测前两种错误?

我稍后把天狼兄的程序放上 sokoban.ws 的工具菜单下面。
作者: 西北天狼    时间: 2012-10-10 00:16:42

本帖最后由 西北天狼 于 2012-10-10 01:48 编辑

都是break若得祸,调试过了!
异常发生时没跳出循环,只跳出switch!
Lurd2Xsb.rar (1.76 KB, 下载次数: 20)

附件: Lurd2Xsb.rar (2012-10-10 01:48:51, 1.76 KB) / 下载次数 20
http://bbs.mf8-china.com/forum.php?mod=attachment&aid=MTkzOTM4fGQ1MTk4OTIyfDE3MzIyMjM1MDR8MHww
作者: sokoban    时间: 2012-10-10 07:50:16

本帖最后由 sokoban 于 2012-10-10 08:17 编辑

感谢天狼兄的更新,已经添加到 sokoban.ws 了,工具下面的LURD2XSB工具。

http://sokoban.ws/utility/lurd2xsb_by_tianlang.php
作者: 西北天狼    时间: 2012-10-10 17:18:55

版主辛苦了。
关于“算法”还想多说几句,可能对喜欢程序设计的人有所启示。
首先,从理论上讲,根据答案还原关卡的提法不够严密,因为一些装饰性的墙或箱子无法还原,甚至有些地板也未必能走到,所以我用了“解析”二字。
大致思路是:二次扫描,人箱分离。第一次扫描,过滤不可能字符,测量出关卡尺度;第二次,采用直接推箱子的办法,标注出关卡的最后状态。搬运工的移动按四个方向统一处理,人占一个位置,墙三路纵队齐头并进,箱子的推动和人一样,也是一箱三墙。
程序结构,用数组表示四个方向的移动,用两张二维表,标注关卡的状态和人箱墙涉及的方位。没有使用一连串的条件语句,而是用了开关语句,这样可读性会强一些。
对HTML比较生疏,大部分是依葫芦画瓢,现学现卖。所以功能上还是比较单薄,以后再改进!

作者: sokoban    时间: 2012-10-10 18:09:55

本帖最后由 sokoban 于 2012-10-10 18:15 编辑

感谢天狼兄分享算法思想,看了很受启发。如“墙三路纵队齐头并进”这一想法就非常妙!
作者: 胜利    时间: 2012-10-11 11:51:45

感谢作者的精心制作和热情分享。
作者: 西北天狼    时间: 2012-10-11 22:10:51

多谢鼓励!
再加几个旋转答案的按钮,也许会有点用。
Lurd2Xsb.rar (2.02 KB, 下载次数: 12)

附件: Lurd2Xsb.rar (2012-10-11 22:10:31, 2.02 KB) / 下载次数 12
http://bbs.mf8-china.com/forum.php?mod=attachment&aid=MTk0MDc0fDExZTBmYWQ2fDE3MzIyMjM1MDR8MHww
作者: sokoban    时间: 2012-10-11 22:45:35

西北天狼 发表于 2012-10-11 22:10
多谢鼓励!
再加几个旋转答案的按钮,也许会有点用。

新按钮很好用。已更新到 sokoban.ws
作者: 西北天狼    时间: 2012-10-12 18:13:40

作家莫言在获得诺贝尔文学奖以后,接受了本站记者的采访。
记者:首先恭喜您获得诺贝尔文学奖,可以向您提两个问题吗?
莫言:当然可以。
记者:您平时推箱子吗?
莫言:我不推箱子,一般出差就挎个包,带个箱子,行李箱还是拉着方便。
记者:听说您写的书都翻译成几十个国家的语言了,您知道英文 lurd2xsb 是什么意思吗?
莫言:我外语不大好,不过这个2还是知道的,它念two,也就是to的谐音,就是“到”的意思; lurd2xsb 也不是纯英文的,是汉语拼音和英语的结合,主要还是中国特色的东西。它的意思是“从露乳带到相思病”,不知道这样回答,你们是否满意?!
记者:。。。
作者: sokoban    时间: 2012-10-12 20:25:50

哈哈。

刚刚把张艺谋拍的改编自莫言的《红高粱》又看了一遍
作者: anian    时间: 2012-10-12 21:46:04


“从露乳带到相思病”   --  竟然可以这样翻译, 非常特别。
作者: 胜利    时间: 2012-10-14 00:41:31

西北天狼 发表于 2012-10-12 18:13
作家莫言在获得诺贝尔文学奖以后,接受了本站记者的采访。
记者:首先恭喜您获得诺贝尔文学奖,可以向您提 ...

哈哈哈,太逗了。没想到大师也幽默。
作者: sokoban    时间: 2012-11-1 22:31:35

本帖最后由 sokoban 于 2012-11-1 22:33 编辑

也弄了一个在线的lurd2xsb,是用Python写的。

半年前用Python写了一个推箱子的lurd2xsb小程序,但只能在本地运行。昨晚好奇为了了解Python建站技术,在https://www.pythonanywhere.com申请了一个帐号。

然后今天研究了大半天,终于成功把之前的lurd2xsb通过web.py框架 ( http://webpy.org ),稍作修改,成功地作为一个web程序运行。本来技术上没有什么困难,但是排除缩进引起的错误花了我很长时间。

这个lurd2xsb网页程序地址是:http://sokoban.pythonanywhere.com/。在这个地址斜杆后接lurd串访问,便在返回页面中显示还原的xsb格式关卡。比如这个链接。http://sokoban.pythonanywhere.co ... ddrRRRRRRRRRRdrUluR
作者: anian    时间: 2012-11-2 04:04:32

原来这样也是可以的。  还是头一次看到。
作者: 西北天狼    时间: 2012-11-2 09:08:36

sokoban 发表于 2012-11-1 22:31
也弄了一个在线的lurd2xsb,是用Python写的。

半年前用Python写了一个推箱子的lurd2xsb小程序,但只能在 ...

我不懂Python,看到的是用于数值计算的比较多,程序相当的精简。用于写Web程序,受到URL长度的限制,难度很大啊!
作者: sokoban    时间: 2012-11-2 13:36:59

本帖最后由 sokoban 于 2012-11-2 13:46 编辑
西北天狼 发表于 2012-11-2 09:08
我不懂Python,看到的是用于数值计算的比较多,程序相当的精简。用于写Web程序,受到URL长度的限制,难度 ...


的确受到url长度的限制。目前我这个python lurd2xsb经过测试大概1000多步的lurd串没有问题,2100多步的答案就会出错,因为服务器不支持这么长的url。




欢迎光临 魔方吧·中文魔方俱乐部 (http://bbs.mf8-china.com/) Powered by Discuz! X2