From d820a97c83b5a9e0ee7e09df0b48d34a8394ce68 Mon Sep 17 00:00:00 2001 From: Iman Date: Wed, 22 Jul 2020 22:15:55 +0430 Subject: [PATCH] examples: update vcasino.v (#5880) --- examples/vcasino/vcasino.v | 219 ++++++++++++++++++------------------- 1 file changed, 107 insertions(+), 112 deletions(-) diff --git a/examples/vcasino/vcasino.v b/examples/vcasino/vcasino.v index e638230ef0..0919388901 100644 --- a/examples/vcasino/vcasino.v +++ b/examples/vcasino/vcasino.v @@ -1,151 +1,146 @@ import rand -import time import os const ( help_text = ' Usage:\t./VCasino\n Description:\n VCasino is a little game only made to learn V.\n' - g_desc = ' The object of Roulette is to pick the number where the spinning ball will land on the wheel. - If your number is the good one, you\'ll get your bet x3. - If your number is the same color as the ball one, you\'ll get your bet /2. - Otherwise, you will lose your bet.\n' - odd = 'red' - even = 'black' + g_desc = " The object of Roulette is to pick the number where the spinning ball will land on the wheel. + If your number is the good one, you'll get your bet x3. + If your number is the same color as the ball one, you'll get your bet /2. + Otherwise, you will lose your bet.\n" + odd = 'red' + even = 'black' ) struct Options { - long_opt string - short_opt string + long_opt string + short_opt string } fn display_help() { - println(help_text + g_desc) + println(help_text + g_desc) } fn option_parser() bool { - help := Options{'--help', '-h'} - for i in 0..os.args.len { - if os.args[i]== help.long_opt || os.args[i]== help.short_opt { - display_help() - return true - } - } - return false + help := Options{'--help', '-h'} + for i in 0 .. os.args.len { + if os.args[i] == help.long_opt || os.args[i] == help.short_opt { + display_help() + return true + } + } + return false } fn str_is_nbr(s string) bool { - for i in 0..s.len { - if !s[i].is_digit() { - return false - } - } - return true + for i in 0 .. s.len { + if !s[i].is_digit() { + return false + } + } + return true } fn get_bet_nbr() int { - mut bet_nbr := -1 - for bet_nbr < 0 || bet_nbr > 49 { - println('Reminder: odd numbers are red and even are black.') - println('Type the number you want to bet on (between 0 and 49):') + mut bet_nbr := -1 + for bet_nbr < 0 || bet_nbr > 49 { + println('Reminder: odd numbers are red and even are black.') + println('Type the number you want to bet on (between 0 and 49):') line := os.get_line().trim_space() - if line.len < 1 { - println('error: empty line.') - continue - } - if !str_is_nbr(line) { - println('error: $line is not a number.') - continue - } - bet_nbr = line.int() - if bet_nbr < 0 || bet_nbr > 49 { - println('error: $line is not between 0 and 49.') - bet_nbr = -1 - continue - } - } - return bet_nbr + if line.len < 1 { + println('error: empty line.') + continue + } + if !str_is_nbr(line) { + println('error: $line is not a number.') + continue + } + bet_nbr = line.int() + if bet_nbr < 0 || bet_nbr > 49 { + println('error: $line is not between 0 and 49.') + bet_nbr = -1 + continue + } + } + return bet_nbr } fn get_bet(money int) int { - mut bet := -1 - for bet <= 0 || bet > money { - println('You\'ve $money V. Type in the amount of your bet:') + mut bet := -1 + for bet <= 0 || bet > money { + println('You have $money V. Type in the amount of your bet:') line := os.get_line().trim_space() - if line.len < 1 { - println('error: empty line.') - continue - } - if !str_is_nbr(line) { - println('error: $line is not a number.') - continue - } - bet = line.int() - if bet <= 0 { - println('error: $line is not higher than 1.') - continue - } else if bet > money { - println('error: $line is more money than you have.') - } - } - return bet + if line.len < 1 { + println('error: empty line.') + continue + } + if !str_is_nbr(line) { + println('error: $line is not a number.') + continue + } + bet = line.int() + if bet <= 0 { + println('error: $line is not higher than 1.') + continue + } else if bet > money { + println('error: $line is more money than you have.') + } + } + return bet } -fn run_wheel(bet_nbr int, _bet int) int { +fn run_wheel(bet_nbr, _bet int) int { mut bet := _bet - winning_nbr := rand.intn(50) - print('Roulette Wheel spinning... and stops on the number $winning_nbr which is a ') - if winning_nbr % 2 == 1 { - println(odd) - } else { - println(even) - } - if winning_nbr == bet_nbr { - bet *= 3 - println('Congratulations! You get $bet V!') - } else if winning_nbr % 2 == bet_nbr % 2 { - bet /= 2 - println('You bet the right color. You get $bet V!') - } else { - println('Sorry buddy. You lost $bet V!') - bet *= -1 - } - return bet + winning_nbr := rand.intn(50) + print('Roulette Wheel spinning... and stops on the number $winning_nbr which is a ') + if winning_nbr % 2 == 1 { + println(odd) + } else { + println(even) + } + if winning_nbr == bet_nbr { + bet *= 3 + println('Congratulations! You get $bet V!') + } else if winning_nbr % 2 == bet_nbr % 2 { + bet /= 2 + println('You bet the right color. You get $bet V!') + } else { + println('Sorry buddy. You lost $bet V!') + bet *= -1 + } + return bet } fn is_broke(money int) bool { - if money <= 0 { - println('You\'re broke, the game is over..') - return false - } else { - quit := Options{'yes', 'y'} - println('You\'ve $money V. Do you want to quit the casino with your winnings? (y/n)') - line := os.get_line().trim_space().to_lower() - if line== quit.long_opt || line== quit.short_opt { - return false - } - } - return true + if money <= 0 { + println("You're broke, the game is over..") + return false + } + quit := Options{'yes', 'y'} + println('You have $money V. Do you want to quit the casino with your winnings? (y/n)') + line := os.get_line().trim_space().to_lower() + if line == quit.long_opt || line == quit.short_opt { + return false + } + return true } fn game_loop() { - mut can_play := true - mut money := 1000 - - println(g_desc) - println('You start the game with $money V.\n') - for can_play { - bet_nbr := get_bet_nbr() - bet := get_bet(money) - money += run_wheel(bet_nbr, bet) - can_play = is_broke(money) - } + mut can_play := true + mut money := 1000 + println(g_desc) + println('You start the game with $money V.\n') + for can_play { + bet_nbr := get_bet_nbr() + bet := get_bet(money) + money += run_wheel(bet_nbr, bet) + can_play = is_broke(money) + } } fn main() { - if os.args.len >= 2 { - if option_parser() { - return - } - } - game_loop() + if os.args.len >= 2 && option_parser() { + return + } + game_loop() }