魔方吧·中文魔方俱乐部

 找回密码
 注册
搜索
热搜: 魔方
查看: 8477|回复: 2

什么是“逆推” [复制链接]

Rank: 1

积分
164
帖子
12
精华
0
UID
1349212
性别
保密
居住地
唐山市
兴趣爱好
推箱
发表于 2021-1-13 10:09:46 |显示全部楼层
本帖最后由 yuweng 于 2021-2-7 10:47 编辑

(策划:anian 执笔:愉翁 顾问:麦英)

“逆推”功能的首次出现应该是在YASC Sokoban程序上,这是一款非常优秀的推箱子游戏程序,功能全面、强大实用,作者是Brian Damgaard,而此时,国内的众多箱友大都只是在有意无意的运用“逆想”思维,stopheart群主就是一位典型代表,又如西北天狼在老封论坛上的“逆向思维”、 一目了然(又名易学愚)的“倒行逆施”,如此多多,但尚未形成清晰的“逆推”概念。幸好我国的anian先生与YASC Sokoban程序的作者Brian Damgaard先生早就熟稔,当他把此项功能介绍给国内箱友时,“逆推”这一中文名字才华丽亮相(请原谅我以这样模糊的表述引出“逆推”这个词汇,因为anian先生和stopheart群主都不愿承认是自己先提出“逆推”一词,动作非常一致地推给对方,大佬们高风亮节,就只好难为我了 ),“逆推”功能也立时受到了stopheart群主的极力推崇,于是,在stopheart群主的积极“怂恿”下,很快被杨教授(sokoban杨超)在“在线推箱子”中得以实现,“逆推”功能的出现,也让箱友们眼前一亮,不自觉中,推箱技艺又精进了一步,更让它在国内大放异彩。
这篇文章,就是想尽量“官方” 一点的向那些新来的箱友介绍一下“逆推”的概念,并初步掌握“逆推”工具,让他们不再踏上我们走过的弯路。

那么,什么是“逆推”呢?

所谓“逆推”,是相对“正推”而言的,我们谈起推箱子,一般都是在说正推,即当拿到关卡后,人站到“箱子”后面,然后,人“推”着箱子移动,当把全部箱子都“推”到“目标点”后,就算是过关了。
随着推的关卡越来越多,我们就会发现,对于有些关卡,仅仅按照常规方式(“正推”方式)思考,会感觉到非常困难,或者不方便,这个时候,许多有经验的玩家,就会从关卡的“目标点”开始,反向思考,但是,当关卡比较大或者步骤比较多的时候,受记忆力的影响,这种思考模式会受很大的局限,至少不太容易完成“任务”,“逆推模式”就是在这种背景下提出的,然而有些优秀的推箱子程序,能够把正推地图中的目标点变成箱子,而箱子变成目标点,游戏时,人站到箱子“前面”,然后“拉”箱子移动,任务也就变成了把所有箱子“拉”到新的目标点,这就称之为“逆推”。
但是,逆推模式相对于常规的正推模式而言,还有两点需要注意,这两点,也是逆推模式与正推模式最最容易被忽略的区别:首先,在没有得到答案的时候,玩家可能还不敢确定关卡的正推应该结束在什么位置,换句话就是,玩家不敢确定应该从哪里开始逆推(即:“人”需要先站在哪个位置),这个“人”开始逆推的位置,也叫逆推模式中“人的初始位置”,这样的情况下,这个“初始位置”就可能需要玩家做不同的尝试才能确定,这也是“逆推模式”的魅力之一;其次,“逆推模式”的过关与否,还有一个要求,就是当所有箱子被“拉”到目标位置后,还需要最后把人“移”到“正推模式中的人初始位置”,这一点,可能需要认真琢磨后才能理解。

下面,让我们用一个具体的例子,来看看什么是“逆推”吧。
#####____
#@--#____
#-$$#_###
#-$-#_#.#
###-###.#
_##----.#
_#---#--#
_#---####
_#####___
Title: Boxworld 2
Author: Thinking Rabbit
21.png

这个关卡是鼎鼎有名的“BoxWorld”关卡集的第二关,是不是非常简单?嗯,我们就用这个最最简单的关卡,来认识一下“逆推”。
先看看正推怎么做:
22.png

上手一看,我们就知道,①号箱子送到A点,②号箱子送到B点,③号箱子送到C点,好了,完成任务!太简单了!
对,实在是太简单了,几乎不用怎么思考嘛!那么,这么简单的关卡在“逆推”模式下,又会是怎样的呢?一起来看看吧:
23.png

嗯?在“逆推”模式下,好像“箱子”是原来的“目标点”,而“目标点”是原来的“箱子”啊!
对!就是这样,上面不是做过介绍嘛,在“逆推”模式下,玩家的思路是反着的,要从关卡的“结束点”向着“出发点”思考,于是,把原关卡中的“目标点”就变成“箱子”,把原关卡中的“箱子”也就变成“目标点”了,这样,难道不是更方便了我们的逆向思考吗?免得我们再做什么想象了呀!
接下来,再看。咦?“人”也没有啊?这怎么推?
嗯,不用急,前面也曾介绍,“逆推”前,需要玩家自己把“人”放到地图里面,为什么呢?因为,这个关卡实在太简单了,我们上眼一看,就知道怎么推,相应的,也就知道了关卡正推完成之时,地图里的“人”会停留在什么位置,但若是一个很大或很复杂的关卡呢?您是不是就不敢确定了呢?所以,“逆推”的第一个难题就摆在了我们面前,如何确定“人”先放在哪里(“正推”解关成功时,“人”最后停留的位置),即先指定一个“人”的“初始位置”才能继续下一步(继续做“逆推”)。
这个关卡太过简单,我们还是先把它完成再去做更深入的理解吧。
1、先把“人”放入地图;
24.png

怎么样,很轻松吧?请您想想“正推”完成关卡时,“人”停靠的位置,既然知道正推解关成功时“人”停靠的位置,那就让我们先把“人”放上吧!
2、看看怎么做“逆推”呢?我们还是先做做标记;
25.png


把先动的箱子排在了前面,因为关卡简单,我们当然很清楚先动哪个“箱子”,后动哪个“箱子”了,“目标点”的顺序也是一样。
怎么,您也在实战编号(“推箱快手”是支持编号功能的)吗?是不是看到了“人”会随意的变换位置,离开了我们开始为他指定的位置?是的,“逆推”真正开始前,“人”的位置您就随意的安排吧,但是,您若已经“动”了箱子,“人”就不能随意动了哦!
3、下一步呢,当然是完成整个关卡的“逆推”,当然了,此时,就别说“推”箱子了,您没看到箱子是被“拉”着走的吗?所以,说是“拉”箱子更为贴切。
26.png

拉①号箱子到A点,拉②号箱子到B点,拉③号箱子到C点,看到了吗?箱子是被“人”拉着走的。哦!哦!您是说我“咋还剩下了一个箱子”,是吧?。
4、别急,这不就来了吗?
27.png

您注意到黄色箭头指示的两个位置了吗?
之所以前面留下一个箱子,就是为了强调一下,“逆推”的真正的结束(或叫成功),还需要一个最最重要的因素,就是“还需要最后把人‘移’到‘正推模式中的人初始位置’”,这是前面在解释“逆推”概念时的一句话,左边的箭头指向的是“正推”模式下,“人”的初始位置,而右边的箭头,指向的则是您“逆推”到此时的“人”的停靠位置,观察一下,这两个“位置”是不是连通的?连通,则表明您运用“逆推”成功解关了,那么,若是这两个“位置”不能连通呢,又会怎样?告诉您,不能连通,就说明您的这次“逆推”没有成功,需要回退再来,甚至,需要您重新给“人”安排一个新的“初始位置”从头再来。

如何,您对“逆推”是不是有了自己的理解,是不是掌握了那“两个关键点”?
已有 2 人评分经验 收起 理由
anian + 15 很给力!
cube_master + 12 赞一个!

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

Rank: 1

积分
164
帖子
12
精华
0
UID
1349212
性别
保密
居住地
唐山市
兴趣爱好
推箱
发表于 2021-1-13 11:09:54 |显示全部楼层
本帖最后由 yuweng 于 2021-1-13 15:35 编辑

那么,接下来,我们再“逆推”几个稍稍复杂一些的关卡,就当做是我们的进阶训练吧,让您再多了解一些“逆推”的魅力。

一、破解“归位次序”难题,“逆推”最璀璨的闪光点!
很多玩家,在推箱子时,总会时不时的遇到“哪个目标点先放上箱子好呢?”的困扰,这也包括那些资深玩家,甚至大师也逃不掉,但是,有了“逆推”,您大可不用担心这样的困扰了。
看下面的关卡:
###########
#----#----#
#-$@$$$$$-#
#---------#
#####-#####
___#.--#___
___#.--#___
___#...#___
___#.--#___
___#####___
Title: Boxworld 55
Author: Thinking Rabbit
28.png

这是BoxWorld里的第55关,关卡不大,但是箱子的“归位次序”依然会给很多新手造成困扰,不信的话,您可以试试,哦!对了,若您已经是资深的玩家,就别凑热闹了吧。
再看这个关卡呢?
####___________
#--#___________
#--##########__
#----##-----#__
#..#----$$#-#__
#..--##---$-###
#..#--##$#-$--#
#..---#-@$-$--#
#..#--#-$-$---#
#-.---#-$-$-###
#--#--#---###__
#--#----###____
#########______
Title: Boxworld 99
Author: Thinking Rabbit
29.png

这是BoxWorld里的第99关,是不是比上一个关卡稍稍难了一些呢?
实在是不想在文章里“推”了,说多了太占篇幅,让人看了徒增厌烦,说少了,好像又表述不清。放在这里,是请您亲自尝试,需要再次说明的是,从您“逆推”开始的步骤,就能够得到正推关卡时,箱子的“归位次序”。
您有尝试使用“逆推”功能吗?如果有想法,那我还是先提醒一句:我们“逆推”的首要任务是探求箱子的“归位次序”,所以,进行“逆推”尝试时,暂时可以不必考虑箱子被“拉”出来后放到哪里,您只需记住,哪个箱子是最后一个被“拉”出来的,倒数第二个又是哪个,第三个、第四个呢,……,等等,这个次序,基本上就是正推时,箱子的“归位次序”了,最后被逆推“拉”出来的箱子,就是正推时需要第一个归位的箱子。

好了,大度的您,就原谅我的懒惰吧!

怎么样,再来一个?那好吧,试试这个关卡您能否利用“逆推”大法解决呢?仍然是先不用管“拉”出来的箱子怎样摆放,只要能“拉”出来,随便怎么放,别挡住您回身再去“拉”别的箱子就可以,因为,我们关心的依旧是正推时箱子的“归位次序”。
__________####_____
_##########--#_####
_#-----------###--#
_#-#$###-###$#@$$-#
_#$--#.....-$--$--#
##-$-#.....#-#-##-#
#-$--#.....#$#$---#
#---###-####-#-#$-#
##$-#--------#--$-#
_#--#-#-######-#$-#
_####---#____#----#
____#####____######
Title: level 124
Author: Lester
2a.png

不管您是否已经“逆推”出了上面这个关卡,都不要紧,因为,我要用这个关卡介绍一下stopheart群主发明的“消去大法”。

二、化繁为简,让您的“逆推”更加从容。
上面三个关卡中,前两个还是简单了些,您遇到的“归位次序”困扰通过几次尝试可能就破解了,第一个或许连“逆推”都可以不用,是的,用上这样的关卡作为例子,只是想让我们进价的步伐不会被轻易的绊住。您不是也看到了吗,关卡中,箱子不多,地图外围也比较空旷,非常有限的目标点位允许我们用头破血流大法来寻找归位的次序,不是吗?但是,关卡又何止万千,当箱子数量多起来,地图外围也不在空旷,那么,您面临的考验就会呈几何级数上升,我也没办法用一篇短短的文章介绍清楚,需要您经受长期的磨练,才能练就一身过硬的功夫,在此,就提前祝贺您一下吧!不过,祝贺的同时,还想再为您介绍一个stopheart群主的“消去大法”,用这个“消去大法”把“逆推”分成两步,这样,会让“逆推”难度再次下降一大级别。
或许,您在“逆推”时就已经发现,那些被“拉”出来的箱子不知道怎样摆放,关卡外围空间像是不太充裕,从而影响了您最终分析整个关卡的“归位次序”,不过,这也不要紧,看看下面的地图,发现了什么?
2b.png

是的,我重新创建了一个“地图”,去掉了外围的“墙壁”,这样做是为了消除外围空间狭窄带来的不便,当然了,这只是一个临时地图,在这样的地图上再做“逆推”,还能难住功力大进的您吗?如此一来,难度是不是低了很多?接下来,找到原关卡的“归位次序”对您我而言,都是轻而易举了呢!等“归位次序”确定下来后,我们再回到原关卡去分析外围的箱子“摆放”问题,这不就是把问题逐层分解,由简入难吗?
或许,用这个关卡演示“消去大法”还是略显大材小用了,不过,我相信,您的志向一定不在这里,您一定会举一反三,不管面对如何庞大、如何复杂的关卡,总能让您找到正确的解关路线的!
(为了方便您测试,就把上面这个消去了部分外围墙壁的关卡XSB也放到这里吧,同时建议您使用“推箱快手”程序来做测试,因为会更贴近我的表述)。
----------####-----
-##########--#-####
-#-----------###--#
-#--$###-###$#@$$-#
-#$--#.....-$--$--#
##-$-#.....#-#----#
#-$--#.....#$#$---#
#---###-####-#--$-#
##$-#--------#--$-#
-#--#---######--$-#
-####---#----#----#
----#####----######
Title: level 124 + 消去部分外围墙壁
Author: Lester

最后提示一句,stopheart群主的“消去大法”,不仅是指被消去的“墙壁”,也在暗指运用“逆推”拉法,被逐层消去的箱子呢。

加上两个提示图吧:
2c.png

2d.png

上图是在临时关卡正推图上,画上了3条辅助线,辅助线上的箱子都对着“门口”,所以它们可以晚些时候推进来。相应的,下图是在临时关卡逆推图上,也画上了那三条线,意思就是说,这些线上的箱子,逆推时,肯定是最先被拉出来的。而剩下的不在线上的箱子,就是您关注的重点了,那就请您运用“逆推”功能,找出它们的“归位次序”来吧。

好了,虽然水平有限,但还是希望能够给您带来一点提示!多谢各位看官能耐着性子看完这篇粗浅的表述!

使用道具 举报

Rank: 1

积分
164
帖子
12
精华
0
UID
1349212
性别
保密
居住地
唐山市
兴趣爱好
推箱
发表于 2021-1-28 10:05:35 |显示全部楼层
本帖最后由 yuweng 于 2021-2-7 13:44 编辑

关于“逆推”,anian版主早就有了一篇文章——《逆推教程》——介绍,网址如下:
http://sokoban.cn/tutorial/reverse/reverse_mode.php

两篇文章,都是在向箱友介绍“逆推”,只是侧重点略有不同:
1、本文,着重介绍“什么是逆推?”、“为什么要逆推?”、“逆推的目的是什么?”和“逆推中需要注意的事项”,介绍时也是点到为止,没有详细介绍逆推的过程,只是想让新手尽快形成“逆推”的概念,了解“逆推”的好处,是新手了解和掌握“逆推”的第一步;
2、《教程》比较着重介绍“怎样逆推?”,文中也介绍了“逆推”概念,但更注重过程和实战,同时比较详细介绍了游戏软件中的操作细节。anian版说举例的关卡不难,可是,对类似我这样的选手来说,还是有相当的难度的,那么,对于完全不懂“逆推”概念的新手,很可能会被“眼花缭乱”的各种“逆推动作”吓到,注意力会被直接带到“怎样逆推”、“如何完成逆推”这个比较高级多层面上。

所以,各位箱友们,还是把两篇文章结合起来进行研究吧。

使用道具 举报

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

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

GMT+8, 2024-3-29 12:41

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部