Rubyでカードゲームを作っています。
Player オブジェクトの配列を持つ Game クラスがあります。
array_of_players = Array[
Player.new("Ben"),
Player.new("Adam"),
Player.new("Peter"),
Player.new("Fred"),
]
my_game = Game.new(array_of_players)
puts my_game.players[2].name #=> Peter
各プレイヤーもゲームにアクセスできるため、ゲームの重要な部分にアクセスできます
self.game.last_card_dealt
各プレイヤーもカード (Player.cards) を持っており、プレイヤーがお互いのカードにアクセスできないようにしたいと考えています。ただし、ゲームはカードにアクセスする必要があるため、使用するのは適切ではないと思いますprivate
。また、プレイヤーはお互いの情報にアクセスする必要があるため、それも望んでいないと思いprivate
ます...
基本的に、私はこれらが機能することを望んでいます。
self.cards #where self is a Player object
self.players[0].cards #where self is the Game
self.game.players[0].name #where self is a Player object
そして、これは失敗します:
self.hand.players[0].cards #=> Nice try sucker! Cheating is for losers.
このようなより複雑なアクセス許可はどのように処理されますか? ありがとう。