Tôi đang tạo một trò chơi bài có nhiều lớp. Hiện tại, tôi đang sử dụng các biến toàn cầu để giữ các biến số $shuffled_deck
, $players_hand
và $dealers_hand
, nhưng tôi lo lắng khi sử dụng các biến toàn cục (có lẽ, không cần thiết) và muốn sử dụng các biến mẫu.Làm cách nào để chuyển các biến giữa các lớp Ruby?
Tôi đã đọc xung quanh, nhưng không có gì thực sự nhấp vào. Bất cứ ai có thể giúp chỉ cho tôi đi đúng hướng với điều này?
Sử dụng các biến mẫu Tôi chưa thể lưu @players_hand
và @dealers_hand
để có thể sử dụng chúng trong các lớp khác. Ví dụ: tôi có @players_hand
từ lớp Player
. Tôi có lớp Dealer
vẽ một thẻ, nhưng tôi không thể kéo @players_hand
đó vào lớp Dealer
để thêm hai thẻ lại với nhau.
mã hiện tại của tôi là:
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
Tốt câu hỏi này, nhưng sẽ có khá nhiều khái niệm phải đi qua để có được một câu trả lời hoàn chỉnh. Hy vọng rằng ai đó sẽ biết một tài liệu tham khảo tốt, nhưng bạn chắc chắn sẽ cần phải có một xử lý trên ** đóng gói ** đó là ý tưởng làm việc ra một đối tượng một phần dữ liệu * thuộc *, và thường kết thúc với bạn thêm nhiều hơn (nhỏ hơn) các lớp học với trách nhiệm cụ thể hơn – Gareth