发表于: 2017-04-06 09:49:57

1 714


今天完成的任务

1.任务二完成

2.任务三页面

明天的计划

1.任务三的js

遇到的问题

1.乱序,我一开始的想法是遍历数组,同时取0-1随机数,当随机数满足一定条件时,就将该位置的元素赋值为杀手,然后判断杀手的个数,实际操作下来才发现,随机数有可能遍历数组结束也不会产生一个符合条件的数。。。果然随机

修改方案,在前面遍历数组赋值的时候,就直接将前n位赋值为杀手。如下

for (j=0; j<playernum(); j++) {
if (j>killer-1) {
role[j]='平民';
   } else  {
role[j]='杀手';
   }
}

然后乱序的思路是去看了网上关于洗牌算法/Fisher-Yates shuffle(https://gaohaoyang.github.io/2016/10/16/shuffle-algorithm/#top)

for (i=0; i<playernum(); i++) {
   var  randomNum=Math.floor(Math.random()*(playernum()));
   var  hold=role[randomNum];
   role[randomNum]=role[i];
   role[i]=hold;
}

取随机数randomNum,范围是0-数组长度-1,交换role[randomNum]和role[i]的值,达到打乱数组的效果。

出现了总数设定为大的数值后,小长度的数组无法正确显示的问题,貌似是因为playernum()这个函数没能实时获取,所以在遍历数组之前,获取下当前的palyernum()值,问题解决。

function define() {
playernum();
   role.length=playernum();
   for (j=0; j<playernum(); j++) {
if (j>killer-1) {
role[j]='平民';
       } else  {
role[j]='杀手';
       }
}
return role[j];
}

2.被一个传参搞了好久,看了url又看了json,结果没看懂.。。。

收获

以上。


返回列表 返回列表
评论

    分享到