Skip to content

Instantly share code, notes, and snippets.

@HeroicEric
Forked from jmoon90/data.rb
Created November 20, 2013 15:38
Show Gist options
  • Select an option

  • Save HeroicEric/7565183 to your computer and use it in GitHub Desktop.

Select an option

Save HeroicEric/7565183 to your computer and use it in GitHub Desktop.
team_data = [
{
home_team: "Patriots",
away_team: "Broncos",
home_score: 7,
away_score: 3
},
{
home_team: "Broncos",
away_team: "Colts",
home_score: 3,
away_score: 0
},
{
home_team: "Patriots",
away_team: "Colts",
home_score: 11,
away_score: 7
},
{
home_team: "Steelers",
away_team: "Patriots",
home_score: 7,
away_score: 21
},
{
home_team: "Eagles",
away_team: "Colts",
home_score: 17,
away_score: 1
},
{
home_team: "Steelers",
away_team: "Colts",
home_score: 7,
away_score: 11
}
]
@record = Hash.new([0,0])
team_data.count
i = 0
score_board = {
"Patriots" => [0, 0],
"Colts" => [0, 0],
"Broncos" => [0, 0],
"Steelers" => [0, 0],
"Eagles" => [0, 0]
}
while i < team_data.count
if team_data[i][:home_score] > team_data[i][:away_score]
winner = team_data[i][:home_team]
score_board[winner][0] += 1
loser = team_data[i][:away_team]
score_board[loser][1] += 1
else
winner = team_data[i][:away_team]
score_board[winner][0] += 1
loser = team_data[i][:home_team]
score_board[loser][1] += 1
end
i += 1
end
puts "The record is"
score_board = score_board.sort_by { |team, record| [team, record] }
sorted_score_board = score_board.sort do |team1, team2|
team2[1][0] <=> team1[1][0]
end
puts sorted_score_board
team_data = [
{
home_team: "Patriots",
away_team: "Broncos",
home_score: 7,
away_score: 3
},
{
home_team: "Broncos",
away_team: "Colts",
home_score: 3,
away_score: 1
},
{
home_team: "Patriots",
away_team: "Colts",
home_score: 11,
away_score: 7
},
{
home_team: "Eagles",
away_team: "Colts",
home_score: 21,
away_score: 7
}
]
#ideal output
#rank = {
# patriots: { win: , loss: },
# eagles: { win: , loss: },
# cowboys: { win: , loss: }
# }
#
leader_board = {}
def win_loss(team_data, leader_board)
if team_data[:home_score] > team_data[:away_score]
leader_board[team_data[:home_team]] = { win: 0, loss: 0 } if leader_board[team_data[:home_team]] == nil
leader_board[team_data[:home_team]][:win] += 1
leader_board[team_data[:away_team]] = { win: 0, loss: 0 } if leader_board[team_data[:away_team]] == nil
leader_board[team_data[:away_team]][:loss] += 1
else
leader_board[team_data[:away_team]] = { win: 0, loss: 0 } if leader_board[team_data[:away_team]] == nil
leader_board[team_data[:away_team]][:loss] += 1
leader_board[team_data[:home_team]] = { win: 0, loss: 0 } if leader_board[team_data[:home_team]] == nil
leader_board[team_data[:home_team]][:win] += 1
end
end
def analyze_game(team_data, leader_board)
team_data.each do |game|
win_loss(game, leader_board)
end
puts standing(leader_board).reverse
end
def standing(leader_board)
leader_board.sort_by { |key, values| values[:win] }
end
analyze_game(team_data, leader_board)
@HeroicEric
Copy link
Copy Markdown
Author

Make sure that you don't leave blank spaces in your files.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment