sokoban 发表于 2010-9-17 16:35:01

推箱子的变种 TSokoban

推箱子的变体有不少。比如SokoMind引入过对箱子编号的推箱子SokoPlus.
David W. Skinner 引入过六边形的推箱子 Hexoban (http://users.bentonrea.com/~sasquatch/sokoban/hex.html) 等等。

最近我在 Clickmazes 网站上看到一个也可以称为推箱子的变体的游戏,十分有趣。
(clickmazes 的网站: http://www.clickmazes.com/boxup/ixboxup.htm)
clickmazes 的网站上有这个游戏的java小程序,可以直接在线玩,一共有17关。
我颇费了一番功夫才把这17关都过了,十分喜欢这个游戏,于是编写了一个Windows下的版本。



下面简单介绍一下游戏规则:

黑色实心小正方形是人(即“搬运工”)。空心方框是墙。
其余的都是箱子。箱子都是三面围起来,一面开口;有大箱子和小箱子两种规格。
开口的方向有东南西北四个方向。

人可以通过开口的方向走到箱子(大小箱子均可)里面去。而且只有走到箱子里面之后,才能够在里面推动箱子。
小箱子也可以被推到大箱子里面去。

红色的小箱子是“目标”小箱子。蓝色的大箱子是“目标”大箱子。

游戏的目标是把所有红色箱子推到蓝色箱子里面去。在Clickmazes 网站上,所有关卡均只有一对目标箱子。
我觉得,即便只有一对“目标”箱子,关卡也可以设计得非常难。
在我编写的程序里面,允许有多对目标箱子(见18关)。
下面是此游戏的下载:(更新  004)


这还只是一个测试版本,有些功能还没有实现。

主要功能:

内置18个关卡,其中前17个来自 Clickmazes 网站;
箭头控制人的运动;
计算步数(在标题栏显示);
可撤销(恢复)最多30000步;
可把答案写入剪切板,也可从剪切板粘贴答案;
读入 tsb 格式外部关卡。

如果大家发现程序的bug,请告诉我,以便修正。


【另:征集皮肤设计 】

现在用的皮肤是clickmazes 网站的原版皮肤。

若有美术设计比较好的朋友感兴趣,欢迎提供更好的皮肤设计

按照下面模板样式排列就行了。每种元素的大小一样,是正方形。
有一点要注意的是:小箱子的有效面积(指的是有效面积的最小外接正方形)要完全位于大箱子内部。
而人的有效面积又要完全位于小箱子内部。因为程序是用多个基本元素层层覆盖来画出组合元素的。



[ 本帖最后由 sokoban 于 2010-11-26 12:36 编辑 ]

chuchudengren 发表于 2010-9-17 17:27:04

这个游戏原来也有这么难的版本,在机械迷城那个游戏里有个关卡用到了这个游戏不过简单的多

sokoban 发表于 2010-9-17 17:41:54

原帖由 chuchudengren 于 2010-9-17 17:27 发表 http://bbs.mf8-china.com/images/common/back.gif
这个游戏原来也有这么难的版本,在机械迷城那个游戏里有个关卡用到了这个游戏不过简单的多

有意思。在网上搜索了一下,好像关卡都是一样的。鉴于机械迷城是2009年的游戏,很有可能是机械迷城
借鉴了 clickmazes。

管窥子 发表于 2010-9-17 21:51:23

我喜欢新鲜的东西,多谢蛋壳兄!
我试试。

sokoban 发表于 2010-9-18 10:46:27

回复 2# 的帖子

昨晚几乎通宵把《机械迷城》通关。游戏原名《Machinarium》,是捷克的一个游戏小组
开发的,2009年底发行。官方网页:http://machinarium.com/
官网上可以在线试玩前三幕,大概占整个游戏的10%。完整版20美元。

《机械迷城》是一个解谜型角色扮演(或解谜型冒险)游戏。里面穿插了很多经典和现代的
解谜小游戏。如一楼的推箱子的变种。有点向解谜小游戏致敬的意思。

《机械迷城》的另外一个特点是游戏的画面非常具有艺术特色。

强烈推荐,没玩过的朋友可以尝试一下(可以先在官网玩前三幕)。

[ 本帖最后由 sokoban 于 2010-9-18 10:49 编辑 ]

sokoban 发表于 2010-9-18 14:26:30

(一楼的下载文件已经更新)
更新说明:

1,在标题栏显示关卡大小
2,可以读入外部关卡 tsb (更新中带有一个 example.tsb 关卡文件)

tsb格式如下(采取类似XSB格式的文本文件)
墙   #
地板 -
人   @
(小写字母为普通箱子,大写为目标箱子)
大东 a A
大南 b B
大西 c C
大北 d D
小东 e E
小南 f F
小西 g G
小北 h H

实际上每个格子还有更多的可能,如大箱套人,小箱套人、大箱套小箱套人、加上方向,
要表示所有可能,需要符号很多。所以tsb格式关卡,初始状态不允许有这种重叠情况出现。
第一关:

#####
#---#
#H@C#
#---#
#####

sokoban 发表于 2010-9-19 18:24:17

第四关的推广:

有少于108步的解法吗?

###########
#-b-b-b-b-#
#E@------B#
#-d-d-d-d-#
###########

sokoban 发表于 2010-9-19 19:17:25

4g:

###########
#-b-b-b-b-#
#Ebb-b-bbB#
#e@b-b-b-b#
#-d-d-d-d-#
###########

我已经尽量多地塞进障碍箱子。在保证可解的情况下,不知能否再增加黑箱子。

chuchudengren 发表于 2010-9-19 19:48:45

回复 7# 的帖子

dEurdEurdEurdEuNddWuuWddWuuWddWuuWdllDruuWdrdlUrrdWulUEDDEUUEDDEUUEDDEUUEDDEUU

又玩了一下,发现上面答案做了些无用功dEurrrrrdEuNddWuuWdluWdluWdllDruuWdrdlUrrdWulUEDDEUUEDDEUUEDDEUUEDDEUU

程序里的18关才刚玩到8,越来越没有头绪了

[ 本帖最后由 chuchudengren 于 2010-9-20 12:13 编辑 ]

sokoban 发表于 2010-9-19 20:07:53

回复 9# 的帖子

第八关我也卡了很久,后面有些关卡不比前面难
页: [1] 2 3 4 5
查看完整版本: 推箱子的变种 TSokoban