发表于: 2017-03-19 23:54:54
1 566
今天完成的事情:完成了任务二的html和css部分
遇到的问题:
狼人杀玩家配比:
不太清楚白痴版怎么配,参照师兄的配置,规定了一套规则:玩家数量要大于等于6。6-8人,一个狼人;9-11,两个狼人;依此类推,每多三人,多一个狼人。
然后是随机分配身份,看到了一种用sort方法将数组随机打乱的办法:
eg:
var arr=[1,2,3,4,5,6,7,8,9];
function randomSort(a, b)
{return Math.random()-0.5;} //返回-0.5至0.5
arr.sort(randomSort);
document.write("随机排序后的数组元素:"+arr.join(","))
对sort的排序规则不理解:sort到底是如何排序的?
查了一下资料,据说是冒泡排序:
以数组为例:
1.比较arr.[0]和arr.[1]的大小,如果arr[0]>arr[1],两者的值交换
再比较arr.[1]和arr[2],同样将大的值放后面
以此类推,直到比到最后一组,这样数组的最后一个元素就是数组的最大值。
2.排除最后一个元素,重复上述步骤
3.重复2,直到没有一对元素需要比较
冒泡的js实现:
function bubbleSort(arr) {
var i = arr.length, j;
var tempExchangVal;
while (i > 0) {
for (j = 0; j < i - 1; j++) {
if (arr[j] > arr[j + 1]) {
tempExchangVal = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tempExchangVal;
}
}
i--;
}
return arr;
}
但是和sort里面被调用的函数到底是什么关系,还是搞不明白
此外,看到有网友测试,sort的随机不够伪随机,
我没有验证,但是应该是真的
所以可以换一种思路分配身份,所有人都先是平民,然后随机选出几个作为狼人
收获:学习了 for in的用法,很方便
评论