Created
October 1, 2013 03:57
-
-
Save ivanbrennan/6773694 to your computer and use it in GitHub Desktop.
Hashketball
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| game = { | |
| :home => { | |
| :name => "Wu-Tang Clan", | |
| :colors => ["Black", "Yellow"], | |
| :players => [ | |
| { :name => "Method Man", | |
| :number => 6, | |
| :shoe_size => 10, | |
| :stats => { | |
| :points => 49, | |
| :rebounds => 24, | |
| :assists => 12, | |
| :steals => 7, | |
| :blocks => 13, | |
| :slam_dunks => 9 | |
| } | |
| }, | |
| { | |
| :name => "RZA", | |
| :number => 12, | |
| :shoe_size => 11, | |
| :stats => { | |
| :points => 38, | |
| :rebounds => 31, | |
| :assists => 56, | |
| :steals => 19, | |
| :blocks => 16, | |
| :slam_dunks => 11 | |
| } | |
| }, | |
| { | |
| :name => "GZA", | |
| :number => 92, | |
| :shoe_size => 12, | |
| :stats => { | |
| :points => 76, | |
| :rebounds => 34, | |
| :assists => 47, | |
| :steals => 25, | |
| :blocks => 24, | |
| :slam_dunks => 18 | |
| } | |
| }, | |
| { | |
| :name => "Ol Dirty Bastard", | |
| :number => 2, | |
| :shoe_size => 64, | |
| :stats => { | |
| :points => 40, | |
| :rebounds => 21, | |
| :assists => 34, | |
| :steals => 36, | |
| :blocks => 17, | |
| :slam_dunks => 9 | |
| } | |
| }, | |
| { | |
| :name => "Raekwon", | |
| :number => 63, | |
| :shoe_size => 9, | |
| :stats => { | |
| :points => 74, | |
| :rebounds => 56, | |
| :assists => 27, | |
| :steals => 45, | |
| :blocks => 51, | |
| :slam_dunks => 26 | |
| } | |
| } | |
| ] | |
| }, | |
| :away => { | |
| :name => "Baroque Composers", | |
| :colors => ["Chestnut", "Gold"], | |
| :players => [ | |
| { :name => "Antonio Vivaldi", | |
| :number => 43, | |
| :shoe_size => 7, | |
| :stats => { | |
| :points => 63, | |
| :rebounds => 42, | |
| :assists => 92, | |
| :steals => 13, | |
| :blocks => 14, | |
| :slam_dunks => 2 | |
| } | |
| }, | |
| { | |
| :name => "Jean-Philippe Rameau", | |
| :number => 34, | |
| :shoe_size => 9, | |
| :stats => { | |
| :points => 16, | |
| :rebounds => 21, | |
| :assists => 26, | |
| :steals => 24, | |
| :blocks => 18, | |
| :slam_dunks => 6 | |
| } | |
| }, | |
| { | |
| :name => "Johann Sebastian Bach", | |
| :number => 98, | |
| :shoe_size => 10, | |
| :stats => { | |
| :points => 61, | |
| :rebounds => 29, | |
| :assists => 47, | |
| :steals => 12, | |
| :blocks => 37, | |
| :slam_dunks => 19 | |
| } | |
| }, | |
| { | |
| :name => "Silvius Leopold Weiss", | |
| :number => 74, | |
| :shoe_size => 12, | |
| :stats => { | |
| :points => 24, | |
| :rebounds => 32, | |
| :assists => 83, | |
| :steals => 43, | |
| :blocks => 31, | |
| :slam_dunks => 12 | |
| } | |
| }, | |
| { | |
| :name => "Guiseppe Tartini", | |
| :number => 6, | |
| :shoe_size => 8, | |
| :stats => { | |
| :points => 35, | |
| :rebounds => 25, | |
| :assists => 12, | |
| :steals => 4, | |
| :blocks => 13, | |
| :slam_dunks => 18 | |
| } | |
| } | |
| ] | |
| } | |
| } | |
| def get_points(game, player_name) | |
| game.each_value do |team| | |
| team[:players].each do |player| | |
| return player[:stats][:points] if player[:name] == player_name | |
| end | |
| end | |
| end | |
| def get_shoe_size(game, player_name) | |
| game.each_value do |team| | |
| team[:players].each do |player| | |
| return player[:shoe_size] if player[:name] == player_name | |
| end | |
| end | |
| end | |
| def get_colors(game, team_name) | |
| game.each_value do |team| | |
| return team[:colors] if team[:name] == team_name | |
| end | |
| end | |
| def get_teams(game) | |
| game.values.collect {|team| team[:name]} | |
| end | |
| def get_player_nums(game, team_name) | |
| team = game.values.find {|team_hash| team_hash[:name] == team_name} | |
| players = team[:players] | |
| players.collect {|player| player[:number]} | |
| end | |
| def get_player_stats(game, player_name) | |
| player_arr = game.values.map do |team| | |
| team[:players].find {|player| player[:name] == player_name} | |
| end | |
| player = player_arr.compact.first | |
| player[:stats] | |
| end | |
| def get_rebounds_by_shoe(game) | |
| all_players = game.values.collect {|team| team[:players]}.flatten | |
| big_shoe = all_players.collect {|player| player[:shoe_size]}.max | |
| mr_big_shoe = all_players.find {|player| player[:shoe_size] == big_shoe} | |
| mr_big_shoe[:stats][:rebounds] | |
| end | |
| def most_points_player(game) | |
| all_players = game.values.collect {|team| team[:players]}.flatten | |
| big_points = all_players.collect {|player| player[:stats][:points]}.max | |
| mr_big_points = all_players.find do |player| | |
| player[:stats][:points] == big_points | |
| end | |
| mr_big_points[:name] | |
| end | |
| def most_points_team(game) | |
| teams = game.values | |
| team_scores = teams.collect do |team| | |
| team[:players].inject(0) do |sum, player| | |
| sum + player[:stats][:points] | |
| end | |
| end | |
| hi_score = team_scores.max | |
| hi_idx = team_scores.index(hi_score) | |
| teams[hi_idx][:name] | |
| end | |
| def longest_name(game) | |
| all_players = game.values.collect {|team| team[:players]}.flatten | |
| big_name = all_players.collect {|player| player[:name].length}.max | |
| mr_big_name = all_players.find do |player| | |
| player[:name].length == big_name | |
| end | |
| mr_big_name[:name] | |
| end | |
| def steal_this_name?(game) | |
| all_players = game.values.collect {|team| team[:players]}.flatten | |
| big_name = all_players.collect {|player| player[:name].length}.max | |
| mr_big_name = all_players.find do |player| | |
| player[:name].length == big_name | |
| end | |
| big_steals = all_players.collect {|player| player[:stats][:steals]}.max | |
| mr_big_steals = all_players.find do |player| | |
| player[:stats][:steals] == big_steals | |
| end | |
| mr_big_name == mr_big_steals | |
| end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment