Как получить доступ к переменной экземпляра в другом классе Ruby?
class Player
attr_accessor :card_pile
def initialize
@bust = false
@card_pile = []
end
def bust?
return @cards.inject(:+) > 21
end
end
У меня есть этот класс Player и переменная initazlied card_pile
class Game
def initialize
@players = []
end
def playing_game
puts "How many players are playing? "
players_amount = gets.chomp.to_i
(0...players_amount).each do
puts ("What is the players name? ")
name = gets.chomp
@players.push(name)
end
puts @players
player = Player.new
player.initialize
while @card_pile.length < 2 do
new_card = Card.new
@card_pile.push(new_card.value)
end
end
Я хочу использовать эту переменную в цикле while ниже. Почему я не могу получить к нему доступ, как я надеюсь?
Сообщение об ошибке: ``playing_game': приватный метод initialize' called for #<Player:0x007fda53073f48 @bust=false, @card_pile=[]> (NoMethodError)
1 ответ
initialize
вызывается автоматически при создании нового экземпляра класса с помощью Player.new
, В настоящее время у вас нет аргументов, передаваемых в ваш метод initialize, но вы установили переменную экземпляра card_pile
с attr_accessor
так что вы можете сделать это:
player = Player.new
while player.card_pile.length < 2 do
new_card = Card.new
player.card_pile.push(new_card.value)
end