发表于: 2020-05-12 23:01:26

2 1665


今天完成的事情: 

看着代码分析属性,自己敲js。任务1基本完成,数组打乱方法和颜色提取基本理解。如何循环以及不断循环,打断循环,点击事件的熟练度上升了。


遍历数组,重置颜色,使用for循环,变量i=0,i<8则增1,提取格子dom节点,填入【i】,样式更改为原本的颜色,这样就可以每次都刷新一遍颜色重新随机三个格子变色。

提取颜色:根据rgb256个三原色阶级,使用函数方法,内部三个变量都使用数学方法,函数解析字符返回整数((随机数)*(255)转换16进制),输出符号#+r+g+b获取随机的颜色。

抽取三个数,第一次使用的是声明三个变量,分别设置数学方法 向下取整(随机*8),然后设置if  a!=b&&b!=c&&a!=c则输出改变样式,else 重新循环函数。

设置interval进行循环,但是设置循环的时候因为设置的若有抽取的数值相等则重复循环,导致的多次interval循环直接闪爆,浏览器三分钟忘了刷新差点把内存占满。。

后面跟换为洗牌算法,首先设置函数,引用数组变量a,内部循环数值长度值-1也就是8,大于零开始从8自减1到0为止循环,

变量rand=取整随机数*数组长度。变量p赋值为数组最后一位数(为了接下来的交换),数组最后一位数a【i】和抽取到的数值交换达到洗牌的效果。

也就是:抽到的数  ←→排列最后的数值   交换,以此类推,因为i自减,所以抽取9次相当于抽取交换9次,这就打乱了数组也就是洗牌。然后使用a【随便三个数】来达到随机三个数的效果。

var rand,a = [0,1,2,3,4,5,6,7,8]

function (a){

for(var i = length - 1, rand;i >= 0; i--){

        rand = Math.floor(Math.random()*(i+1))

        var p = a[i];

        a[i] = a[rand];

        a[rand] = p ;  

}

}

任务一完成。


明天计划的事情: 

可以开始任务2了。





遇到的问题和
收获:

reset为啥调用到下面的threebox报错不明白 。

跑去看为啥变量旁边为啥要俩加号。。因为没用过rgb的颜色代码。。犯了个低等级错误。


返回列表 返回列表
评论

    分享到