"소유자"는 아마도 이에 대한 올바른 용어는 아니지만 그게 무엇인지 모르기 때문에 검색을 매우 어렵게 만듭니다.Ruby에서 객체의 "소유자"를 참조하는 방법은 무엇입니까?
나는 카드 게임을 만들고 있으며, 각 플레이어는 여러 장의 카드를 가질 수 있습니다.
"Player", "Hand"및 "Card"클래스가 있습니다.
player1 = Player.new
hand1 = Hand.new # => A new hand of two random cards
player1.hands.push(hand1)
#Now player1 has one hand with two cards in it.
나는 그것의 "소유자", 재생기를 참조합니다 hand1에 전화를 할 수있는 속성이나 방법이 있습니까?
내가
hand1.owner
=> #<Player:0x007fb6ae05b448
# @behavior=:human,
# @hands=[#<Hand:0x007fb6ad8653b0 @cards=[{:A,:spades},{:Q,:hearts}]>],
# @money=800,
# @name="Dougie Jones">
나는 이것이 단지 예일 수도 있지만 플레이어를 결정하기 위해 손을 쿼리해야한다면, 당신이 뭔가 잘못 모델을 작성했다고 말하고 싶습니다. –
@MarkThomas에 동의해야 할 것입니다. 왜 '핸드'는 '플레이어'를 알아야합니까? 우리가 "물고기 가라"를하고 있다고 가정 해 봅시다 ... 당신은'플레이어 '에게'핸드'의'카드'에 대해 '핸드'에게'플레이어 '에 대해 묻지 않을 것을 요청할 것입니다. '핸드 '는'카드'에 대해서만 알고 있어야하고'플레이어'는'핸드'에 대해 알아야하고'핸드'를 통해'카드'에 대해 안다 – engineersmnky
그것은 블랙 잭 게임이고 때로는 총 4 개까지 두 손에 손을. 저는 각 핸드를 "플레이"하고 핸드 클래스에서 모든 플레이어와 AI 결정을하도록하는 것이 더 쉬웠습니다. 나는 두 배가되고 나누는 것이 그의 선수가 충분한 돈이 있는지 알아 내기 위하여 손을 요구했다는 것을 깨달을 때까지 곤경에 빠지지 않았다. 어쨌든 Player 클래스에 여전히 많은 게임 플레이 메서드가 있기 때문에 아마 다르게 구조화 될 것입니다 ... –