diff options
Diffstat (limited to 'src/math.c')
| -rw-r--r-- | src/math.c | 17 |
1 files changed, 17 insertions, 0 deletions
@@ -46,3 +46,20 @@ int l_lcm(lua_State* L){ free(nums); return 1; } + +int l_random(lua_State* L){ + size_t min = 1; + switch(lua_gettop(L)){ + case 2: + min = lua_tointeger(L, 1); + lua_remove(L, 1); + case 1: + lua_pushinteger(L, (rand() % (lua_tointeger(L, 1) - min + 1)) + min); + break; + case 0: + default: + lua_pushnumber(L, (double)rand() / (double)RAND_MAX); + } + + return 1; +} |
