Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[
- ####--------------------------------####
- #--# Author: by uriid1 #--#
- #--# License: GNU GPLv3 #--#
- #--# Telegram: @main_moderator #--#
- #--# E-mail: [email protected] #--#
- ####--------------------------------####
- --]]
- local function input(text)
- io.stdout:write(text)
- return io.stdin:read()
- end
- local function lprint(text)
- io.stdout:write(text)
- end
- local current_num = 0
- local function gen_new_num()
- math.randomseed(os.time())
- return math.random(1, 3)
- end
- local function clear()
- io.stdout:write('\027\091\072\027\091\050\074\027\091\051\074')
- end
- local user = {
- name = '';
- money = 10000;
- score = 0;
- bet = 0;
- }
- local states = {
- main_menu = 0;
- info = 1;
- game = 2;
- exit = 3;
- }
- local state = states.main_menu
- local info_text = [[
- Guess the number game.
- Written for fun.
- Your task is to make a delivery and guess -
- hidden number from 1 to 3.
- Each win gives X2 to the bet.
- ]]
- -- Game loop
- while state ~= states.exit do
- repeat
- -- State Menu
- if state == states.main_menu then
- clear()
- print('\t\tMain Menu')
- print('\t\t1 New Game')
- print('\t\t2 Info')
- print('\t\t3 Exit')
- local res = tonumber(input('Enter state: '))
- if res == 1 then
- state = states.game
- elseif res == 2 then
- state = states.info
- elseif res == 3 then
- state = states.exit
- end
- -- State game
- elseif state == states.game then
- clear()
- -- Print info
- lprint('Score: ' .. user.score)
- lprint(('\t\t\tMoney: $%s'):format(user.money))
- lprint('\n')
- -- Get user name
- if user.name == '' then
- user.name = input("What is your name?: ")
- break
- end
- -- Get number
- if user.bet <= 0 then
- user.bet = tonumber(input("Your bet: "))
- -- Check nil
- if not user.bet then
- user.bet = 0
- break
- end
- --
- if user.bet > user.money then
- user.bet = 0
- lprint('Over money bet')
- lprint('\n')
- input('Any key to new bet: ')
- end
- break
- end
- -- Print bet
- lprint('\t\tBet: ' .. user.bet)
- lprint('\n')
- lprint('\t\tWin: $' .. user.bet*2)
- lprint('\n')
- lprint('\t\tPlayer: ' .. user.name)
- lprint('\n\n\n')
- local user_num = tonumber(input('Your number: '))
- if user_num then
- if user_num > 3 or user_num < 1 then
- lprint('\n')
- lprint('Enter a number from 1 to 3')
- lprint('\n')
- input('Any key to continue: ')
- break
- end
- current_num = gen_new_num()
- -- User is win
- if user_num == current_num then
- lprint("\t\tYou Win! +$" .. user.bet*2)
- lprint('\n')
- lprint('\t\tNumber is: ' .. current_num)
- lprint("\n\n")
- user.score = user.score + 1
- user.money = user.money + user.bet*2
- user.bet = 0
- input('Any key to new game: ')
- break
- end
- -- User is loose
- lprint('\t\tYou Loose! -$'..user.bet)
- lprint('\n')
- lprint('\t\tNumber is: ' .. current_num)
- lprint('\n\n')
- input('Any key to new game: ')
- user.money = user.money - user.bet
- user.bet = 0
- break
- end
- -- State info
- elseif state == states.info then
- clear()
- lprint(info_text)
- lprint('\n')
- input('Any key to back: ')
- state = states.main_menu
- end
- until true
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement