我正在创建一个大富翁游戏。我寻找一种方法来创建一个 take_turn 方法(或一个类),这样我就可以在 player1 和 player2 之间自动切换(以及将来的 player3 等)。
在这里寻找答案,还找到了这个关于 OOP 的完整 PDF用于开发游戏,但还没有找到这个特定问题的答案。
这是我用其他几个对象进行 TDD 和构建的代码。目前仅对 player1 一切正常,我只想自动为 player1 重复这些步骤,然后自动为 player2 重复这些步骤,而无需手动执行(DRY)。
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