淘宝前端智勇大闯关第一季:http://ued.taobao.com/quiz/
淘宝前端智勇大闯关第二季:http://ued.taobao.com/quiz2/
淘宝前端智勇大闯关第三季:http://ued.taobao.com/quiz3/
第一关
页面全选 或者 查看源码
第二关
最简单的方法,chrome浏览器,F12
将代码在console中跑一遍(去掉最后的0;)
或者按照语法算一遍……
第三关
输入代码移动气球
position: absolute;
top: 20px;
left: 400px;
第四关
法一:按照这个做一遍
图中“1+”是指“1号小球为重”这一可能性。一开始一共有24种可能性。4、4称了之后不管哪种情况(分支),剩下来的可能性总是4种。这是一个完美的三分。然后对每个分支构造第二次称法,这里你只要稍加演算就可以发现,分支1上的第二次称法,即“1、2、6对3、4、5”这种称法,天平输出三种结果的可能性是均等的(严格来说是几乎均等)。这就是为什么这个称法能够在最坏的情况下也能表现最好的原因,没有哪个分支是它的弱点,它必然能将情况缩小到原来的1/3。
法二:看代码,虽然我没看出啥……
cls_ball.js
小球重量初始化为10
function Ball(libra, parent, idx) {
this.libra = libra;
this.parent = parent;
this.idx = idx;
this.weight = 10;
this.is_draging = false;
this.init();
/*if (!Ball.all) {
Ball.all = [];
}
Ball.all.push(this);*/
}
其中一个小球随机+1 或 -1
rndWeight: function () {
this.weight += Math.random() < 0.5 ? 1 : -1;
}
在c.js中,随机获取一个序号r,第r个小球则进行改变重量的操作。由于是随机的,从代码不能看出来是哪一个……
var libra = new Libra($("#libra")),
BALL_COUNT = 12,
r = Math.floor(Math.random() * BALL_COUNT),
ball, idx, i,
result_ball_list = [
"<option value='0'>请选择</option>"
];
for (i = 0; i < BALL_COUNT; i ++) {
idx = i + 1;
ball = new Ball(libra, $("#balls ul"), idx);
if (i == r) {
ball.rndWeight();
libra.r_ball = ball;
}
result_ball_list.push([
"<option value='" + idx + "'>",
idx,
"</option>"
].join(""));
}
最终顺利过关