魔方吧·中文魔方俱乐部

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

《不乱方寸》的前世今生——再谈50见方的关卡移动极限 [复制链接]

Rank: 4

积分
1149
帖子
103
精华
4
UID
1316434
性别
保密
兴趣爱好
推箱

智力游戏设计大师 超级搬运工

跳转到指定楼层
1#
发表于 2016-6-3 12:01:00 |只看该作者 |倒序浏览
《不乱方寸》的前世今生——再谈50见方的关卡移动极限


  《不乱方寸》的比赛结束了,恭喜过关的弟兄们!stopheart兄邀请我写一个编关思路过程,正好我也有意借此关卡兑现一个三年前的承诺,所以抽空写下此贴。因近来身体不便,使用电脑比较困难,可能会写得比较慢,请谅!

  这一关卡许多人觉得比较难,其实并不是使用的最难版本。如果使用原版,大概会有30万步吧;如果使用这一系列较难的一个版本,大概会是6万步左右。为与七周年的关卡《七年之痒》衔接,将原版作了简化,压缩到15万步左右,发布时还有一个漏洞,产生一个捷径,也就是现在的4万多步了;也是为了与《七年之痒》统一风格和图形,没有使用有更多陷阱的较难版本。

  其实,当cjcjc兄提交第一个解答时,解答步数就已经是很重要的提示了,看了这个步数,大体上也能知道关卡整体结构是怎么回事了,正如我在关卡说明和藏头诗里面所写的:乱序有别穿古今。
已有 4 人评分经验 收起 理由
stopheart + 20 感谢03兄倾心奉献的大作,受教了
anian + 20 太精彩了, 谢谢03大师分享!
sokoban + 20 重量级作品!!!
cube_master + 20 赞一个!

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

相关帖子

Rank: 4

积分
1149
帖子
103
精华
4
UID
1316434
性别
保密
兴趣爱好
推箱

智力游戏设计大师 超级搬运工

2#
发表于 2016-6-3 13:01:52 |只看该作者
  那么,我们就让时间穿越一下吧。


穿越:2013年的一个承诺

  2013年7月3日西北天狼兄发了个贴子《百度贴吧推箱子关卡移动步数推算》http://bbs.mf8-china.com/forum.p ... p;extra=&page=1,大概是对百度贴吧的一个关卡进行移动步数推算和分析。我在这个贴子里有一个承诺:



20603 发表于 2013-9-1 21:42:12 |只看该作者

“shamy 发表于 2013-8-18 14:37
求五万亿亿步的关卡……超乎了想象……”

别着急,等五万亿亿步成为可以忽略不计的零头时,再贴出来也不迟。

对了,前面没写全,Z后面的数字单位是什么?

1T=1万亿
1P=1000万亿
1E=100亿亿
1Z=10万亿亿
1Y=1亿亿亿=1×10^24=1000000000000000000000000





  这个回复被理解为我设计的关卡已经达到1亿亿亿步。那么,50×50的关卡移动极限在哪里呢?就我当时设计的关卡来计算的话,如果把最佳移动答案以“LURD”格式印刷在纸上,全世界所有的纸张都不够,保存在硬盘上,全世界所有的硬盘都不够。假如用电脑来演示答案,以每秒钟1万步的速度来演示,从宇宙大爆炸到宇宙灭亡,不知要多少个宇宙轮回才能演示完。

  当然,所谓1亿亿亿步,那只是3年前的保守数字。今天,我有必要讲一讲这个系列关卡的前世今生。我在《百度贴吧推箱子关卡移动步数推算》的23楼有一个回复:我早年也研究过此类关卡……这个早年有多早?

使用道具 举报

Rank: 4

积分
1458
帖子
141
精华
1
UID
1333517
性别
保密
兴趣爱好
推箱

四年元老 六年元老 八年元老

3#
发表于 2016-6-3 13:18:33 |只看该作者
本帖最后由 cjcjc 于 2016-6-3 15:26 编辑

今天比赛结束,一直想看的两样东西,一个是esseger先生的答案,另一个就是20603先生的设计关卡思路,现在都可以看到了
刚刚看了esseger先生的答案,确实是十分巧妙的解答,应该和20603先生所说的不走“捷径”的方法很接近了。十分佩服esseger先生,不过关卡的作者——20603先生更加令我佩服。本来以为这一关已经很难了,没想到还有6万,15万,30万的版本,天啊。。看到20603大师说编关的灵感来自于经验,真的是十分佩服啊

上一期的比赛的时候,感觉右上部分循环的设计非常巧妙,但是感觉整体难度偏低,我很快就过关了。当时还在纳闷,心想20603大师的作品就只有这样吗?没过几天,st群主告诉我说:还有更难的版本,我才明白原来只是发简单关卡误导我们啊。于是我又花了一些时间研究整个关卡的结构,找到了关键的走法。这次的比赛关卡刚一发布,我看了变墙的几个地方,可以判断几个区域的箱子不能交换,然后就知道过关的大概思路了。利用以前发现的走法顺利地解决了整个左边,发现右下部分推错了一个地方,箱子没办法归位,想了几个小时,才发现了“捷径”(不过当时没意识到走了捷径),终于侥幸过关

看到周兄的分析,才想到应该存在一种解法可以把右下左下左上三个部分一环接一环套起来,不过想了很久也没找到办法,直到刚才看了答案才恍然大悟。。
以前觉得右上部分设计的十分巧妙,没想到其他的部分设计的更加精彩!前段时间看到的“密码锁”的比喻和“超级单向通道方阵”说法都很贴切。
总之是非常精彩的一关,恭喜过关的各位。希望大家谈谈自己的看法。

另外,在论坛闲逛时曾经看到过《百度贴吧推箱子关卡移动步数推算》这个帖子,也见过“指数”型的关卡,不过显然20603大师有东西藏着没发出来,希望可以看到啊

使用道具 举报

Rank: 4

积分
1149
帖子
103
精华
4
UID
1316434
性别
保密
兴趣爱好
推箱

智力游戏设计大师 超级搬运工

4#
发表于 2016-6-3 23:09:35 |只看该作者
本帖最后由 20603 于 2016-6-10 00:08 编辑

  记忆中,在2013年之前,至少有3个时间节点,研究过指数式增长的关卡。

穿越:1998年的关卡记忆

  我是1996年开始设计关卡,98-00年达到巅峰。我好像在什么地方提过,5年左右设计的大约1200关,由于保存不当全部丢失了。其实没有全丢失,这1200关至少在3-5个人那儿还有。我在2000年发布过《仓库大师》程序,出售过一些关卡,对其中最初3-5个购买者发送的正是这1200关(或者1000关?记不清了),因为有别的想法,对后来的购买者就没有再发这些关卡,而是从网上搜集的关卡。庆幸的是,前年收到一封邮件询问某一关卡解答,那个关卡正是这1200关中的一个小关!我立即问对方关卡来源,可惜的是,保留下来的已经不全了,这是他舅舅帮安装的关卡,而他舅舅买了这些关卡后只玩了一部分小关卡,当年是用1.44M的软盘进行资料备份,为了节省一点软盘空间,只备份了两个小关文件,其中8×8的关卡100个(另有88个8×8的关卡已经随《仓库大师》程序发布了,程序里面88关有50多关是《Winsoko》里的,30多关是我自己设计的),其它不规则小关有100个。总算找回来一些关卡,尽管最重要的没了。希望有机会能找到吧。

  找回来的8×8小关里有这么一关:

########
###-.-##
###-*-##
#---*-##
#@#-$--#
#--*-*-#
####--##
########
Title: WV277
Author: 20603



  这一关我清楚地记得是1998年设计的。 这一年设计的关卡比较多,因为女儿出生,老婆回老家生产,我一个人比较清闲,有一个关卡叫《巴黎铁塔》,就是这段时间设计的。

  这个《WV277》关卡,推起来不太难,但它不那么普通。它可以纵向扩展,每增加一个箱子,步数大约增加0.618倍,箱子越多,增量越接近这一数字。我把它做了个变换,增加到16个木箱,设计出一关叫《巴黎铁塔》(也放在那1200关里面,但没有找回来,所以这是凭记忆重新画出来的):

#######
##-.-##
##-*-##
##-*-##
##-*-##
##-*-##
##-*-##
##-*-##
##-*-##
##-*-##
##-*-##
##-*-##
##-*-##
##-*-##
#@-*-##
#--$--#
#-*-*-#
###--##
#######
Title: 巴黎铁塔
Author: 20603


  
  既然这个贴子要谈设计思路,我们不妨先来看看这个《巴黎铁塔》关卡形成的过程。其实严格来说,它最初并不是由《WV277》推导而来,《WV277》只是一个中间关卡。首先我要设计的是一个类似埃菲尔铁塔的关卡,因时间太长最初的关卡已经记不清是什么样,只能随便给个大概,比如这样吧:

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



  哈哈,不像铁塔,倒像火箭,有空改成一个火箭吧。这关太简单了,显然我不会就此罢休,再改,比如这样:


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



  这个更简洁好看一点,还是没难度。最初的设计总是偏好对称,但增加难度常常必须打破对称,几番修改到达这里:

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



  但是,推起来非常凌乱,不像之前的关卡立即看出眉目,不需要解完就知道有解。这关明显推不死,感觉上有解,却没推出来,无法证实是否有解,怎么办?缩小到最简再测试!这就得到了《WV277》这个关卡。然后,再精简一下:

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


  从这个再扩展,得到《巴黎铁塔》,在扩展的过程中,发现了步数的指数式增长。最后只保留了两关,其余中间关卡全部放弃。

  这种最佳步数随箱子增加而呈指数式增长的关卡,非常有趣。但仅此而已,那一年,我没有作更深入的探究,重新回头研究这一关,是在好几年之后了。

使用道具 举报

Rank: 4

积分
1149
帖子
103
精华
4
UID
1316434
性别
保密
兴趣爱好
推箱

智力游戏设计大师 超级搬运工

5#
发表于 2016-6-3 23:11:04 |只看该作者
本帖最后由 20603 于 2016-6-4 14:05 编辑

穿越:2003年的特殊设计

  感谢stopheart兄提供的老封论坛记录!让我找到一些时间节点。

  2003年2月的时候,我突然对指定大小的关卡步数发生了兴趣。我在老封论坛发了一个贴子:

  一道简单的题目大家有没有兴趣?

    如果规定在1500个元素之内进行关卡设计(1500个元素的关卡是指关卡的最长处乘最宽处不超过1500),只允许有一个木箱和一个点,那么你设计出来的关卡最多必须要多少步过关?如果1000个元素以内呢?500个元素以内呢?

  这种特殊的设计题目只吸引了minglw和puzzle的关注,给出的设计已经很好,但一个非常重要的设计技巧他们都没有想到。此是后话。

  单个箱子的最多步数比较容易解决,那么多个箱子呢?那个时候正值春节,有些空闲时间,所以又把之前的指数式增长关卡找出来研究,试图在26×19的空间内找到最多步数的关卡。26×19就是前面说到的500个元素以内。为什么把地图尺寸设定为26×19?《巴黎铁塔》为什么刚好做到19行而不是20行?这里有个重要原因,我一直用《仓库世家》的编辑器设计关卡,《仓库世家》可编辑的最大尺寸就是26×19,所以我早期的许多关卡尺寸都是26×19,个别情况需要制作大尺寸关卡时,我是用记事本。直到找到这个论坛,才改用YASC。

  我首先发现的是扩展方式,显然多个《巴黎铁塔》这样的关卡叠加是最不经济的一种方案,所以关卡《WV227》要比《巴黎铁塔》扩展性更好。其次通过认真推敲,我发现《WV227》和《巴黎铁塔》都浪费了一个箱子的增量,最上面的箱子往左偏一格可以增加一次循环。最后我希望能够实现双指数关卡的嵌套:从关卡必经通道出去时经过另一个指数式关卡,每次都必须打开并复原(85期主关《不乱方寸》部分使用了这一思路),这样的关卡步数将是一个天文数字!这样的测试在当时已经成功,但时间太久,已不记得是如何做到的,在这里我随便做一个关卡来类比一下当时的思路:

##########################
#------------------------#
#-######################-#
#-##------#--###########-#
#-#-*##-*--*-########--#-#
#-#----#-##--########----#
#-#--#-#-##--########-*###
#-####-#-##*-#########-###
#-####-#-##-#########---##
#-####-#-$-------------$##
#-####-#..*************.-#
#-####-#-$---------------#
#-#------#############--##
#--#-#####################
##$--------------------$-#
#-.********************.+#
#----------------------$-#
##--######################
##########################



  底部是一个指数式增长关卡,每次从通道出去后必须经过另一个指数式关卡,打开并还原后才能安全通过。进出次数天狼兄有一个计算,大家可以参考《百度贴吧推箱子关卡移动步数推算》那个贴子。但这个随意之作仅作示意用,它有很大的漏洞。这个关卡步数太大无法推演,我们把它缩小再演示一下答案:

###################
#-----------------#
#-###############-#
#-##------#--####-#
#-#-*##-*--*-#--#-#
#-#----#-##--#----#
#-#--#-#-##--#-*###
#-####-#-##*-##-###
#-####-#-##-##---##
#-####-#-$------$##
#-####-#..******.-#
#-####-#-$--------#
#-#------######--##
#--#-##############
##----$-#---------#
#-****.+#---------#
#-----$-#---------#
##--###############
###################



  我希望的走法是:

4413/1137
uLLLDRluuurrrruRRRULdrRRULdrRRULrrrdLdlUluuurrDDLruulldRdrrdLdlUllluuRRDLruurrDDLddrUruLuulldRllddRRULrrrdLdlUluuurrDDLruulldRdrrdLdlUllllluuRRDLurRRDLruurrDDLddrUruLuulldRllddRRULrrrdLdlUluuurrDDLddrUruLuulldRllllddRRULdrRRULrrrdLdlUluuurrDDLruulldRdrrdLdlUllluuRRDLruurrDDLddrUruLuulldRllddRRULrrrdLdlUluuurrDDLruulldRdrrdLdlUllllllluuRRDLurRRDLurRRDLruurrDDLddrUruLuulldRllddRRULrrrdLdlUluuurrDDLddrUruLuulldRllllddRRULdrRRULrrrdLdlUluuurrDDLruulldRdrrdLdlUllluuRRDLruurrDDLddrUruLuulldRllddRRULrrrdLdlUluuurrDDLddrUruLuulldRllllllddRRULdrRRULdrRRULrrrdLdlUluuurrDDLruulldRdrrdLdlUllluuRRDLruurrDDLddrUruLuulldRllddRRULrrrdLdlUluuurrDDLruulldRdrrdLdlUllllluuRRDLurRRDLruurrDDLddrUruLuulldRllddRRULrrrdLdlUluuurrDDLddrUruLuulldRllllddRRULdrRRULrrrdLdlUluuurrDDLruulldRdrrdLdlUllluuRRDLruurrDDLddrUruLuulldRllddRRULrrrdLdlUluuurrDLulDruuUluurDrruuuullllllllllllllllddddddddddddrdDRddlUluRuuluuuuuuuuuuuurrrrrrrrrrrrrrrrddddllDDDldRlllluUruulDDDuruuuulDDullulldRRRlulllllDlddrUrrdddddddllddLrrddLLURlddlUluRdrruuuurrrrurrrrrrrUUUdddrruLdllllllllUUUUUUddddrrDLurRRDLurRRDLruurrDDLddrUruLuulldRllddRRULrrrdLdlUluuurrDDLddrUruLuulldRllllddRRULdrRRULrrrdLdlUluuurrDDLruulldRdrrdLdlUllluuRRDLruurrDDLddrUruLuulldRllddRRULrrrdLdlUluuurrDDLddrUruLuulldRllllllddRRULdrRRULdrRRULrrrdLdlUluuurrDDLruulldRdrrdLdlUllluuRRDLruurrDDLddrUruLuulldRllddRRULrrrdLdlUluuurrDDLruulldRdrrdLdlUllllluuRRDLurRRDLruurrDDLddrUruLuulldRllddRRULrrrdLdlUluuurrDDLddrUruLuulldRllllddRRULdrRRULrrrdLdlUluuurrDDLruulldRdrrdLdlUllluuRRDLruurrDDLddrUruLuulldRllddRRULrrrdLdlUluuurrDLulDruUUluurDrruuuullllllllllllllllddddddddddddrDDRddlUluRuuluuuuuuuuuuuurrrrrrrrrrrrrrrrddddllDDDldRlllluuruulDDDuruuuulDDullulldRRRlulllllDlddrUrrdddddddllddLrrrrddLLURldLLURlddlUluRdrruuuurrrrurrrrrrrUUUdddrruLdllllllllUUrrDLurRRDLurRRDLruurrDDLddrUruLuulldRllddRRULrrrdLdlUluuurrDDLddrUruLuulldRllllddRRULdrRRULrrrdLdlUluuurrDDLruulldRdrrdLdlUllluuRRDLruurrDDLddrUruLuulldRllddRRULrrrdLdlUluuurrDDLddrUruLuulldRllllllddRRULdrRRULdrRRULrrrdLdlUluuurrDDLruulldRdrrdLdlUllluuRRDLruurrDDLddrUruLuulldRllddRRULrrrdLdlUluuurrDDLruulldRdrrdLdlUllllluuRRDLurRRDLruurrDDLddrUruLuulldRllddRRULrrrdLdlUluuurrDDLddrUruLuulldRllllddRRULdrRRULrrrdLdlUluuurrDDLruulldRdrrdLdlUllluuRRDLruurrDDLddrUruLuulldRllddRRULrrrdLdlUluuurrDLulDllllllUUUUddddrrrrrrruUUluurDrruuuullllllllllllllllddddddddddddrDDRluuluuuuuuuuuuuurrrrrrrrrrrrrrrrddddllDDDldRlllluuruulDDDuruuuulDDullulldRRRlulllllDlddrUrrdddddddllddLdddlUluRdrrrruuLLDRluuurrrrurrrrrrrUUUdddrruLdllllllllUUUUUUddddrrDLurRRDLurRRDLruurrDDLddrUruLuulldRllddRRULrrrdLdlUluuurrDDLddrUruLuulldRllllddRRULdrRRULrrrdLdlUluuurrDDLruulldRdrrdLdlUllluuRRDLruurrDDLddrUruLuulldRllddRRULrrrdLdlUluuurrDDLddrUruLuulldRllllllddRRULdrRRULdrRRULrrrdLdlUluuurrDDLruulldRdrrdLdlUllluuRRDLruurrDDLddrUruLuulldRllddRRULrrrdLdlUluuurrDDLruulldRdrrdLdlUllllluuRRDLurRRDLruurrDDLddrUruLuulldRllddRRULrrrdLdlUluuurrDDLddrUruLuulldRllllddRRULdrRRULrrrdLdlUluuurrDDLruulldRdrrdLdlUllluuRRDLruurrDDLddrUruLuulldRllddRRULrrrdLdlUluuurrDLulDruUUluurDrruuuullllllllllllllllddddddddddddrDDRddlUluRuuluuuuuuuuuuuurrrrrrrrrrrrrrrrddddllDDDldRlllluuruulDDDuruuuulDDullulldRRRlulllllDlddrUrrdddddddllddLrrddLLURlddlUluRdrruuuurrrrurrrrrrrUUUdddrruLdllllllllUUUUUUddddrrDLurRRDLurRRDLruurrDDLddrUruLuulldRllddRRULrrrdLdlUluuurrDDLddrUruLuulldRllllddRRULdrRRULrrrdLdlUluuurrDDLruulldRdrrdLdlUllluuRRDLruurrDDLddrUruLuulldRllddRRULrrrdLdlUluuurrDDLddrUruLuulldRllllllddRRULdrRRULdrRRULrrrdLdlUluuurrDDLruulldRdrrdLdlUllluuRRDLruurrDDLddrUruLuulldRllddRRULrrrdLdlUluuurrDDLruulldRdrrdLdlUllllluuRRDLurRRDLruurrDDLddrUruLuulldRllddRRULrrrdLdlUluuurrDDLddrUruLuulldRllllddRRULdrRRULrrrdLdlUluuurrDDLruulldRdrrdLdlUllluuRRDLruurrDDLddrUruLuulldRllddRRULrrrdLdlUluuurrDLulDruUUluurDrruuuullllllllllllllllddddddddddddrDRluluuuuuuuuuuuurrrrrrrrrrrrrrrrddddllDDDldRlllluuruulDDDuruuuulDDDuullulldRRRlulllllDlddrUrrdddddddlldDuurrrrurrrrrrrUUUUddddrruLdllllllllUUUUUUddddrrDLurRRDLurRRDLruurrDDLddrUruLuulldRllddRRULrrrdLdlUluuurrDDLddrUruLuulldRllllddRRULdrRRULrrrdLdlUluuurrDDLruulldRdrrdLdlUllluuRRDLruurrDDLddrUruLuulldRllddRRULrrrdLdlUluuurrDDLddrUruLuulldRllllllddRRULdrRRULdrRRULrrrdLdlUluuurrDDLruulldRdrrdLdlUllluuRRDLruurrDDLddrUruLuulldRllddRRULrrrdLdlUluuurrDDLruulldRdrrdLdlUllllluuRRDLurRRDLruurrDDLddrUruLuulldRllddRRULrrrdLdlUluuurrDDLddrUruLuulldRllllddRRULdrRRULrrrdLdlUluuurrDDLruulldRdrrdLdlUllluuRRDLruurrDDLddrUruLuulldRllddRRULrrrdLdlUluuurrDLulD

  实际有漏洞:

877/149
uLLLDRluuurrrruRRRULuLrdrdRRULLrrdRRUrrdLLuLuurDuuUluurDrruuuullllllllllllllllddddddddddddrdDRddlUluRuuluuuuuuuuuuuurrrrrrrrrrrrrrrrddddllDDDlddLLdlllldllllddLrrddLLURllldRdrUruuuurrrrurrrrurruuruuurruuuullllllllllllllllddddddddddddrDDRddlUluRuuluuuuuuuuuuuurrrrrrrrrrrrrrrrddddlldddlddldllllldllllddLrrrrddLLURdlLLURllldRdrUruuuurrrrurrrrurruuruuurruuuullllllllllllllllddddddddddddrDDRluuluuuuuuuuuuuurrrrrrrrrrrrrrrrddddlldddlddldllllldllllddLdlldRdrUrrruuLLDRluuurrrrurrrruuRdrRdrruLLLLrrUUUUluurDrruuuullllllllllllllllddddddddddddrDDRddlUluRuuluuuuuuuuuuuurrrrrrrrrrrrrrrrddddllDDDlDlddllllldllllddLrrddLLURllldRdrUruuuurrrruuUrrRDuRRddlLLLrrrrRRuLdlUrrUUUUluurDrruuuullllllllllllllllddddddddddddrDRluluuuuuuuuuuuurrrrrrrrrrrrrrrrddddllDDDlDLddlluuRRlluUruulDDDDuuruuuulDDDuullulldRRRlulllllDlddrUrrdddddddlldDuurrrrUrrrrrrruUUUddddlluuRlddrruLrrrdLdlUluuurrDLulDllllllUUUU

  我尝试了很多办法,都没法再现当年的关卡,即使把26×19的尺寸再放大,也不能达成希望的结果。我想有两种可能:1、当年确实做到了双指数关卡的完美嵌套,但今不如昔,脑力跟不上,再也不能实现了;2、当年做出来的也许就有漏洞,只是没能发现。

  不过这都不重要了,因为如今用另一种方式实现的双指数嵌套,要远远好于当年的思路!

使用道具 举报

Rank: 7Rank: 7Rank: 7

积分
4934
帖子
1771
精华
9
UID
101889
性别
保密

智力游戏设计大师 超级搬运工 六年元老

6#
发表于 2016-6-4 08:12:15 |只看该作者
早上4点多就醒了,看了03兄的故事意犹未尽,期待讲完我再写我的感受

使用道具 举报

Rank: 4

积分
1167
帖子
232
精华
2
UID
103807
性别
保密
7#
发表于 2016-6-4 08:44:12 |只看该作者
大师,了不起!!有实践有理论,致敬!!

使用道具 举报

积分
1
帖子
1
精华
0
UID
1339986
性别
保密
兴趣爱好
推箱
8#
发表于 2016-6-4 08:53:54 |只看该作者
我本来想研究研究指数型关卡,现在看来,我不用研究了,坐等20603大师的研究结果。

使用道具 举报

Rank: 4

积分
1149
帖子
103
精华
4
UID
1316434
性别
保密
兴趣爱好
推箱

智力游戏设计大师 超级搬运工

9#
发表于 2016-6-4 13:23:08 |只看该作者
本帖最后由 20603 于 2016-6-4 14:10 编辑

穿越:2012年的悬赏

  关于指定尺寸的步数极限,sokoban版主有过一个悬赏。那天我翻看sokoban.ws上的贴子,发现了这个贴子http://sokoban.ws/bbs/viewthread.php?tid=48&extra=page%3D1《关于一个推箱子问题的悬赏》:

  “在经典的推箱子游戏规则下,满足下面三个条件的关卡至今仍没有找到:
  (1)大小在50×50以内,包括作为边界的墙体在内
  (2)恰有1个箱子(当然也恰有1个目标)
  (3)最佳答案大于或等于100000(十万)步,强调一下是最佳答案,即步数最少的答案。
  问题:满足上面三个条件的推箱子关卡存在吗?
  若找到一个这样的关卡,则容易验证。
  若证明这样的关卡不存在,则用数学方法证明(写出详细的推导过程),或用计算机穷举证明(必须提供c语言源代码,计算时间不能太长),或两者结合。
  所以,我个人悬赏人民币500元(伍佰元)给第一个对这个问题给出肯定或否定回答的人。获取这一奖金的方法和条件在下面一楼详细说明。”

  这个问题我在2003年就解决了。前面说过“minglw和puzzle给出的设计已经很好,但一个非常重要的设计技巧他们都没有想到。”,这个设计技巧就是排列单项通道的一个小技巧。比如这个关卡(已经再次优化):

##################################################
#---#@----#---##--#---##--#---##--#---##--#---#--#
#-#-#-----#-------#-------#-------#-------#------#
#-#--#-##-##-###--##-###--##-###--##-###--##-##--#
#--#-#$#------##-###--##-###--##-###--##-###--#--#
##-#---#---#--#-------#-------#-------#-------#--#
#--#########--#---##--#---##--#---##--#---##--#--#
#-#--#---#--######--######--######--######--###--#
#-#------#-------#-------#-------#-------#-------#
#-#--##-##--###--#--###--#--###--#--###--#--######
#-##-#--###-##--###-##--###-##--###-##--###-##---#
#--#-#-------#-------#-------#-------#-----------#
##-#-#--##---#--##---#--##---#--##---#--##########
#--#-###--######--######--######--######--#---#--#
#-#-------#-------#-------#-------#-------#------#
#-#---##--#--###--#--###--#--###--#--###--##-##--#
#--#####-###--##-###--##-###--##-###--##-###--#-##
##-#--#-------#-------#-------#-------#-------#-##
#--#--#---##--#---##--#---##--#---##--#---##--#-##
#-##--#########################################-##
#---#--------------------------------------------#
###-#-########################################---#
#---#-#---##--#---##--#---##--#---##--#---##--####
#-###-#-------#-------#-------#-------#-------#--#
#--##-##-###--##-###--##-###--##-###--##-###--#--#
##-#------##-###--##-###--##-###--##-###--##-##--#
#--#---#--#-------#-------#-------#-------#-----##
#-######--#---##--#---##--#---##--#---##--#---#-##
#-----#########################################-##
#####-#--##---#--##---#--##---#--##---#--##---#-##
#-----#-------#-------#-------#-------#-------#-##
#-#####--###-##--###-##--###-##--###-##--###-##-##
#--#--##-##--###-##--###-##--###-##--###-##--##-##
##-#------#-------#-------#-------#-------#------#
#--#--#---#--##---#--##---#--##---#--##---#--#---#
#-###-############################################
#--##-##--#---##--#---##--#---##--#---##--#---#--#
##-#------#-------#-------#-------#-------#------#
#--#---#--##-###--##-###--##-###--##-###--##-##--#
#--#####-###--##-###--##-###--##-###--##-###--#--#
#-#---#-------#-------#-------#-------#-------#--#
#---#-#---##--#---##--#---##--#---##--#---##--#--#
#####-#########################################--#
#---#-#--##---#--##---#--##---#--##---#--##---#--#
#-----#-------#-------#-------#-------#-------#--#
##-#-.#--###-##--###-##--###-##--###-##--###-##--#
#--#####-##--###-##--###-##--###-##--###-##--##-##
#---------#-------#-------#-------#-------#------#
#--####---#--##---#--##---#--##---#--##---#--#---#
##################################################
Title:一箭十万-102549步
Author:20603



  这一关充分利用空隙进行排列,将顺序排列的单项通道,每组4个打断其中1个,镶嵌到前一排多余空隙里,节省出两行(请比较关卡上下两部分的排列不同),使关卡步数超过10万步。

  当然,这个500元悬赏我没要,sokoban版主对推箱子的付出太多,就算补贴网站支出吧。

  这个50×50地图内单一箱子的步数极限问题,让我再次思考50×50地图内多个箱子的步数极限。也就是这个时间点,我发现9年前的双指数嵌套思路已经找不到了,设计了多种方案都有漏洞,让我怀疑最初的设计是否就已经漏了只是没发现。退而求其次,我使用了另一种增加回路步数的方式增加整体步数,比如这样:

使用道具 举报

Rank: 4

积分
1149
帖子
103
精华
4
UID
1316434
性别
保密
兴趣爱好
推箱

智力游戏设计大师 超级搬运工

10#
发表于 2016-6-4 13:24:35 |只看该作者
本帖最后由 20603 于 2016-6-4 14:10 编辑

##################################################
##------------------------------------------#-+-##
#--*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*.$#$.$##
#-*-######################################--#-*-##
#--#-------------------------------------#.$#-*-##
#-**-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-#--#-*-##
#-----#################################*-#.$#-*-##
#######################################--#--#-*-##
#---*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-#.$#-*-##
#-*--------------------------------------#--#-*-##
#-*#######################################.$#-*-##
#--#-------------------------------------#--#-*-##
#-**-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-#.$#-*-##
#-----#################################*-#--#-*-##
#######################################--#.$#-*-##
#---*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-#--#-*-##
#-*--------------------------------------#.$#-*-##
#-*#######################################--#-*-##
#--#-------------------------------------#.$#-*-##
#-**-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-#--#-*-##
#-----#################################*-#.$#-*-##
#######################################--#--#-*-##
#---*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-#.$#-*-##
#-*--------------------------------------#--#-*-##
#-*#######################################.$#-*-##
#--#-------------------------------------#--#-*-##
#-**-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-#.$#-*-##
#-----#################################*-#--#-*-##
#######################################--#.$#-*-##
#---*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-#--#-*-##
#-*--------------------------------------#.$#-*-##
#-*#######################################--#-*-##
#--#-------------------------------------#.$#-*-##
#-**-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-#--#-*-##
#-----#################################*-#.$#-*-##
#######################################--#--#-*-##
#---*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-#.$#-*-##
#-*--------------------------------------#--#-*-##
#-*#######################################*-#-*-##
#--#------#------#------#------#------##--*-#-*-##
#-*#-**-*-#-**-*-#-**-*-#-**-*-#-**-**##--*-#-*-##
#--#--##*-#--##*-#--##*-#--##*-#--##$.$---*-#-*-##
#-*#-*##--#-*##--#-*##--#-*##--#-*##-.$-##*-#-*-##
#--#--##*-#--##*-#--##*-#--##*-#--##$.$-##--#-*-##
#-*#-*-#--#-*-#--#-*-#--#-*-#--#-*-#-.####-*#-*-##
#--#---#*-#---#*-#---#*-#---#*-#---#$.*-##----*-##
#-*-#*-#--##*-#--##*-#--##*-#--##*-#----##--#-*--#
#--*-*-#*-*-*-#*-*-*-#*-*-*-#*-*-*-#*.-*--##-$.--#
##-----#------#------#------#------#----#----#--##
##################################################
Title: 黄金链道
Author: 20603



  这并不是当时实际做出的关卡,因为对这种扩展方式不满意,做完几个图都放弃保存了,所以这个图是事后2013年根据回忆重新设计出来的。那么就再穿越到2013年看看。


穿越:2013年的极限突破

  西北天狼兄的贴子《百度贴吧推箱子关卡移动步数推算》,再次把50×50地图内步数极限的问题引了出来。天狼兄的计算能力强悍,立即给出了关卡的精确步数,并对叠加关卡做了更好的细节处理,使关卡步数达到8000亿。

  看过贴子我才知道,这样一种类似于《巴黎铁塔》指数式增长的关卡原来在网上已经有多人做过研究,但最初来源于哪里我一直没找到。这个贴子给出的关卡增加步数的方式,是简单的叠加,那是因为原指数式关卡无法进行更好的扩展:

-#####-
-#-+-#-
-#$.$#-
##-*-#-
#--*-##
#--*--#
#--*--#
###--##
--####-



  这个关卡没有扩展的出口,只能通过简单叠加增加步数。并且有效关卡只能是偶数个箱子,其实之前sokoban版主已经对这个关卡做了修改(见http://sokoban.ws/blog/?p=430《一系列具有递归关系和指数长度答案的推箱子关卡》),使得奇数个箱子也能有解:

-#####-
-#-+-##
-#-.$##
##$*--#
#--*--#
#---*-#
##--###
-####--



  这一关的指数式增长方式,与我设计的《WV227》类似,也是每增加一个箱子,步数增加约0.618倍(黄金分割数),不同的是,《WV227》有良好的扩展性。所以,我在《百度贴吧推箱子关卡移动步数推算》贴子的23楼做了一个回复:“我早年也研究过此类关卡,如果要打造50×50以内的最小移动极限,除了在横向上复制,还有别的扩展方法,可以使最小移动步数远超万亿。可惜当年编的关卡已经丢失。最近若有时间我会把思路整理一下贴出来,供抛砖引玉。”几天后我把这个思路写了出来,并贴出了《黄金链道》这个关卡,同时在29楼,提出了双指数关卡嵌套的思路。

  既然双指数关卡嵌套已经无法还原出早年的关卡,那么有没有别的指数式关卡可以嵌套进来?sokoban版主的贴子《解法步数随关卡大小成指数增长的关卡》(http://bbs.mf8-china.com/forum.php?mod=viewthread&tid=30733)引起了我的注意,这个贴子里有一个指数式增长的关卡:

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





  每增加一个房间,就要经过前一个房间2次。这是一个以2为底的指数式增长,直觉认为,这样嵌套的关卡,步数能超过1亿亿步。我尝试了几种编排方案,步数很接近1亿亿步了,精雕细琢后最好的布局超1亿亿步是肯定的。但我没有继续,因为我设计出了另2种指数式关卡,以3或4为底的指数式增长房间!

  这个时候,天狼兄也用了类似方法,突破了4千万亿步。我在40楼有一个回复:“……换用了另一个底为4的指数式增长方式,步数达到2000亿亿步!”当时并没有贴出关卡,经过几天的布局优化,步数已经超过1亿亿亿步。这个关卡是什么样的?稍后我会贴出。因为如今我已经找到更好的指数式增长方式,这个1亿亿亿步的关卡,无须再神秘下去了。

  这个以4底为的指数式增长房间,就是《不乱方寸》左侧的两个房间!

  休息一下,稍后回来!

使用道具 举报

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

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

GMT+8, 2024-11-24 23:14

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部