发表于: 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];
}
收获
就是对于整个任务用到的东西有点浅显的了解。
评论