XEYE’s Game第七关思路
Posted on | 七月 5, 2010 | No Comments
转自http://hi.baidu.com/monyer/blog/item/6d5bb11c4e64cd8686d6b667.html
额,时隔4个月,我们来讲下xeye game的第七关。
一进入第七关就是一堆的数据,以逗号分隔开,刷新一次变一次。
而且这关有两个主要的提示:cartesian(笛卡尔)、vertical(垂直的)
笛卡尔是个哲学家、物理学家、数学家、生理学家以及天文学,不过根据上述的cue,我们已经能够很容易地猜出本关考验的便是笛卡尔坐标系,而且是什么东西是垂直的。当然可以先假设成直角坐标系,不过都玩了xeye game到了第7关想必也知道本游戏中的cue向来不会这么简单明了,因此也不排除后面有能用到的可能性。
那么首先我们的一个直观的假设是这些数字是XY坐标,它们每两位数字标注了坐标系中的一个点。而这些点或者构成了一个什么样的曲线,或者构成了一个什么样的图案,这需要我们组合出来才会知道。
但是当我们真正想要尝试组合时,我们会发现数字一共是423个,不是2的整数倍,悲剧了。
不过同时也可喜地发现:虽然不是2的整数倍,却是3的整数倍。而在所有的提示中并没有说明是平面直角坐标系还是三维坐标系,这给了我们一个机会去验证自己的结论。
而当我们真正想实施想法时,又会发现另外一个悲剧 —— 我们观察三维的角度是球面的,那么究竟哪一个角度才是我们想要的呢?这时vertical这个cue派上用场了,首先出题人肯定不会给我们一个无解的问题,而球面的观察角度几乎是不可计算的,等价于无解了。“垂直的”这个提示则明确无误地将无限的角度缩小到了6*4个(假设成一个四方体,将有6个面,4种观察方式)。
所以解决方案就出来了,我们将数字每三个分成一组,组成x、y、z数组,然后按照组合关系分别组合成xy、xz、yz、yx、zx、zy并打印出来,从4个方向看就可以了。这个思路的计算机实现也实在是简单,几乎所有的编程语言都可以做到,譬如js用10行左右代码就可以解决了。
一个例子如下:
<script>
var str = “8,4,6,10,4,10……”;
for(var i=0;i<50;i++){
for(var j=0;j<50;j++)
document.write(“<span id=x”+i+”y”+j+”> </span>”);//白块
document.write(“<br>”);
}
var strarr = str.split(“,”);
for(var i=0;i<strarr.length/3;i++){
var A = strarr[i*3];
var B = strarr[i*3+1];
var C = strarr[i*3+2];
var id = “x”+A+”y”+B;
// var id = “x”+A+”y”+C;
// var id = “x”+B+”y”+C;
// var id = “x”+B+”y”+A;
// var id = “x”+C+”y”+A;
// var id = “x”+C+”y”+B;
document.getElementById(id).innerHTML = “■”;//黑块
}
</script>
一个运行结果如下
当然还可以用点高级工具,譬如matlab:
首先按次序将x、y、z分割开,然后输入:
x=[14 16 25 ...];
y=[2 2 2 ...];
z=[1 5 9 ...];
scatter3(y,z,x)
那么输出将为:
我们通过旋转图像,从6个面分别看,即可找到密码。
至于真正的密码是什么,这等待着你动手去发现!呵呵
game介绍:http://hi.baidu.com/monyer/blog/item/9d440846e1b7ed006a63e525.html
Monyer!
相关文章:
评论|Comments
留言|Leave a Reply



![如果您自认为是一位忠实的Silverlight-Fans,那么请将此标志放到您的博客中成为一名真正的[银光使者]](http://images.cnblogs.com/cnblogs_com/alamiye010/Silverlighter1.jpg)