发表于: 2017-06-07 21:55:45

2 1122


今天完成的事情:

1.写完了一部分task2的JS代码,主要是下面部分设置人数和范围的代码,先设置声明变量,获取输入框和滑动条的值

    //获取输入框和滑动条的值
var num = document.getElementById("num");
var range = document.getElementById("range");

再写一个函数将range的值赋给输入框num,这样下次调用函数rangeChange(),就能将输入框中的值与滑动条的值联系起来

function rangeChange() {
   num.value = range.value;//将滑动条range的值赋给输入框num
}

本来想法是好的,但是测试的时候又出了问题,总是显示无法读取range.value的是值,后来问过师兄,他说把声明的变量放进函数里面试试,

function rangeChange() {
   var num = document.getElementById("num");//局部变量
   var range = document.getElementById("range");
   num.value = range.value;//将滑动条range的值赋给输入框num
}

于是就成这样了,但是很神奇的是奏效了,我问他原因,但是师兄说也说不上来,笑cry,可能是局部变量和全局变量的原因,还说等我弄清楚了记得告诉他一声。。。。所以师姐知道什么原因吗,求解

2.再就是分别为两个加减按钮设置函数,一个function del()和function add(),在range.value的范围(6,18)里面设置,一旦超出这个范围就弹出提示框,不能进行游戏

3.学习洗牌算法,假如要洗牌,那么最随机的做法无疑是从牌堆里随便抽一张出来,然后放在一边,之后从剩下的牌里重复之前的操作,直到所有牌都被抽出来放到了另一堆中。抽象到代码世界,按相同的做法,就是随机从数组里取出一个元素,保存到另一个数组,然后重复之,直到原数组中所有元素都处理掉。洗牌算法就是一种就一组数组随机打乱的函数:

function shuffle3(array) {

    var m = array.length,

        t, i;

    // m--,优先于四则运算,第一次循环时,m刚好等于最后一个元素的下标

    while (m) {

        i = Math.floor(Math.random() * m--);  //下标为m-1的元素

        t = array[m]; //将array下标为m的元素, 赋值给t

        array[m] = array[i]; //将array下标为m的元素的值更新为 array下标为m-1的(当array.length >2时)

        array[i] = t; //将t(也就是array下标为m的元素,赋值给array下标为m-1的元素(当array.length >2时)

    }

    return array;

}

明天的计划:写完剩下的JS部分,进行demo

遇到的问题:就是上面的第一个问题了

收获:最大的收获是了解了洗牌算法


返回列表 返回列表
评论

    分享到