Я создаю карточную игру с несколькими классами. В настоящее время я использую глобальные переменные для хранения переменных , $players_hand
и $dealers_hand
, но я беспокоюсь при использовании глобальных переменных (возможно, без необходимости) и предпочитаю использовать переменные экземпляра.Как передать переменные между классами Ruby?
Я читал, но ничего не нажимает. Может ли кто-нибудь помочь указать мне в правильном направлении?
Использование переменных экземпляра Я не смог сохранить @players_hand
и @dealers_hand
, чтобы использовать их в других классах. Например, у меня есть @players_hand
из класса Player
. У меня есть Dealer
класс нарисовать карту, но я не могу вытащить это @players_hand
в класс Dealer
, чтобы добавить их вместе.
Мой текущий код:
class Blackjack
def initialize
@player = Player.new
@dealer = Dealer.new
end
end
class Dealer
def initialize
@deck = Deck.new
$dealers_hand = 0
end
def hit_dealer
@deck.hit_dealer
end
def hit_player
@deck.hit_player
end
def draw_card
@hit = $shuffled_deck
end
def shuffle
@deck.suits
end
end
class Player
def initialize
$players_hand = 0
end
end
class Deck
def suits
#code that shuffled the deck..
$shuffled_deck = @shuffled_deck
end
def hit_player
@hit = $shuffled_deck.pop
end
def hit_dealer
@hit = $shuffled_deck.pop
end
end
Хороший вопрос, но будет довольно много понятий через идти к получите полный ответ. Надеюсь, кто-то будет знать хороший справочный документ, но вам определенно нужно будет обработать ** инкапсуляцию **, которая представляет собой идею разработки того, к какому объекту принадлежит часть данных *, и обычно заканчивается тем, что вы добавляете больше (меньше) классов с более конкретными обязанностями – Gareth