diff --git a/direct/src/directutil/WeightedChoice.py b/direct/src/directutil/WeightedChoice.py new file mode 100755 index 0000000000..134f609a59 --- /dev/null +++ b/direct/src/directutil/WeightedChoice.py @@ -0,0 +1,19 @@ + +import random + +class WeightedChoice: + def __init__(self, listOfLists, weightIndex=0): + t=0 + for i in listOfLists: + t+=i[weightIndex] + self.total = t + self.listOfLists = listOfLists + self.weightIndex = weightIndex + + def choose(self): + roll = random.randrange(self.total) + weight = self.weightIndex + for i in self.listOfLists: + roll -= i[weight] + if roll <= 0: + return i