A9VG电玩部落论坛

 找回密码
 注册
搜索
查看: 28972|回复: 45

ヤシャス山 -AF110年-时计盘指针走法的极限研究

[复制链接]

精华
0
帖子
856
威望
0 点
积分
1022 点
种子
9 点
注册时间
2009-11-5
最后登录
2024-11-22
 楼主| 发表于 2011-12-20 13:16  ·  吉林 | 显示全部楼层 |阅读模式

如图,日站上的攻略不算最极限吧,最极限的方法应该是,不用人脑,用电脑~
昨晚走到最后,发现还是有点难度,靠运气都过去了,但是回想一下,万一后面还有更难的题目,或者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

精华
13
帖子
13057
威望
47 点
积分
18294 点
种子
837 点
注册时间
2005-12-10
最后登录
2024-11-22
发表于 2011-12-20 13:59  ·  台湾 | 显示全部楼层
其實了解這個小遊戲的玩法邏輯....就會很容易

通常困惑的應該是 最後12各那一關...作一下筆記就會過了!!

终结者

支持FF(・∀・)

精华
0
帖子
7704
威望
0 点
积分
8916 点
种子
0 点
注册时间
2009-6-6
最后登录
2014-3-21
发表于 2011-12-20 14:26  ·  台湾 | 显示全部楼层
jojo66 发表于 2011-12-20 13:59
其實了解這個小遊戲的玩法邏輯....就會很容易

通常困惑的應該是 最後12各那一關...作一下筆記就會過了!! ...

有攻略嗎?我也卡在這裡了

精华
0
帖子
856
威望
0 点
积分
1022 点
种子
9 点
注册时间
2009-11-5
最后登录
2024-11-22
 楼主| 发表于 2011-12-20 14:30  ·  吉林 | 显示全部楼层
hitomi7891 发表于 2011-12-20 14:26
有攻略嗎?我也卡在這裡了

如版主所说,这个小游戏仔细想想也不难,前提是建立在SE给我们随机生成的格子有多种解法,日站上也有一些tips。如果实在过不了,就用我上传的ff13_2.exe吧,一下子就过去了。

精华
0
帖子
459
威望
0 点
积分
460 点
种子
5 点
注册时间
2009-12-23
最后登录
2017-6-16
发表于 2011-12-20 14:40  ·  上海 | 显示全部楼层
我是来膜拜LZ的
这个小游戏 我玩了两关就歇菜了 懒得进行下去了

精华
0
帖子
896
威望
0 点
积分
1158 点
种子
5 点
注册时间
2008-1-30
最后登录
2022-4-3
发表于 2011-12-20 15:49  ·  河南 | 显示全部楼层
之前看jp的玩家live,那人硬是玩了至少1个小时还没走出去,旁边有人叫他做笔记他说这种东西做笔记太麻烦了,不想做,但是最后还是用了excel表格做了个,然后走了2次就过了。。歇菜,早点做不就好了

精华
0
帖子
15990
威望
0 点
积分
16325 点
种子
0 点
注册时间
2005-9-18
最后登录
2020-9-29
发表于 2011-12-20 17:22  ·  福建 | 显示全部楼层

这才是IT民工  
很棒

精华
0
帖子
856
威望
0 点
积分
1022 点
种子
9 点
注册时间
2009-11-5
最后登录
2024-11-22
 楼主| 发表于 2011-12-20 17:29  ·  吉林 | 显示全部楼层
本帖最后由 m4a1ken 于 2011-12-20 17:32 编辑

支持一下斑竹,其实我那么做只是给一些卡关的提供帮助,再就是:
1,SE给出的最大12格关卡,有很多种走法,我指的很多种,不是几种那么少,否则我靠头脑不会很容易就走过了,就好比大家都去抽奖,很多人都中奖,那只能说明中奖率很高。计算是穷举所有走法,找到一种走法就break跳出,所以12格理论上最大有12*(2^11)=24576种走法,当然有的走法走几步就行不通了。想想这么多种走法,如果只有一种是通的,那么走几次走通岂不是像中***一样了。当然我要说明,利用日站的一些tips,也可以排除一些走法。
2,如果最大不是12格,而是更多,比如20格,很明显人脑就不够用了。当然人工智能还不能代替人脑。机器只能按照我们给出的指令执行,人脑才具有主观能动性。
用程序做和人脑做就好比下深蓝和人下棋,电脑可以考虑近乎无穷多种走法去选择最佳的方法,而人脑凭经验也不一定输给电脑。
有点扯偏了,玩游戏嘛,快乐就行。

精华
0
帖子
6032
威望
0 点
积分
7250 点
种子
1526 点
注册时间
2007-2-8
最后登录
2024-11-15
发表于 2011-12-20 17:29  ·  香港 | 显示全部楼层
收藏一下 等入手后慢慢研究!!!!

精华
0
帖子
79
威望
0 点
积分
160 点
种子
5 点
注册时间
2008-6-16
最后登录
2018-5-31
发表于 2011-12-21 14:15  ·  浙江 | 显示全部楼层
楼主太强大了,轻松过掉AF110年的4个时计盘,第四轮居然11个,看着就吐血了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|A9VG电玩部落 川公网安备 51019002005286号

GMT+8, 2024-11-22 20:29 , Processed in 0.205319 second(s), 17 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

返回顶部