首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 其他相关 >

随机物件权重算法设计

2013-09-24 
随机物品权重算法设计1、前言在游戏开发中很多功能按权重随机给东西,比如:掉落、奖励、抽奖等等.....2、功能*)

随机物品权重算法设计
1、前言
在游戏开发中很多功能按权重随机给东西,比如:掉落、奖励、抽奖等等.....

2、功能

*)支持多个权重进行随机

*)能屏蔽指定权重,防止再次随机到

3、实现

public int weightRandom(BitSet exclude, int... weights) {        if (weights == null) {            //安全性验证        }        int length = weights.length;        if (length == 0) {            return -1;        }        if (len == 1) {            int w = weights[0];            if (w < 0) {                //安全性验证            } else if (w == 0) {                return -1;            } else {                return 0;            }        }        int total = 0;        for (int i = 0; i < len; i++) {            if (exclude != null && exclude.get(i)) {                continue;            }            int w = weights[i];            total += w;        }        if (total <= 0) {            return -1;        }        int randomNum = random(1, total), hitIndex = -1, partNum = 0;        for (int i = 0; i < len; i++) {            if (exclude != null && exclude.get(i)) {                continue;            }            int w = weights[i];            partNum += w;            if (partNum >= randomNum) {                hitIndex = i;                break;            }        }        return hitIndex;}

热点排行