Ruby 我怎样才能解决这个问题?类的未定义方法
有问题,运行代码时总是有错误。 期望:为用户添加赢或减少他的余额Ruby 我怎样才能解决这个问题?类的未定义方法,ruby,Ruby,有问题,运行代码时总是有错误。 期望:为用户添加赢或减少他的余额 undefined method `balance=' for #<Dice:0x0000563d4d4dfd88 @name="foo", @balance=600, @bet=300> Did you mean? balance (repl):22:in `increase_decrease_cash' (repl):62:in `<class:Game>' (repl):29:in `<mai
undefined method `balance=' for #<Dice:0x0000563d4d4dfd88 @name="foo", @balance=600, @bet=300>
Did you mean? balance
(repl):22:in `increase_decrease_cash'
(repl):62:in `<class:Game>'
(repl):29:in `<main>'
未定义的方法“balance=”用于#
你是说?平衡
(答复):22:“增加、减少、现金”
(答复):
(答复):29:在"中"
这个错误总是会出现,我会尝试所有我能猜到的东西,但是什么也没有发生,我不明白怎么用谷歌搜索它
class Dice
attr_accessor :name, :bet
attr_reader :balance
def initialize(name, balance, bet)
@name = name
@balance = balance
@bet = bet
end
def self.roll
@roll_dice = rand(1..2)
end
def self.check_bet
if @player.bet > @player.balance
puts "Enter number from 1 to #{@player.balance}"
end
end
def self.increase_decrease_cash
if @roll == @my_number
@player.balance += @player.bet
else
@player.balance -= @player.bet
end
end
end
class Game < Dice
@player = Dice.new("foo", 600, 0)
puts "Hello #{@player.name} your balance is: #{@player.balance}"
puts "Bones throwing count times"
a = 2 #gets.chomp.to_i
while a > 0 do
puts ""
puts "Enter your bet !!!"
# PLAYER BET
@player.bet = 300 #gets.chomp.to_i
check_bet
puts "Respected #{@player.name} your bet is: #{@player.bet}"
puts "Now select number 1-2"
# BONES ROLL
@my_number = roll # gets.chomp.to_i
puts "###################"
puts "Now we throw bones"
@roll = roll
puts "Nuber is #{roll}"
if @roll == @my_number
puts "Your win, you get #{@player.bet}"
else
puts "You lose #{@player.bet}"
end
p "$$$$"
p @player.balance
p "$$$$"
a -= 1
increase_decrease_cash
end
end
类骰子
属性访问器:名称,:赌注
属性读取器:平衡
def初始化(姓名、余额、赌注)
@name=name
@平衡=平衡
@打赌
结束
def自动转鼓
@掷骰子=兰德(1..2)
结束
def自检
如果@player.bet>@player.balance
将“输入从1到#{@player.balance}的数字”
结束
结束
def自我增加\减少\现金
如果@roll==@my_number
@player.balance+=@player.bet
其他的
@player.balance-=@player.bet
结束
结束
结束
班级游戏<骰子
@玩家=骰子。新(“foo”,600,0)
放上“你好{@player.name}你的余额是:{@player.balance}”
放入“骨头投掷计数次数”
a=2#gets.chomp.to#i
当a>0时
放置“”
输入“输入您的赌注!!!”
#玩家赌注
@player.bet=300#get.chomp.to_i
支票
放入“尊敬的{@player.name}您的赌注是:{@player.bet}”
将“现在选择数字1-2”
#骨头滚动
@my_number=roll#get.chomp.to_i
放入“#################”
“现在我们扔骨头”
@滚
把“数字是#{roll}”
如果@roll==@my_number
放上“你赢了,你得到#{@player.bet}”
其他的
放上“你输了”{@player.bet}
结束
p“$$$”
p@player.balance
p“$$$”
a-=1
增加\减少\现金
结束
结束
这个错误总是会出现,我尝试了我能猜到的一切,但什么都没有出现,我不明白如何用谷歌搜索它
attr\u reader
只为balance
创建get方法。对于余额
,您需要get和set方法。因为您在初始化方法中设置了balance
。因此,您应该使用attr\u访问器而不是attr\u阅读器
class Dice
attr_accessor :name, :bet
attr_reader :balance
def initialize(name, balance, bet)
@name = name
@balance = balance
@bet = bet
end
def self.roll
@roll_dice = rand(1..2)
end
def self.check_bet
if @player.bet > @player.balance
puts "Enter number from 1 to #{@player.balance}"
end
end
def self.increase_decrease_cash
if @roll == @my_number
@player.balance += @player.bet
else
@player.balance -= @player.bet
end
end
end
class Game < Dice
@player = Dice.new("foo", 600, 0)
puts "Hello #{@player.name} your balance is: #{@player.balance}"
puts "Bones throwing count times"
a = 2 #gets.chomp.to_i
while a > 0 do
puts ""
puts "Enter your bet !!!"
# PLAYER BET
@player.bet = 300 #gets.chomp.to_i
check_bet
puts "Respected #{@player.name} your bet is: #{@player.bet}"
puts "Now select number 1-2"
# BONES ROLL
@my_number = roll # gets.chomp.to_i
puts "###################"
puts "Now we throw bones"
@roll = roll
puts "Nuber is #{roll}"
if @roll == @my_number
puts "Your win, you get #{@player.bet}"
else
puts "You lose #{@player.bet}"
end
p "$$$$"
p @player.balance
p "$$$$"
a -= 1
increase_decrease_cash
end
end
attr_accessor :balance