私はこのコードが何をしているのか把握しようとしており、推測しています。私はインスタンス変数に引数を割り当てることに慣れていますが、残りについてはわかりません。このRubyコードはどのように初期化されますか?
どのように私はplayer_1
を読んでいる:player_1
が値に渡された場合は、インスタンス変数@player_1
に割り当て、そしてHuman
クラスの新しいインスタンスを作成します。何か不足していますか?
def initialize(player_1 = nil, player_2 = nil, board = nil)
player_1 ? @player_1 = player_1 : @player_1 = Players::Human.new("X")
player_2 ? @player_2 = player_2 : @player_2 = Players::Human.new("O")
board ? @board = board : @board = Board.new
@current_player = @player_1
end
module Players
class Human < Player
def move(board)
input = gets.strip
end
end
end
正直言って、私は初期化(first_player = Players :: Human.new( "X")、second_player = Players :: Human.new( "O")、board = Board.new)条件なしの変数。 – engineersmnky
@engineersmnky、私は同意します。私の考えは、これにより 'second_player'の値を設定することができなくなりますが、' first_player'のデフォルト値はそのままにしています。理想的には、それらはすべてkwargsでなければなりません。 – ndn
私はkwargsのコメントに確実に同意することができます – engineersmnky