Как получить доступ к переменной экземпляра в другом классе 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
Другие вопросы по тегам