我正在創建一個有多個班級的紙牌遊戲。目前,我使用全局變量來保存$shuffled_deck
,$players_hand
和$dealers_hand
變量,但是我擔心使用全局變量(可能是不必要的)並且更願意使用實例變量。如何在Ruby類之間傳遞變量?
我一直在閱讀,但沒有什麼是真正的點擊。任何人都可以幫助我指出正確的方向嗎?
使用實例變量我無法保存@players_hand
和@dealers_hand
以便能夠在其他類中使用它們。例如,我有Player
類的@players_hand
。我有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 2012-02-22 16:47:41