aboutsummaryrefslogtreecommitdiff
path: root/random.lua
diff options
context:
space:
mode:
Diffstat (limited to 'random.lua')
-rw-r--r--random.lua40
1 files changed, 0 insertions, 40 deletions
diff --git a/random.lua b/random.lua
deleted file mode 100644
index 4fbbed3..0000000
--- a/random.lua
+++ /dev/null
@@ -1,40 +0,0 @@
-skycraft.random = {
- choices = {},
- probabilities = {},
- csum = {},
- sum = 0
-}
-
-skycraft.random.__index = skycraft.random
-
-function skycraft.random:new(o)
- o = o or {}
- setmetatable(o, self)
- o.choices = {}
- o.probabilities = {}
- o.csum = {}
- o.sum = 0
- return o
-end
-
-function skycraft.random:calc_csum()
- self.sum = 0
- for i, choice in ipairs(self.choices) do
- self.sum = self.sum + self.probabilities[choice]
- self.csum[choice] = self.sum
- end
-end
-
-function skycraft.random:choose()
- local r = math.random() + math.random(0, self.sum - 1)
- for i, choice in pairs(self.choices) do
- if r < self.csum[choice] then
- return choice
- end
- end
-end
-
-function skycraft.random:add_choice(choice, probability)
- table.insert(self.choices, choice)
- self.probabilities[choice] = probability
-end