すべてのラウンドをプレイしてトーナメントに戻るじゃんけんトーナメントシミュレーターを実装する必要があります。
これは私のトーナメント配列です:
tournament = [
[
[
["Armando", "P"], ["Dave", "S"]
],
[
["Richard", "R"], ["Michael", "S"]
],
],
[
[ ["Allen", "S"], ["Omer", "P"] ],
[ ["David E.", "R"], ["Richard X.", "P"] ]
]
]
たとえば、["Richard"、 "R"]、["Michael"、 "S"]は、リチャードがロックとマイケルはさみをプレイしたゲームを表します。リチャードが勝者となり、次のラウンドに進む必要があります。
このために再帰関数を実装しようとしていますが、配列を正しく取得するのに問題があります
これが私の方法です:
def rps_tournament_winner(tournament)
qualifying_round_winners = []
round_winners = []
# last round
if tournament.length < 1
return
end
tournament.each_with_index do |round,i|
puts round.inspect
qualifying_round_winners[i] = []
round_winners = []
round.each_with_index do |game,j|
winner = rps_game_winner(game)
round_winners.push winner
end
qualifying_round_winners[i] = round_winners
end
rps_tournament_winner(qualifying_round_winners)
end
私は勝者を認定するためのアレイを使って多くのことを発明しましたが、解決策を見つけることができません。あなたが私を助けてくれることを願っています。ありがとうございました。
編集:
これが、メソッドの各反復で取得する必要があるものです
最初のラウンドの後
tournament = [
[
[
["Dave", "S"], ["Richard", "R"]
],
[
["Allen", "S"], ["Richard X.", "P"]
]
]
]
第2ラウンド後:
tournament = [
[
[
["Richard", "R"] , ["Allen", "S"]
]
]
]
勝者
["Richard", "R"]
編集:2
ここに完全なコードがあります:http: //pastebin.com/gjKfiWLD