- 精华
- 0
- 帖子
- 856
- 威望
- 0 点
- 积分
- 1022 点
- 种子
- 9 点
- 注册时间
- 2009-11-5
- 最后登录
- 2024-11-14
|
如图,日站上的攻略不算最极限吧,最极限的方法应该是,不用人脑,用电脑~
昨晚走到最后,发现还是有点难度,靠运气都过去了,但是回想一下,万一后面还有更难的题目,或者DLC弄个超级复杂的,该怎么办呢?于是想到这个时计盘指针和三级计算机等级考试里的经典题目-报数出圈很相似,无聊的写了个C程序代码,生成了exe文件,用来秒求走法~
方法如图,当然得先知道水晶盘的个数和每个上面的数字,然后按图中的红色字体类似,自己写个顺序就行,从哪开始,顺时针逆时针都无所谓,之后双击上传的ff13_2.exe文件,在dos窗口首先输入水晶盘的个数(会有提示,如上图例子中的11个);然后分别输入每个水晶盘的数字(要按照自己标定的1~11的顺序来,中间用空格分开即可),即可瞬间求出一种走法。图中的例子一共6种走法,程序只会给出一种,当然已经够了。
其实还是自己解谜要好玩,格子很多实在过不去了可以用这招。其实SE给我们的题目有很多种解决办法,所以多尝试下能过的去,要是弄个格子很多但只有几种方法的,比如我例子中的那个,那真是坑爹。
最后附上C++代码吧,继续攻略了。
#include "stdio.h"
#include "stdlib.h"
int main()
{
int a_len,i,j,k,up,start,nn,mm,position,out;
int array[50];
int seq[50];
int clock[50];
int answer[50];
printf("Please input numbers of crystals:\n");
scanf("%d",&a_len);
printf("Please input each number(separated by space):\n");
for(i=1;i<=a_len;i++)
{
scanf("%d",&array);
}
nn=1;
out=0;
for(i=1;i<=a_len-1;i++)
{
seq=-1;
nn=nn*2;
}
for(start=1;start<=a_len;start++)
{
if(out==1)
break;
for(j=1;j<=nn;j++)
{
for(mm=1;mm<=a_len;mm++)
{
answer[mm]=0;
clock[mm]=1;
}
position=start;
answer[1]=position;
clock[position]=0;
for(k=1;k<=a_len-1;k++)
{
position=position+seq[k]*array[position];
if(position<=0)
position=position+a_len;
else if(position>a_len)
position=position-a_len;
if(clock[position]==0)
break;
else
{
clock[position]=0;
answer[k+1]=position;
if(k==a_len-1)
{
out=1;
break;
}
}
}
if(out==1)
{
printf("Sequence:\n");
for(i=1;i<=a_len;i++)
printf("%d ",answer);
printf("\n");
break;
}
up=0;
for(i=a_len-1;i>=1;i--)
{
if(i==a_len-1)
{
seq=seq+2;
if(seq==3)
{
seq=-1;
up=2;
}
}
else
{
seq=seq+up;
if(seq==3)
{
seq=-1;
up=2;
}
else
up=0;
}
}
}
}
if(out==0)
printf("**ing SE, there is no answers! Or you may give the wrong numbers!\n");
system("pause");
}
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|