Created
October 11, 2013 18:45
-
-
Save ahimmelstoss/6939941 to your computer and use it in GitHub Desktop.
hasketball
This file contains 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 = | |
{ | |
:team1 => | |
{ | |
:name => "New York Necks", | |
:colors => ["yellow", "brown"], | |
:players => | |
{ | |
"Giraffe 1" => | |
{ | |
:number => 1, | |
:shoe_size => 10, | |
:points => 5, | |
:rebounds => 5, | |
:assists => 5, | |
:steals => 5, | |
:blocks => 5, | |
:slam_dunks => 5, | |
}, | |
"Giraffe 2" => | |
{ | |
:number => 2, | |
:shoe_size => 11, | |
:points => 6, | |
:rebounds => 6, | |
:assists => 6, | |
:steals => 6, | |
:blocks => 6, | |
:slam_dunks => 6, | |
}, | |
"Giraffe 3" => | |
{ | |
:number => 3, | |
:shoe_size => 12, | |
:points => 7, | |
:rebounds => 7, | |
:assists => 7, | |
:steals => 7, | |
:blocks => 7, | |
:slam_dunks => 7, | |
}, | |
"Giraffe 4" => | |
{ | |
:number => 4, | |
:shoe_size => 13, | |
:points => 8, | |
:rebounds => 8, | |
:assists => 8, | |
:steals => 8, | |
:blocks => 8, | |
:slam_dunks => 8, | |
}, | |
"Giraffe 5" => | |
{ | |
:number => 5, | |
:shoe_size => 14, | |
:points => 9, | |
:rebounds => 9, | |
:assists => 9, | |
:steals => 9, | |
:blocks => 9, | |
:slam_dunks => 9 | |
} | |
} | |
}, | |
:team2 => | |
{ | |
:name => "Miami Dolphins", | |
:colors => ["silver", "blue"], | |
:players => | |
{ | |
"Dolphin 1" => | |
{ | |
:number => 6, | |
:shoe_size => 1, | |
:points => 10, | |
:rebounds => 10, | |
:assists => 10, | |
:steals => 10, | |
:blocks => 10, | |
:slam_dunks => 10, | |
}, | |
"Dolphin 2" => | |
{ | |
:number => 7, | |
:shoe_size => 2, | |
:points => 11, | |
:rebounds => 11, | |
:assists => 11, | |
:steals => 11, | |
:blocks => 11, | |
:slam_dunks => 11, | |
}, | |
"Dolphin 3" => | |
{ | |
:number => 8, | |
:shoe_size => 12, | |
:points => 12, | |
:rebounds => 12, | |
:assists => 12, | |
:steals => 12, | |
:blocks =>12, | |
:slam_dunks => 12, | |
}, | |
"Dolphin 4" => | |
{ | |
:number => 9, | |
:shoe_size => 13, | |
:points => 13, | |
:rebounds =>13, | |
:assists => 13, | |
:steals => 13, | |
:blocks => 13, | |
:slam_dunks => 13, | |
}, | |
"Dolphin 5" => | |
{ | |
:number => 10, | |
:shoe_size => 14, | |
:points => 14, | |
:rebounds => 14, | |
:assists => 14, | |
:steals => 14, | |
:blocks => 14, | |
:slam_dunks => 14, | |
} | |
} | |
} | |
} | |
# Return the number of points scored for any player. | |
def number_of_points(game, player) | |
if game[:team1][:players].include?(player) | |
return "#{player} has #{game[:team1][:players][player][:points]} points." | |
elsif game[:team2][:players].include?(player) | |
return "#{player has} #{game[:team2][:players][player][:points]} points." | |
else | |
return "That player is not in this game." | |
end | |
end | |
puts number_of_points(game, "Giraffe 1") | |
# Return the shoe size for any player. | |
def shoe_size(game, player) | |
if game[:team1][:players].include?(player) | |
return "#{player}'s shoe size is #{game[:team1][:players][player][:shoe_size]}." | |
elsif game[:team2][:players].include?(player) | |
return "#{player}'s shoe size is #{game[:team2][:players][player][:shoe_size]}." | |
else | |
return "That player is not in this game." | |
end | |
end | |
puts shoe_size(game, "Dolphin 2") | |
# Return both colors for any team. | |
def team_colors(game, team) | |
if game[:team1][:name].include?(team) | |
return "#{team}'s colors are #{game[:team1][:colors].join(" & ")}." | |
elsif game[:team2][:name].include?(team) | |
return "#{team}'s colors are #{game[:team2][:colors].join(" & ")}." | |
else | |
return "That team is not playing this game." | |
end | |
end | |
puts team_colors(game, "New York Necks") | |
# Return both teams names. | |
def team_names(game) | |
puts game[:team1][:name] | |
puts game[:team2][:name] | |
end | |
team_names(game) | |
# Return all the player numbers for a team.--all; need to iterate over all player hashes | |
def player_numbers(game, team) | |
if game[:team1][:name].include?(team) | |
game[:team1][:players].each_key do |key| | |
puts game[:team1][:players][key][:number] | |
end | |
elsif game[:team2][:name].include?(team) | |
game[:team2][:players].each_key do |key| | |
puts game[:team2][:players][key][:number] | |
end | |
else | |
puts "That team is not playing this game." | |
end | |
end | |
player_numbers(game, "Miami Dolphins") | |
# Return all the stats for a player. UNFINISHED | |
def player_stats(game, player) | |
if game[:team1][:players].include?(player) | |
game[:team1][:players].each_value do |value| | |
puts game[:team1][:players][value] | |
end | |
elsif game[:team2][:players].include?(player) | |
game[:team2][:players].each_value do |value| | |
puts game[:team2][:players][value] | |
end | |
else | |
puts "That player is not in the game." | |
end | |
end | |
player_stats(game, "Dolphin 2") | |
# Return the rebounds for the player with the largest shoe size. | |
def player_with_largest_shoes(game) | |
player_hashes(game).sort_by {|player_hash| player_hash[:shoe_size]}.last | |
end | |
def player_hashes(game) #abstract out to a separate method | |
game.collect do |team, team_hash| | |
team_hash[:players] | |
end | |
end | |
def player_stat(game, player, stat) | |
find_player(game, player)[stat] | |
end | |
def find_player(game, player) | |
player_hashes(game).select {|p| p[:name] == player} | |
end | |
def player_rebounds(game, player) | |
player_stat(game, player, :rebounds) | |
end | |
puts player_rebounds(game, player_with_largest_shoes(game)[:name]) | |
# Which player has the most points? | |
# Which team has the most points? | |
# Which player has the longest name? |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment