Skip to content

Instantly share code, notes, and snippets.

@luckyruby
Created March 8, 2015 08:22
Show Gist options
  • Select an option

  • Save luckyruby/c9e36d45a79f0a2e615d to your computer and use it in GitHub Desktop.

Select an option

Save luckyruby/c9e36d45a79f0a2e615d to your computer and use it in GitHub Desktop.

Revisions

  1. luckyruby created this gist Mar 8, 2015.
    39 changes: 39 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,39 @@
    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