魔方吧·中文魔方俱乐部

 找回密码
 注册
搜索
热搜: 魔方
楼主: anian
打印 上一主题 下一主题

介绍 SokoFind 【2014年更新:v2.0.2中文版发布】 [复制链接]

Rank: 8Rank: 8

积分
1918
帖子
588
精华
5
UID
145
性别

魔方破解达人 八年元老

11#
发表于 2009-7-23 17:03:30 |只看该作者
“会多次比较(从左上角比到右下角)”
为什么这样比?
应该从中心螺旋向外,基本上能做到较早命中。
以中心螺旋向外的次序,假设获得一个大于50%的相似值后,还会有更大值出现吗?有没有例子呢?

使用道具 举报

Rank: 7Rank: 7Rank: 7

积分
5265
帖子
3218
精华
19
UID
13140
性别

论坛建设奖 八年元老

12#
发表于 2009-7-23 17:51:46 |只看该作者
因为匹配百分比是以待找推箱子图案为基准的。如果待找图案是关卡库里面某一个关卡的局部(也就是说和这个局部一模一样),那么 SokoFind 程序认为匹配百分比是 100%。所以按照从左上倒右下的顺序,还是按照中心螺旋向外顺序查找,哪种顺序快一些好像要看运气了。

[ 本帖最后由 sokoban 于 2009-7-23 18:00 编辑 ]

使用道具 举报

Rank: 7Rank: 7Rank: 7

积分
2010
帖子
1577
精华
3
UID
91928
性别
保密

超级搬运工 六年元老

13#
发表于 2009-7-23 23:16:16 |只看该作者
原帖由 jinyou 于 2009-7-23 13:41 发表
那些进行搜查的关卡,基本上不再改变,是否先做好规格化加以保存,空间换时间。
你的程序在读入XSB Pattern后,检测到不能规格化的就是局部,就自动加方形外墙,而不该要求输入者加。除非你的编辑框能提供列编辑模式 ...



之前也考虑过先做好规格化加以保存,以空间换取时间。
但由于个人认为“一个关卡搜查程序不应该对被搜查的关卡文件做任何编辑”的缘故, 就没有做。

我喜欢尽可能的将关卡原汁原味收藏, 不想去掉任何东西。

但如果有人想以空间换取时间而且把关卡先做好规格化, 可以考虑在SokoFind加入一个选择叫 “关卡已经规格化”。
如果这个选择已选, SokoFind就不再做关卡规格化。

也可以考虑再出一个程序来专做关卡规格化。
其实我已经有这样的一个程序, 只是没有一个友善的界面。


关于XSB Pattern, 当初也考虑过不用外墙或自动加方形外墙。
如果不用外墙, 就会对关卡的局部输入有所限制。
例如, 你就不能输入方形墙里面的局部关卡。

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

也是因为空位置的问题而不能自动加方形外墙。
还有, 目前XSB Pattern窗口可以有不是XSB格式的东西如注解(comment)。
  (你也可以拖拉一个“局部关卡”的文件到XSB Pattern窗口来做输入。)

为了不想对局部关卡的输入有任何限制,最终就选择了现在的做法。
当然, 最好就是编辑框能提供列编辑模式。 这就要看Sokoban兄了。

[ 本帖最后由 anian 于 2009-7-23 23:25 编辑 ]

使用道具 举报

Rank: 8Rank: 8

积分
1918
帖子
588
精华
5
UID
145
性别

魔方破解达人 八年元老

14#
发表于 2009-7-26 10:32:15 |只看该作者
有关预先规格化,就是说把规格化好的东西另存一遍,我就放到一个数据库里,只要把关卡名写上。我就能只接找原关。
我现在是人工取了两行中的两个字符串,就能搜索出不多的题目了,再人工判断。没有考虑相似度。

使用道具 举报

Rank: 7Rank: 7Rank: 7

积分
2010
帖子
1577
精华
3
UID
91928
性别
保密

超级搬运工 六年元老

15#
发表于 2009-7-28 03:04:25 |只看该作者
人工选取两行中的两个字符串来做搜索, 有时候后果很好, 有时候后果不好。

以下这个关卡是Sokoban兄发表过的, 不知道金优兄是选取两行中的那两个字符串来做搜索?
   
#########--############
#-------#--#----------#
#.#####-####-###-####-#
#--#-#--*-*--#---#-#--#
#$-#-#-----#-#---#-#-@#
#--#-#####-#-#---#-#--#
####-#---#-#-#---#-####
-----#-#*--#-##--#-----
-----#---###*-#--#-----
-----#--*#----#--#-----
-----#-#---#--#--#-----
-----#---#-#####-#-----
-----#####-#---#-#-----
---------#--*--#-#-----
#############-##-######
#---------------------#
#######################





还有, 你能找到原关吗?

[ 本帖最后由 anian 于 2009-7-28 03:05 编辑 ]

使用道具 举报

Rank: 8Rank: 8

积分
1918
帖子
588
精华
5
UID
145
性别

魔方破解达人 八年元老

16#
发表于 2009-7-28 17:17:25 |只看该作者
我在老封当时收集的1万多关中查找。

输入某列的一段 #*_#_*_*__# 可以找到sven 1307

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




输入两行中各一段
#_#*__#_#
#__*_*__#
可以找到sven 1307,
和grigr 100 不像
-####-------
-#--#####---
##*-*---##--
#-$-#--*-##-
#---##*--.#-
###-#--*#-#-
-#------#-#-
-#--#-###-##
-#---*@##--#
-###--*-*--#
---##---#--#
----########




原关不知道是什么,老封当时收集的里面有没有?
我没找到相同关。

[ 本帖最后由 jinyou 于 2009-7-28 17:19 编辑 ]

使用道具 举报

Rank: 7Rank: 7Rank: 7

积分
2010
帖子
1577
精华
3
UID
91928
性别
保密

超级搬运工 六年元老

17#
发表于 2009-7-29 00:39:40 |只看该作者
我想原关应该是 sven 1307。

经过考虑, 在SokoFind增加了“add wall to pattern”(自动加外墙) 的选择。
如果在局部关卡里面没有空行,那就可以选“add wall to pattern”和不用在局部关卡加外墙。

因为大多数做查找的时候, 局部关卡里面是没有空行。 所以“add wall to pattern”的选择默认是‘选’。
方便大家用的时候不用加外墙。

请到这里下载: http://sokoutil.orgfree.com/

还有, 经过几番测验, 觉得在查找关卡的时候最好还是不做规格化。
因为这个原因, 就没有增加之前说过的“关卡已经规格化”的选择。
除非每一个关卡都有很多多余的墙(或装饰的东西), 不做规格化比做规格化快很多。
当然, 如果用家先将关卡进行规格化然后再储存, 那在用SokoFind的时候理论上是可以減少搜查的時間。

如果金优兄已经有一个友善界面的程序来做规格化, 相信大家会想试试。

[ 本帖最后由 anian 于 2009-7-29 02:45 编辑 ]

使用道具 举报

Rank: 8Rank: 8

积分
1918
帖子
588
精华
5
UID
145
性别

魔方破解达人 八年元老

18#
发表于 2009-7-29 09:37:57 |只看该作者
我想“友善界面的程序来做规格化”,这样的东西我不想做,因为推箱子文件的格式是会不断增加的,如MF8格式。一个程序要是用来读各种格式关卡就要不断更新,很麻烦的。其实我就是编了个读老封BOX文件的东西,存到DBF文件里。
确实是这样,从现有图案查找匹配题目。和在大量题目里把所有相似题目归类,是两个很不一样的问题。
现在我在想怎么让计算机从现有图案中提取关键字段,无非就是选择内容丰富的地方。就是有墙,有箱子,有目标点,有空地的一段。

使用道具 举报

Rank: 7Rank: 7Rank: 7

积分
2010
帖子
1577
精华
3
UID
91928
性别
保密

超级搬运工 六年元老

19#
发表于 2009-7-29 11:28:58 |只看该作者
> 确实是这样,从现有图案查找匹配题目。和在大量题目里把所有相似题目归类,是两个很不一样的问题。

其实已经有个程序可以在大量题目里把所有相似题目归类, 那就是YSokoban作者
George的作品SokoDup。

SokoDup能在大量的关卡里找出相同的关卡。也可以找出相似的关卡。
在这里, “相似的关卡”其实也是关卡一样, 不过“人”的位置可以不同。

SokoYASC里面也有一个“Find Duplicates”的功能, 和SokoDup的功能相近。
个人觉得SokoDup好一点。  但如果喜欢友善的界面, 那就会选择SokoYASC。

使用道具 举报

Rank: 8Rank: 8

积分
1918
帖子
588
精华
5
UID
145
性别

魔方破解达人 八年元老

20#
发表于 2009-7-29 12:36:19 |只看该作者
threshold serach 做什么用的

使用道具 举报

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

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

GMT+8, 2024-4-20 13:22

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部