冒险解谜游戏中文网 ChinaAVG

标题: AVG迷题探索(06) [打印本页]

作者: tabris    时间: 2007-9-5 17:07
标题: AVG迷题探索(06)
引子:
  Y+ x: {  g6 _3 z# O        前面两篇探索都与拼图有关,这次也不例外,不过这次的拼图该是我们最最熟悉的拼图类型了,在各个AVG当中此类拼图是层出不穷,随便抓起来就有一大把的例子。例如:
7 M( G* D+ M/ k" m8 y( `4 i
# c& ^! \8 e  B9 l3 W0 W! H2 }3 _(这里想找些迷题的图片贴一下的,无奈我玩过游戏太少,正拜托XYZ老大寻图中,老大加油啊。。。)  m. |% g- o8 n# y$ [6 d/ O8 R" f

' e3 {! ?: F# r$ i3 d/ [6 K& r        不过很奇怪,比起上两篇的两类拼图来说,这种拼图的规律却比较不好找,也很难用一些普遍的简单的公式来表示,所以拖到第三篇才拿来评论。
5 L7 @0 z: v+ z6 E5 w$ P        先分析一下这类拼图的最简模式,所谓“最简”,意思就是说这类拼图最少得包含多少个格子才能够形成复杂变化(这种拼图还有一个“方块”的概念,一幅n个格子的拼图里应该含有n-1个方块)。
9 \. ~5 [7 ~4 _# }/ `        很快可以得出结论,n等于1~4都不可能有复杂变化,至多就是几个方块在格子内团团转而已。
0 G0 `0 Z; e9 |! Z. N而n等于5的话,情况好像就有点改变了:
; m2 W7 b; N- W% z* j) X$ n+ @  u( s3 I1 @4 [

: J! e2 O% d7 ]
' E( ~0 D( E, x' ^, O        这时,我们可以把B暂时弄到空位上去,然后让ADC在左边团团转,伺机把B在放回到ADC序列的任意间隔里,嗯~这种变化比较复杂了。
$ x2 L* }; a2 r' U& ^% _        不过我们很快发现,实际上5个格子的变化仅此而已,B方块仅仅能在原位和空位之间移动,整个拼图形成的变化也仅仅是ABDC的序列变为CBAD或DBCA而已,如果把这样的拼图拿来做迷题,估计也就是婴幼儿启蒙的水平。* T% W% t3 P2 u5 a8 [6 A
        那n=6如何?
作者: tabris    时间: 2007-9-5 17:08
n=6的基本变化:0 t- j) D5 w0 _' Y
        当n等于6时,拼图应为如下形式:$ A/ E" B" a0 G8 X0 c

+ ]# t+ c0 Q; F, ?  n" v7 |
4 y9 w# x( l6 F* H' T
# u- ]& C) |" u6 ]. C        和第一篇探索一样,让我们先研究一种“基本变换”!% n0 s3 P$ `$ P5 X/ X" e; h4 q7 a
; `7 u/ f* L6 D7 O8 |
(图一)$ q1 ]  b1 J; \$ a: }! I# W, O
5 i+ d4 B; `8 e0 p8 n/ F- G3 Y6 u
        假设我们不管C和E,把ABD作为一个排列成三角形的序列,让我们来研究一下这个三角形序列的变化。0 ]7 s4 N( ?0 f/ z1 R4 a
        对于E来说,它的选择位置有两个,一个对应三角形的“边”,另一个对应三角形的“角”,' o* T' J& {! t2 c1 g
9 s. \% m+ Q  V$ u) c6 G. i

. w- l7 t0 v2 Y" V  n  W8 }6 O; R& }! p( ]2 z6 p! k* J+ _
        现在把E移到三角形的“边”去,把D放到右边的空位,; R: \1 `1 i, \/ _
1 `( q% b7 x" v

, f/ j( x, N2 N5 Z9 b- q+ u0 d( [1 |& Q
        让ABC三个方块依次在左边做顺时针方向的挪动,直到D原来所在的空位第一次空出来为止,
) @2 n) F+ H, C2 Y3 T7 u  ]! o
* c7 {2 k" O2 o  x0 @; o2 a# ~; o; e2 N) G9 G: G1 p  H' L

# g6 t/ z. h, Y        现在把D移回去,2 F) [3 g+ {; A# t5 L; h6 x
& r- N4 O' `- I& G+ P/ o

6 L/ |3 `3 _  q8 G+ y9 ^$ Y9 m9 X4 g8 P7 U: f3 g
        把E移到三角形的“角”,同时把A移到空位,然后同样让CDB三个方块在右边做顺时针挪动,直到……" e6 m9 q/ B! F+ m$ x
6 R# E3 {7 e4 J- x
2 X% b) F5 `' u$ ?- x
7 R9 }4 z6 p* \# l1 U6 n2 A
        A原来所处的位置第一次空出……继续顺时针挪动,直到……+ b1 k0 s0 E7 x) M% w
- Q" M4 S. v. i, ]- }/ q

2 J, Z& ?8 l5 N$ h8 v* u: g
& ?/ e1 T) r( l9 \3 X        A原来所处的位置第二次空出,好!停止!把A移到空位中,
- W( I# n! R- [. B0 a
8 n' D$ T) e0 j* l) i
, U6 K: T1 @3 e! @# [, G3 a
: |, n. ^# ~+ |/ w7 T        行了,至此“基本变换”完成!!
- G4 \9 f/ M/ T' H2 k% w        对比一下初始状态,有什么变化了呢?不错,“基本变换”让“三角形序列”中的三个方块顺时针转动了一格!!2 K) [- R9 _0 ]. A5 T$ e) x
        再总结一下方块移动的规律,从上面各步骤中把绿色粗体字抓出来,移动的口诀就是:“边、顺时针、第一次空出、角、顺时针、第二次空出”
% w1 t- F: M* L' ?! m- {2 f9 g4 p# A: {3 p9 g) p  A, \" E
(图二)8 a8 h( i$ \. s' c# N# D

5 H( c5 C0 O- i) u0 I        如果在初始状态时把BDC作为三角形序列来进行变换的话,口诀则变为“边、逆时针、第一次空出、角、逆时针、第二次空出”,得到的结果则为:
# \7 M6 P  K- M2 J& w
2 @8 @1 F- L3 U
  Q8 U6 I8 n; `
3 e) t: d$ m$ n0 j( E; `0 D0 W        BDC三角形序列逆时针转动了一格。, _3 x8 s( `) i1 ~
        可以看到,除了顺时、逆时转动方向不同以外,两种基本变换的步骤都是一样的。然后让我们总结一下什么时候用顺时针、什么时候用逆时针。' }2 b, k: s2 R( d8 r
        把(图一)的长方形每90度转一次,我们得到:
: Q* t6 C  v  L4 T0 R! K! l3 k8 E0 O( M7 r$ ~. o

/ W* G3 O$ I% j, {$ m0 [9 N7 y9 W
        以上情况采用顺时针旋转。同样由(图二)则得出:0 p- R# Y& n6 Q# }1 ^7 R; g
1 k4 M6 E% T" R) J! t$ J

4 Q% q# |! x1 K) U/ L' N5 I& d. l5 z- I3 [, D
        以上情况采用逆时针旋转。. s9 J  u" U! a+ q) G1 X( g
        现在各位能总结出这种基本变换的规律了吗?选择需要的6个格子,选择需要变换的三角形序列,根据上面找出旋转方向,然后“边、转、第一次空出、角、转、第二次空出”。
作者: tabris    时间: 2007-9-5 17:08
基本变换的作用:
. g& V  v" }! f! d- S4 B        迷题探索第一篇里说的基本变换能让我们随意安排目标方块的位置,这次的基本变换有这个能力吗?有的,否则它也不能称之为“基本变换”了。请看下图:
. b& x- k# p. D/ S4 B; d
' W1 r' S! o5 \
+ g* Z' R5 I- [% @1 {' |- s, E4 n  S8 `# X8 |# b% F
        假设我们需要重新安排A的位置
; D8 ]9 R8 m& B5 T1、通过ABD三角序列一次变换,A能到达位置B;
) b  c; D, T0 ?0 [' a, Y( |2、A在位置B再进行一次ABD三角序列的变换能到达位置D;
/ f8 B, h9 F6 c- L5 Y3、然后,在A处于B或D位置时,让A、C和剩余一个方块做基本变换一次或两次则A能到达位置C;
; r/ @% V5 }, o+ Z3 h       现在左半部分的位置已经全部能到达,剩下位置E和它上方的空位了,
! `( ?5 Z% o. N4、把A、B方块向右移,于是可以形成:4 Q3 ?; {( W  b+ l/ v* d; ~

& r4 O% d. ^# A9 x; C% X+ G! \
8 q# T* B) W9 M' V/ P# s& {
( M7 ~+ n! |+ {/ [8 I6 }7 Z: M        这样,只需要让ADE和ABD两个三角序列继续做基本变换,A就能够到达右边的两个位置。
- l) y) C" L2 W5 ?        在6个格子里能够任意安排目标方块的位置,一幅n(n>6)格的矩形拼图可以看作若干个6格子单元的集合,因此通过基本变换,能在整个拼图里任意安排目标方格的位置!
1 U. U4 t5 N" Y7 m3 g" S# Y        仍然是迷题探索1里面所强调的:“任意安排”是指不考虑其他格子而随意调动目标格子,当其他格子的情况需要考虑的时候,某一些拼图组合是不可能出现的,例如:! H4 D, \! W. S7 w6 l
7 ]6 l0 W' W+ M1 n
不可能通过基础变换变成
  t' m5 X  Y3 a' F
1 r' p" V5 r' F/ }4 {        但因为这些内在规则已经内含在拼图里了,我们不必予以理会,专著于目标方块,其他方块自然会回到其该去的位置。
作者: tabris    时间: 2007-9-5 17:09
实战:$ ]8 J0 t& B8 W7 g
        现在可以用一道古老而又有富有民族文化的拼图迷题来实践检验我们的理论了,以下迷题来自《大唐诗录》,需要拼出的拼图是从右上角排列到左下角的唐诗诗句“洛阳亲友若相问,一片冰心在玉壶。”。(诗句出自唐朝诗人王昌龄的《芙蓉楼送辛渐》,全诗是“寒雨连江夜入吴,平明送客楚山孤。洛阳亲友若相问,一片冰心在玉壶。”)* z) X" R+ r5 W
" [: `" v5 r, R- h* S! L8 L

$ H4 O7 e* z0 q2 W& i, H $ C* e* Z* }6 ]) N
        这个拼图里,所有的文字可以且只可以和“句号”互换位置,所以“句号”就相当于一般此类拼图中的“空位”。在以下的图解中为直观起见,直接把“句号”用空位代替了。
. s+ m8 |4 ^' A8 I9 [. L% R
3 F. ]5 z, m2 f. s7 C: N
( Y( [4 E! T$ E/ x! q7 E: U' q/ |% k, ^/ i' _" c0 h0 m
        这种拼图一般位置的方块都不难拼好,所以就不详细说明了,只在关键的地方着重叙述解法。我们按照从右往左一列一列的顺序来拼,“洛”“阳”“亲”都好办,直接拼好。剩下的“友”字需要应用“基本变换”来完成。如上图所示,先把“友”字挪到黄框范围的六个格子内,并让“友”字和它的目标位置坐标(4,4)处于同一个三角序列中,然后开始“基本变换”。先从上文的表格中查得这种布局应采用“顺时针基本变换”,然后“基本变换”口诀第一步是“边”,“若”字已经在“边”了,
2 G+ |1 b: x  _: G" D9 h' b. o' M9 Z- C- U2 ^
* U' G! Q8 s9 p  d6 _  N

! u, U/ ?& o; Y5 W& X! c        三角序列中的一个移到空位,剩下的部分顺时针挪动,
7 k8 v/ g$ t% t0 I7 `8 L0 Q; \; \1 }& b5 Y( S

$ \; @# N4 E3 K+ h/ l
; U) E8 k$ Z, _0 K1 A! c1 t4 O# X        直到原位置第一次空出,/ T- b& d  B$ A# X. Y5 C- w

3 Y4 C( n/ f- V) l: K, O7 n( G- H0 ~. p, c. Q% ]; c6 g
% i' Q3 a' s+ q
        把先前移出的放回去,& F$ R7 l) e( D3 O! @
, }, H* A4 s/ k6 C# i+ m3 b

, C4 m" M% z8 w# k$ O( D1 t
0 I8 m4 ~" G5 H        口诀“角”,把“若”移到三角序列的“角”上去,& c( @/ r  Y8 I& L
9 I4 g9 Y5 V3 E5 A$ T, [- f

9 n% E# R( _% h: S% T1 C3 P$ I- r% Q' d
        三角序列中的一个移到空位,剩余部分继续做顺时针挪动,6 q; T) \! J, {( u' `
* Z* H5 q0 D, i4 @

- D3 D# n+ T+ U) i# b. s+ Y6 }/ @& ]4 T; y. h2 }( @
        原位置第一次空出,继续顺时针挪动,! o) r2 u$ _8 {3 v+ h* |
4 Z3 v) C6 t# H  ~1 x& y
( }' A: g* C, R3 f/ i- i% w

8 J0 w& l" \& A6 O- L8 r. h        原位置第二次空出,停止挪动,
6 N# p3 g; `5 T8 C' @( A" Q2 z5 ?( h$ _

. r  g4 k( {. e$ D. B- z2 x
; T0 n) v+ A9 _$ H$ V+ x        把先前移出的放回原位。现在三角形序列中的三个字已经顺时针移了一格,以上步骤再重复一次,“友”字就能到达坐标(4,4)了。
( f& h: j$ _' n# L- X6 @9 m, T  V9 b$ n5 L
& d3 _1 C1 w5 W2 k
3 E- x- b3 J2 P: \) Z* `
        同样方法,我们可以完成右边每一列的拼图直到左边只剩下两列为止。
: b% T5 @! j$ p- [" ]' a2 y  H; g3 U3 A" x4 R

/ x( N, F1 l* L- x5 W
; U) X) j# {8 ]- e7 g/ x        因为最终空位(即“句号”)要落在左下角,所以剩余左边最后两列时,我们选择重上往下拼。先把“一”字的位置放好,“一”字的左边应该是“在”字,那么把“在”字安排在黄框的六格范围内,并使之与其目标位置坐标(1,1)处在同一三角序列,查表确定这种布局采用“逆时针基本变换”,一次操作以后“在”字到位:
7 C; B+ B3 J6 [1 m( h4 K* J) I
0 u# G' q' ~& J" D0 S9 T9 ^/ @( A$ b* A" N
! J3 p# c& Z  j2 c
        “在”字到位后,整幅拼图就剩下左下角的六个格子了,同样采取基本变换来完成。先拼好“片”字的位置,然后要确定三角序列里应该放哪三个字,不错,应该是“壶”“冰”“玉”三个字,那么就把以上三个字挪到三角形上,最后就形成下图:. w* P! T5 B) v  j. w4 S

2 J1 A1 Z2 @2 t$ p) A8 }( j/ ?8 N' o* {. e

1 u3 S  s# H( D, z        好了,只需要简单地再做1~2次逆时针基本变换,拼图就大功告成!!, }0 k* {% m2 r# {" f
; ^- ?/ q8 `1 K: F

1 O: a' m+ S$ e" c" w) E    总结:初看“基本变换”的步骤觉得复杂,其实不然。在六个格子内,每一次挪动其实最多只会面临两种选择,记住了“口诀”,你就可以在每次面临选择时确定正确的步骤,多试几遍自然就清楚了。牢记“基本变换”的作用,它能够让你在锁定其他所有单元格不变的前提下,只变动选定的三个单元格,灵活运用这一性质,任何这类腾挪拼图都必然能够手到擒来!
5 ?, F& g; p  h7 K& [( u9 C, x: K6 t- i/ c
        论坛上关于此类拼图的挪移还有一个帖子:https://www.chinaavg.com/read.php?tid=6486#57592,是从序列的角度来解决迷题的,这确实是一个很有趣的解决思路,我刚开始也曾循这一途径思考,有空的话下次继续探讨啦~
作者: vexer    时间: 2007-9-5 18:18
很好,很强大~吃完饭再来仔细看看。
作者: soring123    时间: 2007-9-6 09:13
你们也忒牛了吧 看的眼花廖乱
作者: tabris    时间: 2007-9-6 10:22
soring,在你的https://www.chinaavg.com/read.php?tid=6486#57592里我就说写,现在终于脱稿,历时4个月啊~~辛苦啊~~~~~
作者: laien607    时间: 2007-9-6 17:20
不错,受益匪浅!( i; _" Z! l' m7 c$ j: {) S
[s:2]
作者: fenmu    时间: 2007-9-6 21:37
这个其实就是前些年流行的一种叫魔板的玩具~
2 k% e! d( A% p
( y3 b6 Y9 o' `* h这种东西和魔方一样有自己特定的规律~
+ n4 [3 P: Q* E7 X+ ^* u+ I- ^; |( T$ r  L* E2 T# g  n9 J
貌似楼主的方法颇麻烦我到有个简单可行的法子百试不爽~
# W% N) `& u- r- B. l; x) _3 E; x; i2 H8 {+ r6 G
可惜我讲给身边的人听时没人能理解~
7 z* v9 t& @. X, ~, M! j- t, G. `: D
- M" W# |, C8 |- c另有这个谜题的游戏有黑镜~shivers~等
作者: fenmu    时间: 2007-9-6 22:15
其实这个拼图谜题不论是拼行还是拼列
$ J2 D* A3 w+ v2 Q! b7 b+ s" e. a
2 D9 p+ Z: V; f3 [: q- c% b6 z最难的都是最后一块(这一块有可能是该行或列的任意一块)
5 ~! U8 X% E! {0 ?' c8 O
! T' a/ c( H8 b0 ]% d
9 r' y6 {, P" [* e' ^! r: |1 C. _如图~很多人可能都会为如何把友字移入右边一列的最后位置头疼9 K  H* f8 o# }! z3 B1 J  o# N

8 p6 R; S4 m6 f! |, x7 s4 T
2 f% l6 B/ U+ d6 L! `这里可以这样进行~: ^- o# q  ]! T; G& ?

& |3 R( ~: y% [0 b3 Y) U把洛字向左移一格(这里需要先把空格移动到洛字左边)~
3 a, O% P2 ^! v' u# d. W0 m0 L- J6 H' W0 Z
然后把阳字、亲字、心字分别向上移动一格,友字向右移动一格(即跟着洛字顺次移动)~
& ~" j& o. C0 O/ j, G5 p5 k( r, P/ a* D: {0 f4 L  Z) `; E
这时候再把心字向左推一个位置(这里需要先把空格移动到心字左边)~5 V6 f9 v+ m- q1 h* X

8 E7 y' e$ w" c) V- G完成之后把亲字、阳字依次向下推一个位置洛字向右推,归原位~
4 [( E- n: I) e) L, k. p& D- N% k# G& K( _8 P3 [5 @& j
这时候右边一列就完成了~
7 s* m- S1 o4 d( E0 e/ T3 U' q6 H3 o! g/ L
解决了最后一个块的问题之后~$ z; S9 i3 P7 p6 P
% Z8 Q4 C- J. `
我想这个拼图问题也就迎刃而解了~
, o0 {8 s- i) s5 }% A9 ?4 Q" K" F# B4 a0 `5 g4 u7 E; Q/ Z
3 }' L/ x  {; i4 S* M9 W

) Z: B& r) j5 I) T* ^PS:该方法我取名为以退为进,魔方也是可以运用的~当然魔方的要略为复杂~
作者: tabris    时间: 2007-9-7 09:04
楼上的方法对完成前几列的排列很有帮助,而且必我提出的方法要更加明了,赞成使用该办法来解迷。
4 Y2 S4 F& e5 [' i9 r4 S6 p/ I6 X7 R  z; W. g. U  g3 x
不过在最后一列的时候楼上的方法就比较麻烦了,因为已经“退无可退”了,在最后一列中要腾挪方块,必然要涉及到右边已经排好的列,这样的变数就比较复杂。不知有没有注意到,在我的排列过程中,所有已经排好的方块都不需要再做改动,这样可能也是一个优势。1 `, C) [: F- {8 R# ^+ K- \
$ E; W9 R9 L" T2 L; G+ A
其实所谓“基本变换”实际就是如何在6个方块里腾挪,所以留到最后剩6个方块时再使用也可以,之前的大可以任意发挥。7 g8 X8 F+ y7 J+ y: i  X9 o( q% w. |
7 @; B( T! |: b; f( J. J% `
不过在形成“一般方法”时,需要尽量减少变数,从而能使用固定模式解决不同问题,所以这是“万能钥匙,但不一定是最好的钥匙”,哈哈!
作者: fenmu    时间: 2007-9-8 21:22
嘿嘿~楼上一定没有实践过我的方法~9 |, D8 s4 c& Z& I) J% u9 N8 Q

$ C1 m7 o* S0 ]7 |, s其实完成了第三列后~第四列是根本不用完成的~) j* A' Y  x% F
, p6 O/ u9 }6 _% B6 ^" e$ b& o
当然我给的只是一个方法~没有什么理论依据~有的仅仅是一点点经验罢了~
* c7 ?# N' y/ T: [  }! a  o0 K. e% g
作为迷题探索当然要有一定的数学依据~6 g) h# M' I. Z
  D) \+ P9 e3 B0 B6 c& }
其实迷题即数学~
作者: tabris    时间: 2007-9-11 11:31
哈哈~数学依据是有一点点,不过我还没法证明,这类拼图的基本数学依据是:在>=6个格子的矩形拼图内,如果需要改变其中一个方块的位置,则至少还有两个其他方块的位置也必然要发生变化。我也是根据这一依据来制定所谓的“基本变换”的。% G" r6 U. O2 E$ i  u
% B' d5 a# ?5 m+ e0 x; M: q
跟据这一依据,在例子中4×4的拼图,如果把右边三列全部拼好,则剩下的最后一列并不一定会自动完成,因为最后一列其实还存在其他可能情况(下图只截取最后两列,并以数字表示):  B8 K3 w! b+ l& v
: l% T* K! ?3 E+ v% H4 \1 @, Z; O7 N
情况之一:          情况之二:7 ?* m  S- ^9 C% _8 j
$ N9 x! L- ]" ?. ~
可以看到,即使右边一列固定为2、4、6、7,左边一列依然可以有多种变化,一种是1、3、5,一种是3、5、1,如此类推还有一种是5、1、3,楼上说最后一列不用考虑实际上只有三分之一的成立可能,万一不幸遇到3、5、1或5、1、3的排列,要把它还原成1、3、5还得费一番功夫呢~
/ |7 t" A+ j5 T3 \  o5 j6 i& o) |; @7 |# O7 F% h$ m, R3 ~
1、3、5和3、5、1之间的转换可参考下图(使用的依然是基本变换的方法):
6 I( K6 L9 [( C+ ^0 i. ]
, g4 @8 z- \- A! ]# S0 K [attach]6659[/attach]
作者: 82593918    时间: 2007-9-21 01:13
是拼板,我老是把里面的小块撬出来对好再弄回去 [s:23]
作者: catsoup    时间: 2009-5-7 01:14
长知识了...5 v& f+ e9 o( r  K% n3 a
太强了
作者: 597221986    时间: 2013-5-5 12:52
玩这种谜题总想把那小拼块撬出来
作者: cg372101    时间: 2014-8-31 17:55
T版能重新提供下帖中链接(好像失效了)的新地址,也就是 https://www.chinaavg.com/thread-6486-1-1.html 贴提到的文章,好像文章链接打不开了
作者: teww    时间: 2014-9-1 00:01
…………我这人从以前到现在最恨的就是拼图移动的谜题,看到这个帖子我感觉生活又有希望了(核爆)) {$ [' g! ]0 y4 S' {9 o
我决定要珍藏起来好好学习,争取以后不要看到拼图就skip……(涕泪纵横
作者: 1sthappiness    时间: 2014-9-4 18:24
太强大了,对楼主简直佩服得五体投地!一看就是做学问的料啊!总结规律的能力太厉害了。
作者: mosterxoo    时间: 2014-10-3 17:40
从没仔细思考过这个问题,每次都是凭感觉一顿乱拼




欢迎光临 冒险解谜游戏中文网 ChinaAVG (https://chinaavg.com/) Powered by Discuz! X3.2