Rules Current Competition Submit a solution Submission table - Main Submission table - Ext Submission table - Ext2 Submission table - Ext3 Competition results Hall of Fame Past Competitions About
比赛规则 本期比赛关卡 提交答案 提交列表 - 1 提交列表 - 2 提交列表 - 3 提交列表 - 4 比赛结果 荣誉殿堂 往期比赛 比赛简介 比赛诗选
歪推箱子 推箱子加加 睿斗推箱子 推箱快手(安卓版) 推箱快手(Windows) SokoPlayer SokoPlayer HTML5 USokoban [Linux] SokoFind LURD2XSB 推箱子工具 [Utilities] 推箱子变种 [Variants]
关卡平台 sokoban.org 字母表 [alphabet] 十二生肖 [zodiac] 2012精选 [bestof2012] 2013精选 [bestof2013] 关卡答案
MF8论坛推箱子版 百度贴吧推箱子 QQ群:92017135
XSB2MF8 [中文] XSB2MF8 [English] XSB2MF8 [sokojava] 关卡旋转工具 LURD2XSB工具 LURD转换工具 推箱子GIF动画制作教程 [skyivben] XSB2image [skyivben] image2XSB
推箱子常见问答 [FAQ] 推箱子格式 [XSB & Lurd] 推箱子基本概念:空位 推箱子游戏中半位空间的奇偶属性与磁铁效应 推箱子新手之路 “信以为真”关卡诞生记 推箱子GIF动画制作教程 逆推教程 推箱子文档下载 推箱子相关博客文章
HTML5地理小测验 HTML5天文小测验 HTML5图论小工具 珠三角路跑赛地图 HateTris
SokoPlayer HTML5 SokoPlayer JavaApplet USokoban [Linux] sokoban.py Sokoban.WS Tools SokoFind SokoLines HTML5
推箱子常见问答 [FAQ] 关于推箱子 [XSB & Lurd] 推箱子文档下载 关于比赛 关于本站 墙纸下载 [Wallpaper] 友情链接 [Links] 我的博客 [Blog] Credits

推箱快手中,“互动双推”的妙用

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

2021-1-19

很早就想对“互动双推”做做宣传介绍了,奈何总是找不到切入点,恰恰这期的比赛关卡触动了那根神经,那就宣泄出来吧。

“互动双推”是众箱友在使用“推箱快手”APP的过程中,经过不断探索、反复实践,最后思路逐渐清晰明确才确定下来的一项功能,那么,何谓“互动双推”?利用“互动双推”又有什么妙处呢?看官别急,让我慢慢道来。 但是,若是您还对 “逆推”没有了解,那您可以先去读读这篇文章的姊妹篇《什么是“逆推”?》吧。

上期的比赛关卡有点难,观察了多次,始终没敢动手,但是,每期的比赛关卡总会忍不住要看看,于是,第144期比赛开始后,便有些迫不及待的打开关卡。这次,杨教授终于不再为难我们了,赠送了副关2,副关1看着也很“顺眼”,于是心中默念“杨版主,大大的好人啊 ! ! !”。

先看看副关1长什么样子吧:

_####_______####
_#--#########--#
_#-.........*.-#
_#-##########.-#
_#-$-$--$-$-#.##
_#-$-$-$-$--#.#_
_#-----$-$--#.#_
##-$-$-$--$-#.#_
#--$-$--$--##.#_
#--$$*####.##.#_
#-$--......*..#_
#--$$*######--#_
##-$@$-#___####_
_#-$$--#________
_#---###________
_#####__________
Title: 踏破宝箱无觅处 (MF8 144th Sokoban Competition, Extra)
Author: Kseniya Mierzejewska + Eric F Tchong + shamying 

我推关卡没什么套路,太懒!不愿费脑筋!一般都是观察后,看看是否需要先打开通道啥的,需要的话,就先乱推一气,在乱推中熟悉场地,很多时候我也在想,是不是懒人都这样做呢?

经过上手尝试,发现关卡打开不难:

关卡打开后,发现有两个“小正方形”,马上想到03大师的“奇偶格”理论(比赛网站或群空间中,有更详细的论述文章),1奇1偶(左奇右偶,在推箱快手里,看小方格左上角,颜色略深的,就是“奇”,颜色略浅的,就是“偶”),奇偶格之间更没有墙壁的阻隔,可以合并,腾挪出一个完整的箱位应该没有问题!那么,若再利用这个腾挪出来的完整空位,把“右下角”的那个箱子所阻塞的“通道”打开,同时,让中间“大房间”房顶的那4个箱子脱离“房顶”,关卡应该就能解决了。

想法虽好,奈何自己的腾挪工夫太菜,怎么办呢?

嗯,还是懒人懒办法(实在不爱动脑筋),到关卡编辑器里去摆摆“型”吧。

于是,把关卡鼓捣进编辑器,开始摆“型”,摆型操作倒是很方便,我在编辑器里,比较习惯自己的编辑“设置项”:

看,我没有开启“YASC绘制习惯”。这样的设置,当我们在编辑器里只需要选中顶部的“箱子”元素,然后通过在地图里不断的点击、点击,就可以轻松“摆型”了:在图里,点到“箱子”,这个箱子就“消失”,点击“空地”等,就再“摆上”箱子。

不断尝试,大约省略了1000多个字,终于摆出了一个“型”:

摆“型”的时候,选中箭头所指的“箱子”元素,然后时刻注意右上角的提示,让“箱子数”与“目标数”都是30个,并且别破坏“墙壁”结构就可以了。当然,虽然摆出了这个“造型”,但是,心里还不敢确定是否可行。于是,回到“推箱子”界面,开始实战尝试:

首先,进入了“逆推”模式,看看,能否“拉”出这个“型”,不太满意的是,这个过程也得费不少脑筋,无奈之下,省略了3000多个字,才让我“拉”了出来。

然后,回到了“正推”模式,打开“互动双推”模式,再看看能否也能“推”出这个“型”,这就是利用所谓的“互动双推”了。

长按上图中箭头所指位置,它是“互动双推”模式开关,当界面右上角出现“互动双推”提示时,表示双推模式已经开启。

看官,您看到了什么,是不是目标点变了?怎么会这样?这可如何是好???

对!对!对!可看官您千万别急,目标点确实是变了,这正是“互动双推”的“玄妙”之处,算了,还是先简单解释一下“互动双推”的概念吧。

“双推”当然指的就是“正推”和 “逆推”,那“互动”呢?它指的是: 正推时,以逆推界面中箱子的当前位置为目标,而逆推时,以正推界面中箱子的当前位置为目标。 这句话需要看官稍稍的用心揣摩一下,您会发现,它并不是很难理解。顺便需要强调的是,“互动双推”中的“动”字,它也有玄机呢,这里所谓的“动”指的是目标点会在我们推箱子的过程中变换位置,看官可以自己试验一下,在开启“互动双推”模式后,您在逆推界面随便“拉”几个箱子,然后回到正推界面,注意一下目标点是不是变了?在正推界面随便“推”几个箱子,然后去到逆推界面,看看逆推的目标点是不是也变了?如此反复几次再试试,观察正逆推的目标点是不是在不断的变换位置?嘿嘿, 会变换位置的目标点。对!正推的目标点因逆推而“动”,逆推的目标点因正推而“动”,这不就是在“互动”吗?这不就是“互动”的“双推”吗?!怎么样,“妙”吗?若不觉得“妙”,那就请看官您来把它用得“妙”起来吧,好吗?

接下来还好,仅仅省略了100多个字,就“推”到了刚刚的“型”,于是,看到了下面这个让人欣喜的提示,当然,此时关卡已经解决了。

怎么样,您了解了什么是“互动双推”了吗?当然了,还有编辑器“摆型”呢!

若您阅读过拙作《什么是“逆推”?》,那么,您应该记得吧,“逆推”的主要任务是寻找正推时箱子的“归位次序”,当您找到了“归位次序”后,需要您按照这个“归位次序”再去正推,从而完成关卡,但是,当有了“互动双推”,这个“归位次序”就不需要您再操心了,因为,当“正逆相合”后,“推箱快手”就已经默默的为我们做好了一切,即便您没有打开“互动双推”开关,“推箱快手”也会帮您做好,“互动双推”只不过让您的玩推箱子时,目标更加明确、思路更加清晰、工作更有条理。

后记,顺便说说我这次解关过程,看是不是也有“妙”字藏其中呢?我的解关过程不是本文的重点,写出来也不是为了炫耀什么,因为,我知道通向罗马的大道不止一条,每条路都会很精彩,之所以仍然坚持写出来,仅仅是想做一次 “撬动地球的杠杆”罢了。

  1. 在编辑器里“摆型”;
  2. 把“摆型”当做关卡提交一下;
  3. 打开刚刚提交的“摆型关卡”做逆推(看,是不是我们“摆出的型”成了逆推的目标点?);
  4. 向着“摆型目标点”做逆推,但请您留下最后一个目标点(因为“推箱快手”会在所有箱子到达目标点后,自动做一些动作,影响您下面的“导出”);
  5. “导出”前面的逆推动作;
  6. 切换到真正的比赛关卡,进入逆推界面,“导入”刚刚的逆推动作,保存一下“状态”;
  7. 回到正推界面,开启“互动双推”模式;
  8. 好了,向着我们的“摆型”正推吧;
  9. 下面是“摆型关卡”的XSB。
    -####-------####
    -#--#########--#
    -#-.........*.-#
    -#-##########.-#
    -#----------#.##
    -#$$$$$$$$$-#.#-
    -#--$-$-$-$-#.#-
    ##$---------#.#-
    #---$$-$-$-##.#-
    #-$--*####*##.#-
    #-$$-.........#-
    #@$--*######--#-
    ##-$-$-#---####-
    -#-$$--#--------
    -#---###--------
    -#####----------
    Title: 踏破宝箱无觅处 (MF8 144th Sokoban Competition, Extra)
    Author: Kseniya Mierzejewska + Eric F Tchong + shamying
    Comment:
    “摆型关卡”的XSB
    Comment_end:
    

这次非常赶巧,副关1通过一次“摆型”就找到了正逆推的“结合点”,但是,很多时候,“型”可能不会被我们轻易地摆出来,或者存在很多正确的“型”(比如20603大师的关卡),这种情况下,就需要各位看官在“互动双推”模式下,不断的切换“正推”、“逆推”,不停的“撤销”、“重做”,反反复复地尝试,“看当前‘逆推的型’在正推中是否能够推出来,亦或者看当前‘正推的型’在逆推中是否能够拉出来”,这样,在不断的切换中、不停的尝试中,寻找正确的“结合点”,即“正逆相合”点。

给您两个关卡,用它们简单练习一下“互动双推”功能吧:

###########
#----#----#
#-$@$$$$$-#
#---------#
#####-#####
___#.--#___
___#.--#___
___#...#___
___#.--#___
___#####___
Title: Boxworld 55
Author: Thinking Rabbit

(练习1)

####___________
#--#___________
#--##########__
#----##-----#__
#..#----$$#-#__
#..--##---$-###
#..#--##$#-$--#
#..---#-@$-$--#
#..#--#-$-$---#
#-.---#-$-$-###
#--#--#---###__
#--#----###____
#########______
Title: Boxworld 99
Author: Thinking Rabbit

(练习2)

练习1,是BoxWorld里的第55关,关卡不大,用来练手正合适,您先正推打开关卡,正推出如下“型”状,然后去到逆推界面,打开“互动双推”模式,看能否逆推到刚刚正推出来的“型”?

练习2,是BoxWorld里的第99关,正推出如下“型”状,然后去到逆推界面,打开“互动双推”模式,看能否逆推到刚刚正推出来的“型”?

这两个练习也是比较简单,基本不用什么尝试来寻找“结合点”,但是,并不是所有的关卡都能这么容易的找到“结合点”的。而且,您也可能注意到了,在这两个练习中,我们是先正推到一个“型”,然后再去逆推这个“型”,与副关1正好相反。其实,“互动双推”中,谁先谁后都是无关紧要的,最终只要双剑合璧(“正逆相合”)就算是成功了。有很多时候,为了寻求这个“结合点”,我们还需要反反复复地调整这个“型”呢,一会儿在正推里面调整调整,一会儿又会在逆推里面调整调整,这个反反复复的调整过程会让我们烦躁,也会令我们欣喜,但是,当胜利降临的那一刻,您都是又一次实现了突破!(这段话可能有点重复了,但是,请别嫌啰嗦,不是说“重要的话重复三次”嘛,这里才第二次而已

最后的警告:并不是所有逆推出来的“型”都能够在正推中到达,同理,也不是所有正推出来的“型”都能够在逆推中相遇,否则就没有“死锁”一说了,换句通俗的话是说: 当您正推已经“死锁”时,这个死锁的“型”在逆推中是永远拉不出来的,反之亦然

附记:

如果说“点推”是推箱子程序的第一次飞跃,那么,“逆推”就算得上第二次,而“互动双推”就是第三次,因为“点推”解放了玩家的双手,“逆推”拨开了玩家头顶的一片迷雾,而“互动双推”正在解放玩家的大脑。

怎么,客官您还不是很赞同这样的说法?没关系,因为,这句话只是我个人的看法而已。


Created on Jan. 19, 2021