发表于: 2018-07-09 23:14:08

0 1395


#今天完成的事

理清任务一思路

#明天计划的事

完成任务一

#遇到的问题

    • 九宫格闪动有时只出现两种颜色

解决的方法

-找到问题的所在 
最开始想到的是获取随机颜色的方式出了问题,通过百度找到了多种随机颜色的实现方式,在一一尝试过之后发现还是会出现只随机到两种颜色的情况,所以暂时排除了,随机颜色方式不对的情况。

那最有可能的就是获取随机块的逻辑方式有问题了,通过师兄教授的方法,把随机块,one,two,three打印出来看看是否有重复的数字,如果有就说明是获取随机块的逻辑不对

  1. list[one].style.background = randomColor();
  2. list[two].style.background = randomColor();
  3. list[three].style.background = randomColor();
  4. console.log("abc:" + one + two + three);

结果发现,果然是出现了两个相同的随机数,如下图: 

理了理逻辑的问题,果然是有大毛病的,可以看到,如下图所示的代码:

  1. function begin() {
  2.    var one = Math.floor(Math.random()*list.length);
  3.    var two = Math.floor(Math.random()*list.length);
  4.    var three = Math.floor(Math.random()*list.length);
  5.    if(one==two){
  6.        one = Math.floor(Math.random()*list.length);
  7.    }else if(two==three) {
  8.        two = Math.floor(Math.random()*list.length);
  9.    }else if(one==three)  {
  10.        three = Math.floor(Math.random()*list.length);
  11.    }

代码的逻辑是随机获取box的一个块,假如one=two,one重新随机一个块,这里就是问题所在了,one的再次随机完全有可能再次随机到那个和two一样的块,所以要改变逻辑,再次随机要随机到除去one以外的其他块

但是虽然知道了要选取三个完全不同的随机块,当1=2时,1重新随机一个除2以外的块,当2=3时,2重新随机一个除3以外的块,当1=3时,3重新随机一个除1以外的块。但是具体代码要怎么写,暂时还没想明白



返回列表 返回列表
评论

    分享到