发表于: 2017-03-19 23:54:54

1 565


今天完成的事情:完成了任务二的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的用法,很方便



返回列表 返回列表
评论

    分享到