나는이 코드가 무엇을하는지 알아 내려고하고 있는데, 나는 추측을 가지고있다. 인스턴스 변수에 인수를 할당하는 것에 익숙하지만 나머지는 잘 모르겠습니다. 이 초기화 루비 코드는 무엇을합니까?
내가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