1
Ruby를 처음 사용하면서 언어로 바위 종이 가위 토너먼트를 구현하려고합니다.Ruby에서 바위, 종이, 가위 토너먼트 구현
아래 코드에서 호출되는 rps_game_winner 메서드는 한 쌍의 경쟁자에서 승자를 반환합니다. 내가 할 곳
David
S
Richard
R
이것은 :
puts rps_tournament_winner([
[
[ ["Armando", "P"], ["David", "S"] ],
[ ["Richard", "R"], ["Michael", "S"] ]
]
])
내가 얻을 출력은 다음과 같습니다
def rps_tournament_winner(tournament)
qualifying_round_winners = []
for i in 0..0
tournament.each_with_index do |x, xi|
x.each_with_index do |y, yi|
winner = rps_game_winner(y)
qualifying_round_winners.push(winner)
qualifying_round_winners = qualifying_round_winners.each_slice(2).to_a
end
end
tournament = qualifying_round_winners.each_slice(2).to_a
end
return tournament
end
이 내가 제공하는 입력은 다음과 같습니다
지금까지 내 시도 붙어있어. 나는이 두 사람이 서로 경쟁 할 수 없으며 최종 우승자를 선포합니다.위의 코드에서 알 수 있듯이 for 루프의 종료 조건이주의해야합니다.
어떤 도움이 필요합니까?
조언 : 더 많은 표현 맵/select/... 및 /에 대한 less 명령문을 사용하십시오. – tokland
재귀 적 솔루션이 더 쉽습니다. 특히 임의의 깊은 대괄호를 처리해야하는 경우 특히 그렇습니다. 나는 이것이 "숙제"라는 태그가 붙어 있기 때문에 지금 당장 떠날 것이다. –