モノポリーゲームを作成しています。player1 と player2 (将来的には player3 など) を自動的に切り替えることができるように、take_turn メソッド (またはクラス) を作成する方法を探しました。
ここで回答を探し、ゲームを開発するための OOPに関するこの完全な PDFも見つけましたが、この特定の質問に対する回答は見つかりませんでした。
これは、私が TDD し、他のいくつかのオブジェクトで構築したコードです。現時点では、player1 だけですべてがうまく機能します。手動で行う必要なく (DRY)、player1 と player2 に対してこれらの手順を自動的に繰り返したいと思います。
class Engine
attr_reader :dice, :player1, :player2, :move, :board
def initialize
@player1 = Player.new
@board = Board.new
@player2 = Player.new
@dice = Dice.new
@move = Move.new
end
def run
3.times do
roll_and_move
print_current_balance
player_action
end
end
def roll_and_move
dice.roll
move.move(player1, board, dice.value)
end
def print_current_balance
player1.balance
end
def player_action
player1.buy(board.tile(player1.position))
end
end