Skip to content

Instantly share code, notes, and snippets.

@jmoon90
Last active December 28, 2015 17:49
Show Gist options
  • Select an option

  • Save jmoon90/7539089 to your computer and use it in GitHub Desktop.

Select an option

Save jmoon90/7539089 to your computer and use it in GitHub Desktop.
Calculates the leadership 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: 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)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment