
我是否必须参与球员变量或锦标赛?我正朝着正确的方向努力;不完整的解决方案.
def rps_tournament_winner(tournament) return rps_game_winner(tournament) if tournament.flatten.length == 4 players = tournament.flatten(2) while players.length > 1 players = players.each_slice(2).map { |x| rps_game_winner(x) } end players[0]end解决方法 我用递归解决了它 class WrongNumberOfPlayersError < StandardError ; endclass NoSuchStrategyError < StandardError ; enddef rps_game_winner(game) raise WrongNumberOfPlayersError unless game.length == 2 if game[0][0].is_a?(Array) then winner1 = rps_game_winner(game[0]) winner2 = rps_game_winner(game[1]) game = [winner1,winner2] end raise NoSuchStrategyError unless /^(P|R|S){2}$/ =~ game[0][1] + game[1][1] case game[0][1] when "R" if game[1][1] == "P" then game[1] else game[0] end when "P" if game[1][1] == "S" then game[1] else game[0] end when "S" if game[1][1] == "R" then game[1] else game[0] end endenddef rps_tournament_winner(tournament) rps_game_winner(tournament)end 总结 以上是内存溢出为你收集整理的ruby – 在多维嵌套数组上调用递归函数的问题全部内容,希望文章能够帮你解决ruby – 在多维嵌套数组上调用递归函数的问题所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)