1NUMRANGE = 100 2MAXROUND = 5 3math.randomseed(os.time()) 4 5function start(key, value) 6 value = tonumber(value) 7 if not value or value <= 0 then 8 return "error: invalid value" 9 end 10 if not _putkeep(key .. ":r", 1) then 11 return "error: already started" 12 end 13 local num = math.random(NUMRANGE) 14 _put(key .. ":m", value) 15 _put(key .. ":n", num) 16 return "Welcome, " .. key .. ".\n" .. 17 "The current number is " .. num .. ".\n" .. 18 "Your money is " .. value .. ".\n" .. 19 "Round 1 Bet!\n" 20end 21 22function high(key, value) 23 return do_bet(key, value, true) 24end 25 26function low(key, value) 27 return do_bet(key, value, false) 28end 29 30function over(key, value) 31 if _vsiz(key .. ":r") < 0 then 32 return "error: not started" 33 end 34 _out(key .. ":r") 35 _out(key .. ":m") 36 _out(key .. ":n") 37 return "Good Bye!" 38end 39 40function do_bet(key, value, ishigh) 41 value = tonumber(value) 42 if not value or value <= 0 then 43 return "error: invalid value" 44 end 45 local round = tonumber(_get(key .. ":r")) 46 if not round then 47 return "error: not started" 48 end 49 local money = tonumber(_get(key .. ":m")) 50 if round > MAXROUND or money < 1 then 51 return "error: already finished" 52 end 53 if value > money then 54 value = money 55 end 56 local num = tonumber(_get(key .. ":n")) 57 local newnum = math.random(NUMRANGE) 58 local cmp = "even" 59 local res = "lost" 60 if newnum > num then 61 cmp = "high" 62 if ishigh then 63 res = "won" 64 end 65 elseif newnum < num then 66 cmp = "low" 67 if not ishigh then 68 res = "won" 69 end 70 end 71 round = round + 1 72 if res == "won" then 73 money = money + value 74 else 75 money = money - value 76 end 77 _put(key .. ":r", round) 78 _put(key .. ":m", money) 79 _put(key .. ":n", newnum) 80 local call = "Round " .. round .. " Bet!\n" 81 if round > MAXROUND or money < 1 then 82 call = "Game Over!\n" 83 end 84 return "The currnet number is " .. newnum .. ".\n" .. 85 newnum .. ":" .. num .. " (" .. cmp .. ") ... You " .. res .. "!\n" .. 86 "Your money is " .. money .. ".\n" .. 87 call 88end 89