您好,欢迎来到气泡游戏网!

气泡游戏网
手机应用中心 热门攻略 轩辕传奇 气泡问问 疾风之刃 枪神纪 天堂2M 救世者之树 上古世纪 黑色沙漠MOBILE 未来战 冒险岛M(楓之谷 M) 传说对决 瓦尔海姆 鬼谷八荒 怪物猎人系列

当前位置:首页 > 攻略库 > 仙境传说 > 正文

《仙境传说(RO)》【密技】达纳托斯塔台(死塔)的猜数字计算机

更新时间:1604486504   |   来源:巴哈姆特

ReMem (~迹~) #1 2017-12-03 09:51:26
前些日子为了帮朋友打121每日任务
参考了【攻略】达纳托斯塔台(死亡之塔)流程上7楼
中间需要猜数字觉得很麻烦
所以乾脆写了一个计算机:http://rnai.000webhostapp.com/tower/
有满高的机率在5次内可以猜到
有需要的可以使用

为了避免未来网站关闭,也把原始码放在下面
把下列内容複製到纯文字文件并储存为附档名为html
就可以用浏览器开启来使用
(如果是用记事本,编码用ANSI储存,并把红字的地方改为big5)

原始码
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>RO-达纳托斯塔台猜数字计算机</title>
    <script type="text/javascript">
        function DataTable()
{
    this.TB;
    this.gaussValue;
    this.init();
}
DataTable.prototype.init=function ()
{
    var i,j,k;
    //将所有可能值写入gaussValue
    this.gaussValue=[];
    for(i=1;i<=9;++i)
        for(j=1;j<=9;++j)
        {
            if(j==i)
                continue;
            for(k=1;k<=9;++k)
                if(i!=k && j!=k)
                    this.gaussValue.push(i*100+j*10+k);
        }
    //建立表格TB
    this.TB=[];
    k=this.gaussValue.length;
    for(i=0;i<k;++i)
    {
        this.TB.push({
            ans:this.gaussValue[i],
            data:[]
        });
        for(j=0;j<k;++j)
            this.TB[i].data.push(getAB(this.TB[i].ans,this.gaussValue[j]));
    }
    
    function getAB(ans,gs)
    {
        var a,b;
        var i,j,x,y;
        a=b=0;
        for(i=1;i<=100;i*=10)
        {
            x=(ans/i|0)%10;
            for(j=1;j<=100;j*=10)
            {
                y=(gs/j|0)%10;
                if(x==y)
                {
                    if(i==j)
                        ++a;
                    else
                        ++b;
                }
            }
        }
        return a*10+b;
    }
}
DataTable.prototype.getGauss=function ()
{//回传删除个数期望值最高的猜测
    var i,N,buf,t;
    buf={score:-1,arr:[]};
    N=this.gaussValue.length;
    for(i=0;i<N;++i)
    {
        t=getScore(this.TB,i);
        if(buf.score==-1 || buf.score>t)
        {
            buf.score=t;
            buf.arr[0]=i;
            buf.arr.length=1;
        }
        else if(buf.score==t)
            buf.arr.push(i);
    }
    t=Math.floor(Math.random()*buf.arr.length);
    return this.gaussValue[buf.arr[t]];
    
    function getScore(TB,idx)
    {//回传无法删除个数的期望值
        var countArray=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
        var i,N,t,sum;
        N=TB.length;
        for(i=0;i<N;++i)
        {
            t=TB[i].data[idx];
            t=(t/10|0)*4+t%4;
            ++countArray[t];
        }
        sum=0;
        for(i=0;i<countArray.length;++i)
            sum+=countArray[i]*countArray[i];
        return sum;
    }
}
DataTable.prototype.gauss=function (gauss_value,na,nb)
{//删除表格中不符合条件的答案
    var i,j,k,N;
    N=this.gaussValue.length;
    for(k=N-1;k>=0 && this.gaussValue[k]!=gauss_value;--k);
    if(k<0)
    {
        alert("0");
        return false;
    }
    for(i=this.TB.length-1;i>=0;--i)
        if(this.TB[i].data[k]!=na*10+nb)
        {
            this.TB[i]=this.TB[this.TB.length-1];
            this.TB.length=this.TB.length-1;
        }
}
DataTable.prototype.restAns=function()
{
    var i,r=[];
    for(i=0;i<this.TB.length;++i)
        r.push(this.TB[i].ans)
    return r;
}
var gaussNum;
var currentGauss;
function init()
{
    gaussNum=new DataTable;
    myGauss();
}
function run()
{
    var na=document.getElementById("result_A").selectedIndex;
    var nb=document.getElementById("result_B").selectedIndex;
    gaussNum.gauss(currentGauss,na,nb);
    document.getElementById("log").innerHTML+=currentGauss+":"+na+" A "+nb+" B<br>";
    myGauss();
}
function myGauss()
{
    var ans=gaussNum.restAns();
    currentGauss=gaussNum.getGauss();
    document.getElementById("gauss").innerHTML=(ans.length>1?
        "我猜:"+currentGauss+"(尚余 "+(ans.length<5?""+ans+"等 ":"")+ans.length+" 个可能的答案)":
        "答案是:"+gaussNum.TB[0].ans);
}
    </script>
</head>
<body onload="init()">
    <div id="gauss"></div>
    结果是:
    <select id="result_A">
        <option value="0">0</option>
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
    </select> A
    <select id="result_B">
        <option value="0">0</option>
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
    </select> B
    <button onclick="run()">确认</button>
    <hr>
    <p id="log"></p>
</body>
</html>

看较旧的 20 则留言

~迹~: 12-06 12:40

跑任务熟练的话也不见得花时间,有些人平日只能玩一下,可能没时间等组队。

~迹~: 12-06 12:41

不过除了跑任务之外,想打魔剑应该还会用到这个就是了。

精彩推荐

Wonderful recommendation

更多

关于我们 | 商务合作 | 广告服务 | 法律声明 | 内容导航 | 游戏帮助 | 问题反溃

本站所有软件,来自于互联网或网友上传,版权属原著所有,如有需要请购买正版。如有侵权,敬请来信联系我们,我们立刻删除。

抵制不良游戏 拒绝盗版游戏 注意自我保护 谨防受骗上当 适度游戏益脑 沉迷游戏伤身 合理安排时间 享受健康生活

Copyright 2019-2025 by 鲁ICP备2024066534号-1 成都市互联网举报中心