冒险解谜游戏中文网 ChinaAVG

标题: AVG迷题探索(07)--静物(STILL LIFE)祖父的箱子,我的TURBO-C 解谜 [打印本页]

作者: easonxl    时间: 2008-6-28 15:37
标题: AVG迷题探索(07)--静物(STILL LIFE)祖父的箱子,我的TURBO-C 解谜
好像有些小题大做,不过用我的脑袋实在是解不出答案。
( Y; v* T+ v0 Y0 m6 Q/ _
7 \" f; @$ N0 G" ^谜题:祖父的箱子
, M; x6 o( v2 L( S0 G0 q$ h5 f( K2 Y! w9 a( L6 |
要求调到中间为红心
6 i' x0 Z) w, Y% X, |5 x  q0 J$ X7 v1 a1 |% B  `7 \# Q% B( X# |( ^
两边为方块 4 j5 J1 P! |7 q; [
5 |" }7 _% [& ^- e- \+ f5 p0 t4 d
分析了一下,每动一个钮会有三个旋转,而且结果不唯一,想不出来,只好编程解题。
, |# F- Q" e% _: d2 b& X; A' w0 S' b& ]( n4 @2 [" K5 r. n) j
将每个按钮按下的情况做统计,画出一个矩阵。
& w2 ^) j% e/ v4 N! b+ ~8 w. p3 V  E" }; _" b8 }
转1号    1    -1    1    0    0
' P# x6 V9 ^+ ?# L% r转2号    1    1    0    0    -1 $ L+ Q1 H" X, Y3 _/ a4 C( b2 E& a
转3号    0    -1    1    -1    0
. `+ z; C% P/ F" j转4号    -1    0    0    1    1
' u# Q' @) Y# f2 j# }转5号    0    0    -1    1    1
" x2 J$ Y$ n, G; ]; b! y6 S# {: V0 ]1 s
其中,顺时针转为1,逆时针为-1。 ! E( r" r& |7 Y/ S$ M( E" H- d

/ j( j$ a# [5 }8 @2 ?5 S设每个转子转动的次数为X1,X2,X3,X4,X5
+ K  V. G5 m7 H. ]) W, J8 i. q7 q- x$ E5 f0 k
对可能的次数进行循环镶嵌迭代。   W: I/ {5 |3 @6 k3 L
& F" l  y& P- f3 `: }& J$ R+ h( L
次数以4为循环,故0<=次数<=3
4 Z/ G+ H3 w0 a3 N% M+ t5 H3 X, R" L! q. g. y6 h
分析结果。考虑和差可能产生的结果以及4为周期的循环结果。 , _+ E" O& @5 x/ A4 U
! r8 [: c. d9 z* R1 V$ g
根据结果要求,对转子1,其结果可能为0或4。
9 E8 b" x5 D9 }* M5 O  |! n) C5 R4 y' I" N6 U! M' w& d
对转子2,其结果可能为2或-2
: |% a$ R8 I' ~# x' ]$ B, M" h- W& G& K
对转子3,其结果可能为2或-2   ^; H1 s! i1 N! F) N; }

9 N- E8 w: E4 m( o4 D对转子4,其结果可能为1或-3或5 " ?- b/ A( b0 z7 x7 E1 U
+ f  ~, v+ k4 v0 H/ T# j: u
对转子5,其结果可能为3或-1
& ~0 q! Z, Z2 }9 Z& T8 ^5 v, P2 |0 n! V# r
TURBO C进行编程,程序如下 $ O8 Y4 n9 I% G: u
#include <stdio.h>
0 n% W  B1 Z% K6 I( }/ {* f+ Uvoid main()
! N% k+ l9 f1 _- a{ + u% S5 D" _& H9 R7 Q/ o
  int x1,x2,x3,x4,x5; & j( P# t7 M; |: Z0 Q
  int a,b,c,d,e; ! o- k  _4 W9 D4 |5 {' [4 A
  for(x1=0;x1<=3;x1++)
( S) v, I& }9 h# r    for(x2=0;x2<=3;x2++)
3 {4 ]3 J3 E5 E( b" d      for(x3=0;x3<=3;x3++)
8 ?8 N0 E4 H& ]9 T4 I! D        for(x4=0;x4<=3;x4++) ) j) z: Y: e* Y0 p# S# S2 @' o
          for(x5=0;x5<=3;x5++)
# `4 j& c( _) k+ c! W            {
3 j( ]$ R3 B& w/ j& j$ b9 n  f* c         a=x1+x2-x4;
% A6 }; O( l; w         b=x2-x1-x3;
) K2 z! I( Q8 v5 g, r. @& R9 O! \         c=x1+x3-x5; ( ^( Y" X- F& S/ V" Q0 b1 H
         d=x4+x5-x3;
$ [/ R0 n* p6 A$ X         e=x4+x5-x2;
' T* t) Z; L2 Z- ?1 E         if(a==0||a==4)
$ b: N( Z7 \7 A         {
4 M; p+ \. j& d0 g           if(b==2||b==-2)
- |! ?' z" ~* A             { ' w. Y) @4 h9 W# t
            if((c==2||c==-2)||c==6)
. Y+ l% W9 i! S! h( P             {
8 G# v" x4 L- r! ^6 Q                 if((d==1||d==-3)||d==5) 0 Q, E8 C0 c8 C: e2 {
                { 9 }( J7 Y; c6 c6 R9 X$ F
                 if(e==-1||e==3) : a( i9 y3 C$ I6 D8 s. Z+ L
                 printf("x1=%d,x2=%d,x3=%d,x4=%d,x5=%d\n",x1,x2,x3,x4,x5);
0 N+ r9 d% S) J7 Z/ f# f                 break;
. Q+ [: p8 s$ \- N% y4 t* L# `                }
0 @( f: g* q5 a7 j! `8 W. S
( @3 Y: q0 V0 y1 s             } 4 g* a6 F" n0 e* V
8 y  S7 Z+ w0 x9 S: F  w7 z5 R  r
               }
9 @5 e- B3 K% K; b  @/ i; r" g
         } ' @/ V, R' Q$ B3 o: c& A1 A
* d2 s7 Q/ r& q! G9 E9 d
       } 6 o& {$ N, O) |$ O7 y
}
& ~2 q: O' w9 L: {0 m5 M- Y& S* _
编译,调试,结果为X1=0;X2=3;X3=1;X4=3;X5=3
作者: 龙翔九天    时间: 2008-6-28 16:46
LZ真是AVG铁杆和程序精英啊 [s:2]
作者: easonxl    时间: 2008-6-28 20:51
引用第1楼龙翔九天于2008-06-28 16:46发表的  :
* H8 n! ]1 P5 @LZ真是AVG铁杆和程序精英啊 [s:2]

" }8 n, h! o+ ?+ V; ~4 ]5 @$ \两者都谈不上。。。呵呵,先想就这样解方程的,后来同学说可以编程,我先还觉得不用啊,后来实在没办法了,觉得编程还挺好的,就上网边查语法边凑出来了。
& t6 t4 v- e( |& ~; c0 ~
9 y* N& P( h% I. R不过确实很喜欢AVG啦,一共好像也就玩过两三款而已。虽然操作没有什么娱乐性,但是剧情实在太丰富了,还可以练英语,哈哈~9 H2 w0 P$ _, @* }; T/ p
; W% n8 ~. b" P# d, k" N$ l& m
静物太经典了,就喜欢做得这么认真的游戏!
作者: lazlow    时间: 2008-6-28 21:02
不用编程吧, 取模运算罢了, 当然还是感谢easonxl提供的思路.1 U/ z, b: a/ @5 D  z
这类问题必须是不依赖于路径, 而且是可逆操作, 才可以用数学方法求解.
作者: easonxl    时间: 2008-6-29 11:01
引用第3楼lazlow于2008-06-28 21:02发表的  :  z* q5 N# h, `  t; x# R
不用编程吧, 取模运算罢了, 当然还是感谢easonxl提供的思路.
/ ]0 f' K  q. E1 ]2 y7 L这类问题必须是不依赖于路径, 而且是可逆操作, 才可以用数学方法求解.
3 G) b, a3 i; H# {# X2 N  M( r2 s1 Y
能不能具体告诉我下你的解题思路?谢谢。一直都想不出来,我也觉得这游戏没必要做得这么复杂还要编程的。
作者: lazlow    时间: 2008-6-29 15:17
转1号    1    -1    1     0     0 ! _7 Z9 ?! d! i9 C+ d! [
转2号    1     1     0    0    -1
4 ^( \' T2 j9 v  y! r转3号    0    -1    1    -1     0
1 b, l, Y5 W, E7 e转4号    -1    0    0     1     1  ' t: u  X% {- r- F/ ^0 T
转5号    0    0    -1     1     1  ' Y! a3 J7 [$ }# F3 R8 i
其中,顺时针转为1,逆时针为-1。
& W' `8 c: B! G% S& j设每个转子转动的次数为X1,X2,X3,X4,X5 ' o# A  m5 O7 E1 i8 t, X7 @4 c6 y
对于转子1,最终状态为0(mod4),对应方程为 X1+X2-X4=0(mod4)
% H8 c. P& q8 Z) H3 u对于转子2,最终状态为2(mod4),对应方程为-X1+X2-X3=2(mod4)
& w( U) d' a  L6 d' f/ |5 C对于转子1,最终状态为2(mod4),对应方程为 X1+X3-X5=2(mod4)
. A3 s6 t* k: a: Z% {  y% [; Z对于转子1,最终状态为1(mod4),对应方程为-X3+X4+X5=1(mod4)
7 w' t' `% h* x1 V对于转子1,最终状态为3(mod4),对应方程为-X2+X4+X5=3(mod4)/ e3 D( f$ ~( `9 E4 x/ W
由于只是找一组解即可,不难求出对应的在0,1,2,3内的整数解5 s( V$ `+ _* v( z

+ J7 C2 N6 X. b类似这样的谜题还有Keepsake中的五位密码盘、Safecracker的五个小钢轮,当然都是不依赖于路径, 而且是可逆操作的。
作者: easonxl    时间: 2008-6-29 16:36
引用第5楼lazlow于2008-06-29 15:17发表的  :
& T' q/ w5 l$ i( c) v转1号    1    -1    1     0     0
8 U& _$ ?' b$ V转2号    1     1     0    0    -1
7 b/ u7 t( A+ ^转3号    0    -1    1    -1     0
6 Z' A& n4 c+ Z" J转4号    -1    0    0     1     1  
' E% K0 D8 ^8 g3 J+ r5 t转5号    0    0    -1     1     1  
) ]% z* \! M0 p.......
谢拉~~你是AVG-PRO,^_^,崇拜~~
3 o( _' Z/ \2 x我就是试了半天没试出那个方程组的解。
作者: vexer    时间: 2008-8-10 18:23
呵呵~不错不错,研究得挺明白
作者: uranus1997    时间: 2008-9-12 00:09
[s:2] 厉害,这类问题我也想过编程,最终放弃,因为编个程比我自己试出答案来还要多时间 [s:5]
作者: 624394425    时间: 2009-3-1 11:43
强悍- -|||
* k* p" @6 W% @自己向来都是凭感觉的...
作者: jamwell    时间: 2009-3-23 00:10
哈哈 玩出花样了
作者: jimi    时间: 2009-4-3 13:52
强悍,连公式都推导出来了,我当时是随便弄俩下过去的,不知道规律,如果转钮再多一些,就要看规律了,呵呵~~
作者: 19747491    时间: 2009-5-6 20:55
一定要支持你们的劳动成果!
作者: pkl06    时间: 2009-5-6 23:12
我解的时候是乱转了一轮,然后看到窍门,再以移动第二个轮子转一下结束为目标,然后慢慢转到我预想的那个状态,呵呵很笨的方法
作者: firendless    时间: 2009-5-12 00:39
看到这个帖子被顶上来了...于是看了一下,似乎这个不是最优解...不过鼓励一下~
作者: 兴奋    时间: 2009-5-17 19:32
。。这个.. 说实话答案我也没看懂。。
作者: seven    时间: 2009-5-19 12:40
哇 用TURBO-C来解游戏谜题 还真第一次听说呢 呵呵   厉害啊
作者: fangfang0703    时间: 2009-6-16 23:05
我是蒙出来的
作者: 邪恶小白兔    时间: 2009-7-26 11:01
一开始也很头痛,转阿转的就转成功了。。。
作者: mjchina    时间: 2009-10-5 18:42
没这么复杂 开始乱点,后来找到了规律,几分钟就开了
作者: dilemma    时间: 2010-6-28 15:38
shame of my IQ...
作者: aquans    时间: 2010-8-15 19:44
…………呃,,,惭愧啊,我的方法是翻攻略……




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