Skip to content

Instantly share code, notes, and snippets.

@luckyruby
Created March 8, 2015 08:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save luckyruby/c9e36d45a79f0a2e615d to your computer and use it in GitHub Desktop.
Save luckyruby/c9e36d45a79f0a2e615d to your computer and use it in GitHub Desktop.
Roulette Martingale Simulator
class Roulette
def initialize(bankroll, min_bet, max_bet)
@wheel = "0-28-9-26-30-11-7-20-32-17-5-22-34-15-3-24-36-13-1-00-27-10-25-29-12-8-19-31-18-6-21-33-16-4-23-35-14-2".split("-").map(&:to_i)
@max_index = @wheel.length - 1
@bankroll, @min_bet, @max_bet = bankroll, min_bet, max_bet
@bet_size = @min_bet
@results = []
end
def spin_the_wheel
@wheel[rand(@max_index)]
end
def reset_bet
@bet_size = @min_bet
end
def double_bet
@bet_size *= 2
end
def play
until @bankroll == 0 || @bet_size > @max_bet || @bet_size > @bankroll
result = spin_the_wheel
if result.odd?
@bankroll += @bet_size
reset_bet
else
@bankroll -= @bet_size
double_bet
end
@results << @bankroll
end
puts "You spun #{@results.length} times and your bankroll peaked at #{@results.max}."
end
end
r = Roulette.new(10000, 10, 2000)
r.play
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment