Skip to content

Instantly share code, notes, and snippets.

@samueldowens
Created October 1, 2013 00:52
Show Gist options
  • Save samueldowens/6772496 to your computer and use it in GitHub Desktop.
Save samueldowens/6772496 to your computer and use it in GitHub Desktop.
Hashketball...
# overall hash
# 2 subhashes, team 1 and team 2
# each team has 3 subhashes name, colors, players
# name = just pointer
# colors = array
# players = array
# player has the following hashes in an array: name, number, shoe_size, points, rebounds, assists, steals, blocks, slam_dunks
hashketball =
{
:team1 =>
{
:name => "gangly elephants",
:colors => ["grey", "white"],
:players =>
{
"Michael Jordan" =>
{
:number => 1,
:shoe_size => 10,
:points => 50,
:rebounds => 5,
:assists => 5,
:steals => 5,
:blocks => 154,
:slam_dunks => 26,
},
"Lebron James" =>
{
:number => 2,
:shoe_size => 11,
:points => 51,
:rebounds => 6,
:assists => 6,
:steals => 6,
:blocks => 153,
:slam_dunks => 25,
},
"Carmello Anthony" =>
{
:number => 3,
:shoe_size => 12,
:points => 52,
:rebounds => 6,
:assists => 6,
:steals => 6,
:blocks => 156,
:slam_dunks => 31,
},
"Allen Iverson" =>
{
:number => 4,
:shoe_size => 47,
:points => 159,
:rebounds => 5,
:assists => 5,
:steals => 3,
:blocks => 153,
:slam_dunks => 1,
},
"Shaq" =>
{
:number => 5,
:shoe_size => 17,
:points => 63,
:rebounds => 1,
:assists => 1,
:steals => 1,
:blocks => 1,
:slam_dunks => 50
}
}
},
:team2 =>
{
:name => "clearly defined widgets",
:colors => ["gold", "silver"],
:players =>
{
"Joe Smith" =>
{
:number => 6,
:shoe_size => 9,
:points => 2,
:rebounds => 0,
:assists => 0,
:steals => 1,
:blocks => 1,
:slam_dunks => 1,
},
"Patrick Ewing" =>
{
:number => 7,
:shoe_size => 16,
:points => 15,
:rebounds => 6,
:assists => 6,
:steals => 6,
:blocks => 152,
:slam_dunks => 24,
},
"John Stockton" =>
{
:number => 8,
:shoe_size => 5,
:points => 30,
:rebounds => 0,
:assists => 12,
:steals => 5,
:blocks =>0,
:slam_dunks => 0,
},
"Dennis Rodman" =>
{
:number => 9,
:shoe_size => 12,
:points => 19,
:rebounds => 4,
:assists => 10,
:steals => 14,
:blocks => 7,
:slam_dunks => 5,
},
"Scotty Pippin" =>
{
:number => 10,
:shoe_size => 17,
:points => 63,
:rebounds => 1,
:assists => 1,
:steals => 1,
:blocks => 1,
:slam_dunks => 50,
}
}
}
}
def points(player, game)
if game[:team1][:players].include?(player)
game[:team1][:players][player][:points]
elsif game[:team2][:players].include?(player)
game[:team2][:players][player][:points]
else
"no such player"
end
end
def shoe_size(player, game)
if game[:team1][:players].include?(player)
game[:team1][:players][player][:shoe_size]
elsif game[:team2][:players].include?(player)
game[:team2][:players][player][:shoe_size]
else
"no such player"
end
end
def colors(team, game)
if game[:team1][:name].include?(team)
game[:team1][:colors]
elsif game[:team2][:name].include?(team)
game[:team2][:colors]
else
"no such team"
end
end
def team_names(game)
game[:team1][:name]
game[:team2][:name]
end
def player_numbers(team, game)
if game[:team1][:name].include?(team)
game[:team1][:players].each_key do |x|
puts game[:team1][:players][x][:number]
end
elsif game[:team1][:name].include?(team)
game[:team2][:players].each_key do |x|
puts game[:team2][:players][x][:number]
end
else
"there is no team named #{team}"
end
end
def player_stats(player, game)
if game[:team1][:players].include?(player)
game[:team1][:players][player].each_key do |x|
puts "#{x.to_s} #{game[:team1][:players][player][x]}"
end
elsif game[:team2][:players].include?(player)
game[:team2][:players][player].each_key do |x|
puts "#{x.to_s} #{game[:team2][:players][player][x]}"
end
else
"there is no player named #{player}"
end
end
def rebounds_by_shoes(game)
bigfoot_name = ""
bigfoot_size = 0
game[:team1][:players].each_key do |name|
if game[:team1][:players][name][:shoe_size] > bigfoot_size
bigfoot_name = name
bigfoot_size = game[:team1][:players][name][:shoe_size]
end
end
game[:team2][:players].each_key do |name|
if game[:team2][:players][name][:shoe_size] > bigfoot_size
bigfoot_name = name
bigfoot_size = game[:team2][:players][name][:shoe_size]
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment