New to Classes

Hello. I'm new to making and defining your own classes (well really to
Ruby in general)and need some of your help with areas of my code. Here
is the code for the game:
class Die

  def roll
    @numberShowing = 1 + rand(6)
  end

  def showing
    @numberShowing
  end

end

dice = [Die.new]
play=true
money= 100
while play==true
puts 'You have $' + money.to_s + '. What is your bid?'
bid= gets.chomp
puts '$' + money.to_s + '-' + '$' + bid.to_s
moneytest= money.to_i - bid.to_i
while moneytest<=0
  puts 'Please enter a valid bid'
  bid=gets.chomp
  moneytest= money.to_i - bid.to_i
end
money=(money.to_i - bid.to_i)
puts '$' + money.to_s + ' remaining'
puts 'What number would you like to place your bet of ' + '$' + bid + '
on?'
number= gets.chomp
puts 'Dice roll was....'
die = Die.new
die.roll
puts die.showing
if @numberShowing.to_i==number.to_i
  puts 'Congrats! You made ' + '$' + bid.to_s
  else
    puts 'Sorry. You lost ' + '$' + bid.to_s
  end
  if (money==0 or money<=0)
    puts 'Sorry you lose'
    play==false
    end
end

The problems I'm having with it (as you will see if you test it) is that
you cannont win money, which I assume is because of my handling of
@numberShowing, and that you can't go 'all in'. Any help would be
greatly appreciated.

-Scott

···

--
Posted via http://www.ruby-forum.com/.

Scott Andrechek wrote:

Hello. I'm new to making and defining your own classes (well really to
Ruby in general)and need some of your help with areas of my code. Here
is the code for the game:
class Die

  def roll
    @numberShowing = 1 + rand(6)
  end

  def showing
    @numberShowing
  end

end

dice = [Die.new]
play=true
money= 100
while play==true
puts 'You have $' + money.to_s + '. What is your bid?'
bid= gets.chomp
puts '$' + money.to_s + '-' + '$' + bid.to_s
moneytest= money.to_i - bid.to_i
while moneytest<=0
  puts 'Please enter a valid bid'
  bid=gets.chomp
  moneytest= money.to_i - bid.to_i
end
money=(money.to_i - bid.to_i)
puts '$' + money.to_s + ' remaining'
puts 'What number would you like to place your bet of ' + '$' + bid + '
on?'
number= gets.chomp
puts 'Dice roll was....'
die = Die.new
die.roll
puts die.showing
if @numberShowing.to_i==number.to_i

Why are you using @numberShowing instead of die.showing? If you print @numberShowing here I think you will see your problem.

···

  puts 'Congrats! You made ' + '$' + bid.to_s
  else
    puts 'Sorry. You lost ' + '$' + bid.to_s
  end
  if (money==0 or money<=0)
    puts 'Sorry you lose'
    play==false
    end
end

The problems I'm having with it (as you will see if you test it) is that
you cannont win money, which I assume is because of my handling of
@numberShowing, and that you can't go 'all in'. Any help would be
greatly appreciated.

-Scott

Michael W. Ryder wrote:

Scott Andrechek wrote:

    @numberShowing
puts '$' + money.to_s + '-' + '$' + bid.to_s
number= gets.chomp
puts 'Dice roll was....'
die = Die.new
die.roll
puts die.showing
if @numberShowing.to_i==number.to_i

Why are you using @numberShowing instead of die.showing? If you print
@numberShowing here I think you will see your problem.

Thanks. You can now win money. Unfortanatley you still can't go 'all
in'. Hopefully a solution will come up...

-Scott

···

--
Posted via http://www.ruby-forum.com/\.

Try changing

while moneytest<=0

to

while moneytest<0

···

On Fri, Aug 21, 2009 at 2:57 AM, Scott Andrechek<scottandrechek@gmail.com> wrote:

Unfortanatley you still can't go 'all
in'. Hopefully a solution will come up...

--
Rick DeNatale

Blog: http://talklikeaduck.denhaven2.com/
Twitter: http://twitter.com/RickDeNatale
WWR: http://www.workingwithrails.com/person/9021-rick-denatale
LinkedIn: http://www.linkedin.com/in/rickdenatale