西北天狼 发表于 2012-10-9 23:01:39

lurd2xsb.html

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



我也做了一个lurd2xsb的程序,请各位帮忙测试,希望能集成到工具栏中。

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!

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

感谢作者的精心制作和热情分享。;P

西北天狼 发表于 2012-10-11 22:10:51

多谢鼓励!
再加几个旋转答案的按钮,也许会有点用。

sokoban 发表于 2012-10-11 22:45:35

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

新按钮很好用。已更新到 sokoban.ws

西北天狼 发表于 2012-10-12 18:13:40

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