发表于: 2017-04-02 22:36:05

1 573


今天完成的任务

1.偷偷去做了js任务1。

明天的计划

1.偷偷去完成js任务1。

遇到的问题

1.看了很多基础知识,但是在做的时候不知道该从哪里下手,看了大概一个小时之后,还是决定去直接写。

2.写之前大概看了下任务,觉得要分解下

取1-9中三个随机数,对应三个格子

取000000-FFFFFF中三个随机数,对应三种颜色

想办法让这三个随机数不重复

做出任务要求的1s变化一次

btn的onclick事件

停止按钮

3.关于随机数

一开始是这个函数

Math.random()

但是这个只能选择0~1之间的随机数,而且不包括1,为了满足要求,我首先想到的乘以9,这样就是0~9之间的随机数,在加一个1,

就是1~10之间的随机数,并且不包括10,

Math.random()*9+1

这时候我需要个能够向下取整的函数,我找到了这个,

Math.floor

整个取随机数的代码如下

Math.floor(Math.random()*9+1)

发散开来,当我需要一个n-m之间的随机数,可以广义化如下

Math.floor(Math.random()*(m-n+1)+n)

4.颜色的随机数

颜色的随机数应该是十六进制的,一个笨方法,就是把FFFFFF转化成十进制,带入上面,然后再转化为16进制。如下

Math.floor(Math.random()*16777215).toString(16)

5.不重复

第一个随机数取出来

第二个随机数取出来之后,与第一个随机数比较,如果相等,重新取,到不等为止

第三个随机数取出来之后,分别与第一个第二个随机数比较,直到不等为止

for (i=0 ; i<n; i++) {
   boxnum[i]= parseInt(Math.floor(Math.random()*9+1));
   if (i>0) {
     for (j=0; j<i; j++) {
       if (boxnum[i]==boxnum[j]) {
               i=i-1;
               break;
           }
       }
   }
}

但是还是会有两个方块的时候,整个貌似需要再调试。

6.颜色的三个随机数,范围好大,我觉得出现相同的概率很低,索性去掉了比较环节

for (i=0 ; i<n; i++) {
   boxcolor[i]='#'+(Math.floor(Math.random()*16777215)).toString(16);
}

7.先尝试了一下按钮点击一下,就出现三个随机颜色的方块

var start=document.getElementById('btn-start');
start.onclick=function change() {
   document.getElementById('box'+ boxnum[0]).style.backgroundColor=boxcolor[0];
   document.getElementById('box'+ boxnum[1]).style.backgroundColor=boxcolor[1];
   document.getElementById('box'+ boxnum[2]).style.backgroundColor=boxcolor[2];
}

收获

就是对于整个任务用到的东西有点浅显的了解。


返回列表 返回列表
评论

    分享到